Как установить стек Apache, MySQL и PHP (FAMP) на FreeBSD 12.0

Автор выбрал Free и Open Source Fund, чтобы получить пожертвование как часть Write for DOnations program.

Вступление

Стек FAMP, аналогичный стеку LAMP в Linux, представляет собой группу программного обеспечения с открытым исходным кодом, которое обычно устанавливается вместе, чтобы позволить серверу FreeBSD размещать динамические веб-сайты и веб-приложения. FAMP - это аббревиатура, обозначающая F reeBSD (операционная система), A pache (веб-сервер), M ySQL (сервер базы данных) и P HP (для обработки динамический контент PHP).

В этом руководстве мы установим стек FAMP на облачный сервер FreeBSD 12.0, используя + pkg +, менеджер пакетов FreeBSD.

Предпосылки

Прежде чем начать это руководство, вам понадобится следующее:

  • Https://www.digitalocean.com/community/tutorials/how-to-get-started-with-freebsd[FreeBSD 12.0 Droplet].

  • Доступ к пользователю с привилегиями root (или разрешенным с помощью sudo) для внесения изменений в конфигурацию.

  • Брандмауэр, настроенный с помощью этого учебного руководства на Recommended Steps для новых серверов FreeBSD 12.0. Убедитесь, что вы открыли порты + 80 + и + 443 + как часть вашей настройки.

  • Рекомендуется знакомство с CLI (интерфейс командной строки). Vi-редактор FreeBSD имеет почти идентичный syntax как vim ,

Шаг 1 - Установка Apache

Веб-сервер Apache в настоящее время является самым популярным веб-сервером в мире, что делает его отличным выбором для размещения веб-сайта.

Вы можете установить Apache, используя менеджер пакетов FreeBSD, + pkg +. Менеджер пакетов позволяет вам без проблем устанавливать большинство программ из репозитория, поддерживаемого FreeBSD. Вы можете узнать больше о how как использовать + pkg + здесь.

Чтобы установить Apache с помощью + pkg +, используйте эту команду:

sudo pkg install apache

Введите + y + в запросе подтверждения, чтобы установить Apache и его зависимости.

Чтобы включить Apache как сервис, добавьте + apache_enable =" YES "+ в файл + / etc / rc.conf +. Вы будете использовать команду + sysrc + для этого:

sudo sysrc apache_enable="YES"

Теперь запустите Apache:

sudo service apache start

Чтобы проверить, что Apache запущен, вы можете запустить следующую команду:

sudo service apache status

В результате вы увидите нечто похожее на:

Outputapache is running as pid .

Вы можете сразу же выполнить выборочную проверку, чтобы убедиться, что все прошло как запланировано, посетив общедоступный IP-адрес вашего сервера в веб-браузере. См. Примечание под следующим заголовком, чтобы узнать, каков ваш публичный IP-адрес, если у вас еще нет этой информации:

http:///

Вы увидите веб-страницу Apache FreeBSD по умолчанию, которая предназначена для тестирования. Вы увидите: * Это работает! *, Что означает, что ваш веб-сервер установлен правильно.

Как найти публичный IP-адрес вашего сервера

Если вы не знаете, что такое публичный IP-адрес вашего сервера, вы можете найти его несколькими способами. Обычно это адрес, который вы используете для подключения к вашему серверу через SSH.

Если вы используете DigitalOcean, вы можете посмотреть в панели управления IP-адрес вашего сервера. Вы также можете использовать службу метаданных DigitalOcean от самого сервера с помощью этой команды: + curl -w" \ n "http: // 169.254.169.254 / metadata / v1 / interfaces / public / 0 / ipv4 / address +.

Более универсальным способом поиска IP-адреса является использование команды + ifconfig + на самом сервере. Команда + ifconfig + выведет информацию о ваших сетевых интерфейсах. Чтобы сузить вывод только до публичного IP-адреса сервера, используйте эту команду (обратите внимание, что выделенная часть является именем сетевого интерфейса и может отличаться):

ifconfig  | grep "inet " | awk '{ print $2; exit }'

