Автор выбрал 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, у вас есть много вариантов, что делать дальше. Вы установили платформу, которая позволит вам устанавливать большинство видов веб-сайтов и веб-программного обеспечения на ваш сервер.