Как установить Nginx, MySQL, PHP (FEMP) на FreeBSD 12
Вступление
Стек FEMP (FreeBSD, Nginx, MySQL, PHP) представляет собой комбинацию программного обеспечения FOSS, которое можно использовать вместе для размещения динамических веб-сайтов и систем управления контентом, таких как Wordpress или Joomla.Это руководство поможет с установкой и настройкой стека FEMP на FreeBSD 12.
Предполагается, что вы работаете как root пользователь во время этого руководства. Используйте su для изменения на, root если вы уже не работаете root.
Шаг 1 - Обновление FreeBSD
По умолчанию FreeBSD не поставляется с pkg менеджером пакетов, но поставляется с инструментом для его начальной загрузки. Если FreeBSD попросит установить его, ответьте «Да».Лучше всего обновить систему заранее, чтобы убедиться, что вы получаете самые последние пакеты при установке стека FEMP. Вы можете сделать это, выполнив следующую команду:
pkg update ; pkg upgrade
Это обновит репозитории pkg, а затем обновит все установленные вами пакеты.
Шаг 2 - Установка Nginx
Чтобы установить Nginx, веб-сервер, который мы используем для этого урока, используйте следующую команду:pkg install nginx
Прежде чем мы сможем запустить nginx для проверки его работоспособности, нам нужно включить его при загрузке.
Вы можете сделать это, добавив nginx_enable="YES"в конец /etc/rc.conf.
echo 'nginx_enable="YES"' >> /etc/rc.conf
service nginx start
Проверьте, работает ли он, перейдя на свой IP-адрес в веб-браузере. Вы можете проверить IP-адрес своего сервера, запустив fetch -qo- http://ifconfig.co или проверив панель управления.
http://10.0.0.1/
Вы должны увидеть что-то вроде этого:
Добро пожаловать в Nginx!
Шаг 3 - Установка PHP
Далее нам нужно установить и настроить PHP, который мы будем использовать для обработки запросов PHP от nginx.pkg install php73 php73-mysqli
Как и раньше, нам нужно включить его при загрузке, прежде чем мы сможем запустить службу.
echo 'php_fpm_enable="YES"' >> /etc/rc.conf
Однако, прежде чем мы сможем его запустить, нам нужно внести несколько изменений в файл конфигурации /usr/local/etc/php-fpm.d/www.conf
cd /usr/local/etc/
vi php-fpm/www.conf
Ищите строку:
listen = 127.0.0.1:9000
Замените его следующим, чтобы PHP прослушивал сокеты unix:
listen = /var/run/php-fpm.sock
Далее в файле ищите эти строки:
;listen.owner = www
;listen.group = www
;listen.mode = 0660
;listen.group = www
;listen.mode = 0660
Раскомментируйте их, чтобы это выглядело так, чтобы изменить владельца сокета unix таким же, как у пользователя nginx:
listen.owner = www
listen.group = www
listen.mode = 0660
listen.group = www
listen.mode = 0660
После этого сохраните и закройте файл.
php.ini Файл должен быть создан. Файл примера php.ini-production может быть использован с небольшим изменением для безопасности:
Предполагая, что вы все еще в /usr/local/etc/
cp php.ini-production php.ini
sed -i -E 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' php.ini
Затем, наконец, запустите службу PHP.
service php-fpm start
Шаг 3.1 - Настройка Nginx для использования PHP
Nginx и PHP теперь включены, однако нам необходимо настроить Nginx, чтобы он знал о PHP и использовал его для обработки.php страниц.Откройте файл /usr/local/etc/nginx/nginx.conf в текстовом редакторе:
vi /usr/local/etc/nginx/nginx.conf
Найдите в файле следующее (закомментированные части удалены):
server {
listen 80;
server_name localhost;
location / {
root /usr/local/www/nginx;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
}
listen 80;
server_name localhost;
location / {
root /usr/local/www/nginx;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
}
В nginx.conf файл необходимо внести следующие изменения:
- Заменить localhost под server_name с доменом вашего сервера или IP - адрес.
- Удалить location / блок.
- Добавить index.php под index.
- Отредактировать корневой каталог nginx в /var/www/html/.
- Настроитье nginx для обработки PHP.
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $uri $document_root$fastcgi_script_name =404;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $uri $document_root$fastcgi_script_name =404;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Затем, наконец, создайте корневой каталог nginx, символическую ссылку на index.html страницу nginx по умолчанию и перезапустите nginx.
mkdir -p /var/www/html/
ln -s /usr/local/www/nginx-dist/index.html /var/www/html/
service nginx restart
Если nginx не перезапускается, запустите, nginx -t чтобы проверить все ошибки конфигурации в вашем конфигурационном файле и устранить их, затем попробуйте перезапустить nginx еще раз.
Переход на домен или IP-адрес вашего сервера по-прежнему должен вернуть Welcome to nginx!страницу с ранее.
Чтобы проверить, работает ли PHP, создайте файл /var/www/html/phpinfo.php со следующим содержимым:
<?php phpinfo(); ?>
Затем перейдите на тестовую страницу, созданную на IP-адресе / домене вашего сервера.
http://example.com/phpinfo.php
Он должен вернуть страницу, как это:

Лучше всего удалить файл впоследствии для безопасности, так как он может предоставить информацию о вашей установке PHP любому.
rm /var/www/html/phpinfo.php
Шаг 4 - Установка MySQL (MariaDB)
Теперь, когда у нас есть Nginx и PHP, которые работают и работают вместе, нам осталось только установить и настроить MySQL.Однако мы будем использовать замену MySQL, поддерживаемую сообществом, MariaDB; который полностью совместим с приложениями, ориентированными на MySQL.
pkg install mariadb103-server mariadb103-client
Как и ранее, нам нужно разрешить запуск сервиса при загрузке, прежде чем мы сможем запустить его с помощью сервиса.
echo 'mysql_enable="YES"' >> /etc/rc.conf
service mysql-server start
Далее нам нужно обезопасить установку MariaDB.
mysql_secure_installation
Enter current password for root (enter for none):
Поскольку мы настраиваем MariaDB в первый раз, у учетной записи root нет пароля, поэтому просто нажмите здесь клавишу «ENTER».
Set root password? [Y/n]
Нажмите здесь клавишу «ENTER», чтобы ответить «да», а затем введите безопасный пароль для вашего пользователя root MariaDB.
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
Последние несколько вопросов вы можете просто использовать по умолчанию, нажав клавишу «ENTER», так как они являются нормальными значениями по умолчанию, которые использует установщик.
MariaDB уже использует сделанные нами изменения, поэтому нет необходимости перезапускать их.
Комментариев 0