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

Введение.

Продолжая публикации о использовании сервера Nginx, рассмотрим установку и настройку CMS Nginx WordPress. Ранние мы уже рассказывали о CMS Nginx Joomla, являющейся конкурентом WP. В статье не будет проводится сравнение этих двух CMS, желающие выберут то, что для них будет удобно. Объединять два приложения, в качестве движка, будет веб-сервер Nginx, базовую установка которого смотрите здесь.

Подготовка.

  • Стенд:
  • ALT Linux сервер, имя lin-nginx; ip-10.0.2.11;
  • mysql 8.0.xx
  • php8.0.x

Для правильной работы WordPress, установленного на сервере Nginx, требуется поддержка интерпретатора языка PHP — FastCGI.

GUI — графический интерфейс пользователя.

В модуль FastCGI входит пакет FPM — Fast Process Manager, управляющий PHP запросами с помощью FastCGI протокола. Менеджер PHP-FPM контролирует количество процессов PHP и частоту их создания.

Текущею версию PHP можно узнать с помощью команды.

# php -v

Настройка.

Установка и запуск менеджера php-fpm.

# apt-get update
# apt-get install php8.0-fpm-fcgi
# systemctl start|stop|restart|status php8.0-fpm
# systemctl enable php8.0-fpm

Конфигурация PHP находится /etc/php/8.0/fpm-fcgi/php.ini

Редактируем файл www.conf настроек PHP fpm.

# cd /etc/fpm8.0/php-fpm.d
# vim www.conf
...
listen = 127.0.0.1:9000
;listen=/var/run/php8.0-fpm/php8.0-fpm.sock
...
# systemctl restart php8.0-fpm 

Создаём отдельный каталог для wordpres.

# mkdir /var/www/html/wordpress

В /etc/nginx/sites-available.d/ поместим сценарий wordpress.conf.

server {
        ## Your website name goes here.
        server_name 10.0.2.11;
        ## Your only path reference.
        root /var/www/html/wordpress;
        ## This should be in your http block and if it is, it's not needed here.
        index index.php;

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                # include the "?$args" part so non-default permalinks doesn't break when using query string
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi_params;
                fastcgi_intercept_errors on;
                fastcgi_pass php;
                #The following parameter can be also included in fastcgi_params file
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

Обратите внимание на строки с жирным шрифтом.

Создаём символическую ссылку, выполняем рестарт Nginx.

# ln -s /etc/nginx/sites-available.d/wordpress.conf /etc/nginx/sites-enabled.d/wordpress.conf
# nginx -s reload

Для проверки работы PHP создаём сценарий.

# cd /var/www/html/wordpress
# vim index.php
<?php
phpinfo();
?>

При обращении к серверу, проверяем информацию о поддержке PHP.

Вид: Проверка работы Nginx c PHP
Вид: Фрагмент листинга работы Nginx c PHP

Вопросы БД.

Для успешной установки и запуска WP необходима БД. Обычно используют популярную, имеющею хорошею историю — MySQL. При установке MySQL, следует установить дополнительные пакеты для PHP.

# apt-get update
# apt-get install php8.0-mysqlnd
# apt-get install php8.0-mysqlnd-mysqli

Установка Nginx WordPress.

Развёртывание WordPress производим с помощью мастера установок, о чём уже рассказывалось ранние. Действия мастера настроек WP для Apache2, ни чем не отличаются от установок для Nginx. Единственное отличие — PHP, для Nginx большинство изменений следует производить с файлом настроек в /etc/fpm8.0/php-fpm.d/www.conf.

Права доступа Nginx WordPres.

От того, как выставлены права на каталоги, зависит безопасность WordPress. Защита каталогов с помощью ограничения прав доступа, является первым шагом защиты сайта. При установке WP, могут возникнуть разные ситуации, когда приходится менять уровень разрешения на каталоги. После того, как сайт WP начнёт работать, необходимо проверить права каталогов, в соответствии с рекомендацией сообщества WordPress.

# find /var/www/html/wordpress/ -type f -exec chmod 644 {} \;
# find /var/www/html/wordpress/ -type d -exec chmod 755 {} \;
  • -type f обычный файл
  • -exec выполнить команду
  • {} результат поиска
  • \; команда заканчивается

Заключение.

В статье показана возможность установки популярной CMS WordPress на веб сервер Nginx. В отличие от Apache2, сервер Nginx может работать на оборудовании с небольшими системными требованиями. Всё программное обеспечение, для работы сайта, допускает лицензионное соглашение GNU. Если в качестве сервера использовать дистрибутив ALT Simply Linux, без GUI, то затраты на сайт сведутся к минимуму, что положительно отразится на сам проект в целом.

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

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

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