Вы также можете использовать + curl + для связи с внешней стороной, например, icanhazip, чтобы сообщить вам, как он видит ваш сервер. Это делается путем запроса конкретного сервера, каков ваш IP-адрес:

curl http://icanhazip.com

Теперь, когда у вас есть общедоступный IP-адрес, вы можете использовать его в адресной строке веб-браузера для доступа к своему веб-серверу.

Шаг 2 - Установка MySQL

Теперь, когда ваш веб-сервер запущен и работает, пришло время установить MySQL, систему управления реляционными базами данных. Сервер MySQL организует и предоставит доступ к базам данных, где ваш сервер может хранить информацию.

Опять же, вы можете использовать + pkg + для приобретения и установки вашего программного обеспечения.

Чтобы установить MySQL с помощью + pkg +, используйте эту команду:

sudo pkg install mysql-server

Введите + y + в запросе подтверждения, чтобы установить сервер MySQL и клиентские пакеты.

Чтобы включить сервер MySQL в качестве службы, добавьте + mysql_enable =" YES "+ в файл + / etc / rc.conf +. Вы можете использовать команду + sysrc + для этого:

sudo sysrc mysql_enable="YES"

Теперь запустите сервер MySQL с помощью следующей команды:

sudo service mysql-server start

Вы можете проверить, что служба запущена и работает:

sudo service mysql-server status

Вы прочтете что-то похожее на следующее:

Outputmysql is running as pid .

Теперь, когда ваша база данных MySQL запущена, вы захотите запустить простой скрипт безопасности, который удалит некоторые опасные значения по умолчанию и немного ограничит доступ к вашей системе баз данных. Запустите интерактивный скрипт, выполнив эту команду:

sudo mysql_secure_installation

В запросе вас спросят, хотите ли вы установить пароль. Поскольку вы только что установили MySQL, скорее всего, у вас его не будет, поэтому введите + Y + и следуйте инструкциям:

Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No:

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :

Для остальных вопросов вы должны нажимать клавишу + y + в каждом приглашении, чтобы принять рекомендуемые безопасные значения. Это приведет к удалению некоторых примеров пользователей и баз данных, отключению удаленных учетных записей root и загрузке этих новых правил, чтобы MySQL немедленно учитывал внесенные вами изменения.

На этом этапе ваша система баз данных настроена, и вы можете перейти к установке PHP.

Шаг 3 - Установка PHP

PHP - это компонент вашей установки, который будет обрабатывать код для отображения динамического содержимого. Он может запускать сценарии, подключаться к базам данных MySQL для получения информации и передавать обработанный контент на веб-сервер для отображения.

Вы можете снова использовать систему + pkg + для установки ваших компонентов. Вы также собираетесь включить пакеты + mod_php,` + php-mysql` и + php-mysql.

Чтобы установить PHP с + pkg +, запустите эту команду:

sudo pkg install php php-mysqli mod_php

Введите + y + в ответ на запрос подтверждения. Это установит пакеты + php,` + mod_php` и + php-mysqli.

Теперь скопируйте пример файла конфигурации PHP на место с помощью этой команды:

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Теперь выполните команду + rehash +, чтобы восстановить кэшированную информацию системы об установленных вами исполняемых файлах:

rehash

Перед использованием PHP необходимо настроить его для работы с Apache.

Установка модулей PHP (необязательно)

Для расширения функциональности PHP вы можете дополнительно установить некоторые дополнительные модули.

Чтобы увидеть доступные опции для модулей и библиотек PHP, вы можете напечатать это:

pkg search php

Результатом будут в основном модули PHP, которые вы можете установить:

Outputphp73-7.3.5                    PHP Scripting Language
php73-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
php73-aphpunit-1.8             Testing framework for unit tests
php73-bcmath-7.3.5             The bcmath shared extension for php
php73-brotli-0.6.2             Brotli extension for PHP
php73-bsdconv-11.5.0           PHP wrapper for bsdconv
php73-bz2-7.3.5                The bz2 shared extension for php
php73-calendar-7.3.5           The calendar shared extension for php
php73-composer-1.8.4           Dependency Manager for PHP
php73-ctype-7.3.5              The ctype shared extension for php
php73-curl-7.3.5               The curl shared extension for php
php73-dba-7.3.5                The dba shared extension for php
php73-deployer-6.4.3           Deployment tool for PHP
php73-dom-7.3.5                The dom shared extension for php

