Работа сервера Linux Nginx с Joomla.

Введение.

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

Вид: проверка работы Nginx и PHP
Вид: проверка работы Nginx c 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 имеет неплохую историю, основные ресурсы разработчика находятся в России, присутствует во многих программных продуктах Реестра программного обеспечения, рекомендован к использованию для организаций.

Полезные ссылки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *