Как установить стек FAMP (Apache/MySQL/PHP) на FreeBSD 12
На этой странице
- Требования
- Прежде чем начать
- Шаг 1. Установка Apache 2.4
- Шаг 2. Установка MySQL 8.0
- Шаг 3. Установка PHP 7.4
- Установка модулей PHP (необязательно)
Стек FAMP, аналогичный стеку LAMP в Linux, представляет собой набор программного обеспечения с открытым исходным кодом, которое обычно устанавливается вместе, чтобы позволить серверу FreeBSD размещать динамические веб-сайты и веб-приложения. FAMP — это аббревиатура от FreeBSD (операционная система), Apache (HTTP-сервер), MySQL/MariaDB (сервер базы данных) и PHP (язык программирования для обработки динамического содержимого PHP).
В этом руководстве вы правильно настроите компоненты стека FAMP на сервере FreeBSD 12.1 с помощью
pkg
, диспетчера пакетов FreeBSD.Требования
Прежде чем приступить к работе с этим руководством, вам потребуется следующее:
- FreeBSD 12.1.
- Пользователь с привилегиями root или пользователь
sudo
для внесения изменений в конфигурацию. - Рекомендуется базовое знакомство с системой FreeBSD и интерфейсом командной строки.
Прежде чем вы начнете
Проверьте версию FreeBSD:
freebsd-version
# 12.1-RELEASEУбедитесь, что ваша система FreeBSD обновлена:
freebsd-update fetch install
pkg update && pkg upgrade -yУстановите необходимые пакеты:
pkg install -y sudo vim bash curl
Создайте новую учетную запись пользователя с предпочтительным именем пользователя. Мы используем
johndoe:
adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!Запустите команду
visudo
и раскомментируйте строку%wheel ALL=(ALL) ALL
, чтобы члены группыwheel
могли выполнять любую команду:visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALLТеперь переключитесь на только что созданного пользователя с помощью
su
:su - johndoe
ПРИМЕЧАНИЕ. Замените
johndoe
своим именем пользователя.Настройте часовой пояс:
sudo tzsetup
Шаг 1 — Установка Apache 2.4
Веб-сервер Apache в настоящее время является одним из самых популярных веб-серверов в мире. Это отличный выбор для размещения веб-сайта.
Вы можете установить Apache с помощью менеджера пакетов FreeBSD,
pkg
. Менеджер пакетов позволяет без особых усилий устанавливать большинство программ из репозитория, поддерживаемого FreeBSD.Чтобы установить Apache, введите следующую команду:
sudo pkg install -y apache24
Проверьте версию:
httpd -v
# Server version: Apache/2.4.41 (FreeBSD)Теперь включите и запустите Apache:
sudo sysrc apache24_enable=yes
sudo service apache24 startЧтобы убедиться, что Apache запущен, вы можете запустить следующую команду:
sudo service apache24 status
В результате вы увидите что-то похожее на:
# Output
apache24 is running as pid 17775.Вы можете убедиться, что Apache был установлен и работает без ошибок, посетив общедоступный IP-адрес вашего сервера в веб-браузере. Перейдите к
http://ваш_сервер_IP
. Вы увидите стандартную страницу Apache \Это работает!\.Шаг 2 — Установка MySQL 8.0
Теперь, когда ваш веб-сервер запущен и работает, пришло время установить MySQL, систему управления реляционными базами данных. Сервер MySQL организует и предоставит доступ к базам данных, где ваш сервер может хранить информацию.
Опять же, вы можете использовать
pkg
для получения и установки программного обеспечения.Чтобы установить MySQL
8.0
с помощьюpkg
, используйте эту команду:sudo pkg install -y mysql80-client mysql80-server
Эта команда установит последнюю версию клиента и сервера MySQL, в настоящее время это
8.x.x
.Проверьте версию:
mysql --version
# mysql Ver 8.0.17 for FreeBSD12.0 on amd64 (Source distribution)Теперь включите и запустите MySQL:
sudo sysrc mysql_enable=yes
sudo service mysql-server startЧтобы убедиться, что MySQL запущен, вы можете запустить следующую команду:
sudo service mysql-server status
Вы увидите что-то похожее на следующее:
# Output
mysql is running as pid 19171.В качестве хорошей практики вы можете запустить сценарий безопасности
mysql_secure_installation
, который удалит некоторые небезопасные значения по умолчанию и немного ограничит доступ к вашей системе баз данных:sudo mysql_secure_installation
Вам будет предложено установить пароль, а затем некоторые другие вопросы. Введите надежный пароль, а затем для остальных вопросов нажмите :key_enter: для выбора значений по умолчанию.
Шаг 3 — Установка PHP 7.4
PHP — это серверный язык сценариев, предназначенный для веб-разработки. PHP является незаменимым компонентом стека FAMP. Кроме того, вместо PHP обычно используются Python или Perl. Однако чаще всего используется PHP как наиболее популярный вариант. Вместе с базой данных это обеспечит динамическое поведение ваших веб-сайтов или приложений.
Еще раз используйте систему
pkg
для установки компонентов PHP.Чтобы установить PHP
7.4
с помощьюpkg
, выполните следующую команду:sudo pkg install -y php74 php74-mysqli mod_php74
Это установит пакеты
php74
,mod_php74
иphp74-mysqli
.Проверьте версию PHP:
php --version
# PHP 7.4.1 (cli) (built: Jan 2 2020 01:32:38) ( NTS )
# Copyright (c) The PHP Group
# Zend Engine v3.4.0, Copyright (c) Zend TechnologiesСкопируйте образец файла конфигурации PHP на место с помощью этой команды:
sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Теперь включите и запустите PHP-FPM:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm startЧтобы убедиться, что PHP-FPM запущен, вы можете запустить следующую команду:
sudo service php-fpm status
В результате вы увидите что-то похожее на:
# Output
php_fpm is running as pid 23005.Установка модулей PHP (необязательно)
Для расширения функциональности PHP вы можете дополнительно установить некоторые дополнительные модули.
Чтобы увидеть в настоящее время скомпилированные модули PHP, вы можете запустить это:
php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard
# [Zend Modules]Для поиска доступных модулей PHP вы можете использовать эту команду:
pkg search ^php74-*
Результатом будут в основном модули PHP 7.4, которые вы можете установить:
# Output # php74-7.4.0 PHP Scripting Language # php74-Ice37-3.7.2_1 Modern alternative to object middleware such as CORBA/COM/DCOM/COM+ # php74-aphpbreakdown-2.2.2 Code-Analyzer for PHP for Compatibility Check-UP # php74-aphpunit-1.9 Testing framework for unit tests # php74-bcmath-7.4.0 The bcmath shared extension for php # php74-brotli-0.7.0 Brotli extension for PHP # php74-bsdconv-11.5.0 PHP wrapper for bsdconv # php74-bz2-7.4.0 The bz2 shared extension for php # php74-calendar-7.4.0 The calendar shared extension for php # php74-composer-1.8.6 Dependency Manager for PHP # php74-ctype-7.4.0 The ctype shared extension for php # php74-curl-7.4.0 The curl shared extension for php # . . .
Если после изучения вы решите, что вам нужно установить пакет, вы можете сделать это с помощью команды
pkg install
. Большинству веб-приложений PHP потребуются дополнительные модули, поэтому полезно знать, как их искать.Шаг 4 — Настройка Apache для использования модуля PHP
Перед использованием PHP необходимо настроить его для работы с Apache.
Запустите
sudo vim /usr/local/etc/apache24/modules.d/001_mod-php.conf
и заполните файл следующим содержимым:<IfModule dir_module> DirectoryIndex index.php index.html <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> </IfModule>
Сохраните файл и выйдите из vim.
Проверьте конфигурацию Apache:
sudo apachectl configtest
Поскольку вы внесли изменения в конфигурацию Apache, вам необходимо перезагрузить службу, чтобы применить их. В противном случае Apache будет работать с более ранней конфигурацией:
sudo apachectl restart
Шаг 5 — Тестирование обработки PHP
Чтобы проверить правильность настройки вашей системы для PHP, вы можете создать очень простой PHP-скрипт. Вы назовете этот скрипт
info.php
. По умолчанию дляDocumentRoot
задано значение/usr/local/www/apache24/data
. Вы можете создать файлinfo.php
в этом месте, набрав:sudo vim /usr/local/www/apache24/data/info.php
И добавьте этот код в этот файл:
<?php phpinfo(); ?>
Перейдите к
http://your_server_IP/info.php
, и вы увидите следующую страницу:После установки и настройки стека FAMP необходимо удалить файл
info.php
, чтобы не раскрывать информацию о сервере в открытом доступе:sudo rm /usr/local/www/apache24/data/info.php
Заключение
Поздравляем, вы успешно установили стек FAMP на свой сервер FreeBSD 12.1. Теперь у вас есть несколько вариантов, что делать дальше. Вы установили платформу, которая позволит вам устанавливать поверх нее большинство видов веб-сайтов и веб-приложений.