...

Чтобы получить больше информации о том, что делает каждый модуль, вы можете выполнить поиск в Интернете или посмотреть подробное описание пакета, набрав:

pkg search -f

Будет много выходных данных с одним полем с именем * Comment *, в котором будет объяснение функциональности, которую предоставляет модуль.

Например, чтобы узнать, что делает пакет ++, вы можете напечатать это:

pkg search -f

Наряду с большим количеством другой информации, вы найдете что-то похожее на это:

Outputphp73-calendar-7.3.5
Name           : php73-calendar
Version        : 7.3.5
...
Comment        : The calendar shared extension for php
...

Если после исследования вы решили, что хотите установить пакет, вы можете сделать это с помощью команды + pkg install +.

Например, если вы решите, что ++ - это то, что вам нужно, вы можете набрать:

sudo pkg install

Если вы хотите установить более одного модуля одновременно, вы можете сделать это, перечислив каждый из них через пробел, следуя команде + pkg install +, например так:

sudo pkg install

Шаг 4 - Настройка Apache для использования модуля PHP

Apache HTTP имеет специальный каталог для записи в него файлов конфигурации для определенных модулей. Вы напишите один из этих файлов конфигурации для Apache HTTP, чтобы «говорить» на PHP.

sudo vi /usr/local/etc/apache24/modules.d/001_mod-php.conf

Добавьте следующие строки в этот файл:

/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>

Теперь проверьте HTTP-конфигурацию Apache в хорошем состоянии:

sudo apachectl configtest

Вы увидите следующий вывод:

OutputPerforming sanity check on apache24 configuration:
Syntax OK

Поскольку вы внесли изменения в конфигурацию в Apache, вам нужно перезапустить службу, чтобы применить ее. В противном случае Apache все равно будет работать с предыдущей конфигурацией.

sudo apachectl restart

Теперь вы можете перейти к тестированию PHP в вашей системе.

Шаг 5 - Тестирование PHP-обработки

Чтобы проверить, правильно ли настроена ваша система для PHP, вы можете создать очень простой скрипт PHP.

Вы назовете этот скрипт + info.php. Чтобы Apache мог найти файл и правильно его обслужить, он должен быть сохранен в определенном каталоге-+ DocumentRoot + -сюда Apache будет искать файлы, когда пользователь обращается к веб-серверу. Расположение + DocumentRoot + указывается в файле конфигурации Apache, который вы изменили ранее (+ / usr / local / etc / apache24 / httpd.conf +).

По умолчанию для + Document Root установлено значение` + / usr / local / www / apache24 / data`. Вы можете создать файл + info.php в этом месте, набрав:

sudo vi /usr/local/www/apache24/data/info.php

Это откроет пустой файл. Вставьте этот код PHP в файл:

/usr/local/www/apache24/data/info.php

<?php phpinfo(); ?>

Сохранить и выйти.

Теперь вы можете проверить, может ли ваш веб-сервер правильно отображать контент, сгенерированный скриптом PHP. Чтобы попробовать это, вы можете посетить эту страницу в своем веб-браузере:

http:///info.php

Вы увидите страницу тестирования PHP FreeBSD.

изображение: https: //assets.digitalocean.com/articles/FAMP12/FAMP.png [FreeBSD info.php]

Эта страница дает вам информацию о вашем сервере с точки зрения PHP. Это полезно для отладки и проверки правильности применения ваших настроек.

Если это было успешно, то ваш PHP работает как положено.

Вы должны удалить этот файл после этого теста, потому что он может дать информацию о вашем сервере неавторизованным пользователям. Для этого вы можете ввести это:

sudo rm /usr/local/www/apache24/data/info.php

Вы всегда можете воссоздать эту страницу, если вам понадобится доступ к информации позже.

Заключение

Теперь, когда у вас установлен стек FAMP, у вас есть много вариантов, что делать дальше. Вы установили платформу, которая позволит вам устанавливать большинство видов веб-сайтов и веб-программного обеспечения на ваш сервер.

Related