Настройка NGINX для CMS WordPress: пошаговое руководство

NGINX конфигурация для  WordPress

Охватывая почти 30 процентов всех веб-сайтов, WordPress, безусловно, является системой управления контентом (CMS) №1 в Мире на данный момент. Несмотря на то, что он пришел из сферы применения для персональных блогов, WordPress является сейчас очень мощной CMS для всех типов контента и поддерживает некоторые из самых загруженных сайтов в мире.

 



Оглавление статьи[Показать]


Объединив его с NGINX, вы можете развернуть масштабируемую веб - платформу.

Вы можете просмотреть официальную документацию WordPress по NGINX по адресу https://codex.wordpress.org/Nginx.

Мы также рассмотрим некоторые из более сложных сценариев WordPress, включая многосайтовые конфигурации с поддоменами и каталогами.

Давайте начнем.

Чтобы скомпилировать PHP-код и запустить его через NGINX, предпочтительным методом является PHP-FPM, высокоскоростной менеджер процессов FastCGIНам также нужно будет установить сам PHP, и для простоты мы будем придерживаться версии, поставляемой ОС. Те, кто ищет максимально возможную производительность, должны убедиться, что они используют PHP 7 (выпущен 3 декабря 2015 года), который может предложить 2-3-кратное улучшение скорости для WordPress, в то же время будучи до четырех раз более эффективным по сравнению с PHP 5.6.

Чтобы установить PHP-FPM, вы должны запустить следующее в системе Debian/Ubuntu:

apt-get install php7.0-fpm

Для тех, кто работает с CentOS/RHEL, вы должны выполнить следующее:

sudo yum install php-fpm 

Поскольку PHP сам по себе является обязательным условием для php-fpmпакетов, он также будет установлен.

Примечание: Другие пакеты, такие как MySQL, потребуются, если вы собираетесь запустить это на одном экземпляре VPS. Обратитесь к документации WordPress для получения полного списка требований.

В этом случае мы просто используем отдельный сайт WordPress, который будет развернут во многих личных и бизнес-сценариях. Это типичное развертывание для WordPress.

Для простоты управления я создал специальный конфигурационный файл только для сайта WordPress (/etc/nginx/conf.d/wordpress.conf):

server { 
    listen       80; 
    server_name  wordpressdemo.nginxcookbook.com; 
 
    access_log  /var/log/nginx/access.log  combined; 
 
    location / { 
        root   /var/www/html; 
        try_files $uri $uri/ /index.php?$args;     
    } 
 
    location ~ \.php$ { 
        fastcgi_pass unix:/var/run/php7.0-fpm.sock; 
        fastcgi_index index.php; 
        fastcgi_param SCRIPT_FILENAME 
         $document_root$fastcgi_script_name; 
        include fastcgi_params; 
    } 
} 

Перезагрузите NGINX, чтобы прочитать новый файл конфигурации и проверить файлы журналов, если есть какие-либо ошибки. Если вы устанавливаете WordPress с нуля, вы должны увидеть следующее:

Вы можете завершить установку WordPress, если вы еще этого не сделали.

По большей части конфигурация такая же, как и статическая конфигурация сайта по умолчаниюдавайте начнемДля вызова корневого URL у нас есть новая try_files директива, которая попытается загрузить файлы в указанном порядке, но вернется к последнему параметру, если все они потерпят неудачу.

Для этого примера WordPress это означает, что любые статические файлы будут обслуживаться, если они существуют в системе, а затем вернуться/index.php?args, если это не удастся.

args рерайт позволяет постоянным ссылкам сайта быть в гораздо более человеческой форме. Например, если у вас есть рабочая установка WordPress, вы можете увидеть ссылки, такие как показано на следующем скриншоте:

Наконец, мы обрабатываем все файлы PHP через интерфейс FastCGI в PHP-FPM. В предыдущем примере мы ссылаемся на стандарт Ubuntu/Debian; если вы используете CentOS/RHEL, то путь будет /var/run/php-fpm.sock.

NGINX просто проксирует соединение с экземпляром PHP-FPM, а не является частью самого NGINX. Это разделение позволяет лучше контролировать ресурсы, тем более что количество входящих запросов на веб-сервер не обязательно соответствует количеству запросов PHP для типичного веб-сайта.

Будьте осторожны при копировании и вставке любых файлов конфигурации. Очень легко пропустить что-то и иметь что-то немного другое в вашей среде, что вызовет проблемы с работой сайта, как ожидалось. Вот быстрая таблица поиска различных других проблем, с которыми вы можете столкнуться:

Ошибка

Что проверить

502 Bad Gateway

Права собственности на файл для файла сокета PHP-FPM

404 File Not Found

Проверьте отсутствие index index.phpдирективы

403 Forbidden

Проверьте правильный путь в rootдирективе и/или проверьте правильные права доступа к файлам

Ваш журнал ошибок (по умолчанию /var/log/nginx/error.log), как правило, содержит гораздо больше подробностей о проблеме, которую вы видите, по сравнению с тем, что отображается в браузере. Обязательно проверьте журнал ошибок, если вы получаете какие - либо ошибки.

Подсказка: NGINX не поддерживает .htaccess файлы. Если вы видите примеры в Интернете, ссылающиеся на .htaccess файлы, они специфичны для Apache. Убедитесь, что все конфигурации, на которые вы смотрите, предназначены для NGINX.

Вас заинтересует / Intresting for you:

Настройка и использование Joom...
Настройка и использование Joom... 1482 просмотров Гвен Mon, 21 Mar 2022, 14:19:59
Установка и настройка Django с...
Установка и настройка Django с... 1604 просмотров Гвен Wed, 06 Apr 2022, 18:11:58
Структура каталогов WordPress ...
Структура каталогов WordPress ... 3062 просмотров Игорь Воронов Fri, 07 Jan 2022, 17:59:03
Создание веб-приложений с помо...
Создание веб-приложений с помо... 1770 просмотров Игорь Воронов Fri, 07 Jan 2022, 18:03:45
Войдите чтобы комментировать

ildergun аватар
ildergun ответил в теме #10472 2 года 1 нед. назад
С Nginx Вордпресс работает намного быстрее. В несколько раз как минимум по сравнению с Апачем. Отличное руководство. Спасибо за конфиг!