Настройка NGINX для CMS WordPress: пошаговое руководство
Просмотров: 1785
Ratings
(1)
Охватывая почти 30 процентов всех веб-сайтов, WordPress, безусловно, является системой управления контентом (CMS) №1 в Мире на данный момент. Несмотря на то, что он пришел из сферы применения для персональных блогов, WordPress является сейчас очень мощной CMS для всех типов контента и поддерживает некоторые из самых загруженных сайтов в мире.
Мы также рассмотрим некоторые из более сложных сценариев 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):
Перезагрузите 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.