Введение.
В предыдущей статье мы рассказали о базовых понятиях, структуре, установке и настройке веб сервера Nginx. Этот сервер может работать как самостоятельный узел, в коммуникационных сети предприятия, обслуживая приложения находящегося на его «борту». В статье будет показано управление CMS Joomla с помощью Nginx. Установка основных пакетов, необходимых для запуска Nginx, можно уточнить в предыдущей статье, здесь будут показана установка дополнительных расширений для запуска Joomla.
Подготовка.
- Стенд:
- ALT Linux сервер, имя lin-nginx; ip-10.0.2.11;
- mysql 8.0.xx
- php7
В своей работе CMS Joomla, использует язык программирования PHP. Для поддержки PHP в Nginx, потребуется установить интерфейс FastCGI, в качестве отдельного демона.
FastCGI — протокол взаимодействия веб-сервера и php приложения.
В FastCGI входит пакет FPM — Fast Process Manager, основная задача которого управлять PHP запросами с помощью FastCGI протокола. Менеджер PHP-FPM выполняет свою работу быстро, контролируя количество и частоту PHP процессов.
Текущею версию PHP можно узнать с помощью команды.
# php -version
Настройка.
Устанавливаем пакет php-fpm и запускаем его, как отдельный процесс.
# apt-get update
# apt-get install php7-fpm-fcgi
# systemctl start|stop|restart|status php7-fpm
# systemctl enable php7-fpm
Вносим изменения в настройки PHP для fpm, редактируем www.conf.
# cd /etc/fpm7/php-fpm.d
# vim www.conf
...
listen = 127.0.0.1:9000
;listen=/var/run/php7-fpm/php7-fpm.sock
...
# systemctl restart php7-fpm
Создаём отдельный каталог для joomla.
# mkdir /var/www/html/joomla
В /etc/nginx/sites-available.d/ поместим сценарий joomla.conf.
server {
listen 80;
server_name lin-nginx;
server_name_in_redirect off;
access_log /var/log/nginx/localhost.access_log;
error_log /var/log/nginx/localhost.error_log info;
root /var/www/html/joomla;
index index.php index.html index.htm default.html default.htm;
# Support Clean (aka Search Engine Friendly) URLs
location / {
try_files $uri $uri/ /index.php?$args;
}
# add global x-content-type-options header
add_header X-Content-Type-Options nosniff;
# deny running scripts inside writable directories
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi.conf;
}
# caching of files
location ~* \.(ico|pdf|flv)$ {
expires 1y;
}
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
expires 14d;
}
}
В joomla.conf, обратите внимание на строки с жирным шрифтом.
Указываем символическую ссылку, выполним рестарт Nginx.
# ln -s /etc/nginx/sites-available.d/joomla.conf /etc/nginx/sites-enabled.d/joomla.conf
# nginx -s reload
Вопросы БД.
Для успешной установки и запуска WP необходима БД. Обычно используют популярную и хорошо себя зарекомендовавшею в эксплуатации, MySQL. При установке, которой следует учитывать включение дополнительных пакетов для поддержки PHP.
# apt-get update
# apt-get install php7-mysqlnd
# apt-get install php7-mysqlnd-mysqli
В /var/www/html/joomla создадим проверочный index.php файл.
# cd /var/www/html/joomla
# vim index.php
<?php
echo <h1>'Hello Kabtim-t'</h1>;
?>
Смотрим ответ сервера Nginx на вызов PHP код.

Установка Joomla.
Базовую установку Joomla можно посмотреть здесь, мы же рассмотрим некоторые особенности настройки Nginx для работы с Joomla. Когда все предварительные условия для установки CMS будут выполнены и Вы перейдёте к работе с графическим помощником мастера установки. Учитывайте, при переходе на страницу, шаг № 3, проверки совместимости значений PHP — редактирование следует проводить в файле www.conf расположенного в /etc/fpm7/php-fpm.d
Права доступа Joomla.
В процессе установки могут возникнуть коллизии и «непонятки», когда приходится устанавливать, временно, права на каталоги и файлы с доступом chmod 777. Следует строго помнить, после того, как сайт заработает необходимо вернутся и восстановить значения прав, как указанно в документации к Joomla.
# find /var/www/html/joomla/ -type f -exec chmod 644 {} \;
# find /var/www/html/joomla/ -type d -exec chmod 755 {} \;
- -type f обычный файл
- -exec выполнить команду
- {} результат поиска
- \; команда заканчивается
Заключение.
Выбор сервера для веб приложений организации является ответственным шагом, определяющий долгосрочную стратегию и политику коммуникационных технологий предприятия. В будущем, когда всё заработает и у пользователей появится хорошая привычка каждодневного общения с веб ресурсом, изменить что-то будет сложно. Необходимо сразу определится, какой программный веб двигатель использовать. Сервер Nginx имеет неплохую историю, основные ресурсы разработчика находятся в России, присутствует во многих программных продуктах Реестра программного обеспечения, рекомендован к использованию для организаций.
Полезные ссылки.
- Сайт Nginx
- joomla.org
- joomla.ru