19 Ноябрь 2018, 06:24

Цитата дня:

Единственный способ установить границы возможного - это выйти за них в невозможное.
 Закон Кларка


Настройки CMS для работы с NGINX

Автор Уваров А.С., 07 Октябрь 2016, 20:36

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Вниз

Уваров А.С.

07 Октябрь 2016, 20:36 Последнее редактирование: 07 Октябрь 2016, 23:34 от Уваров А.С.
В данной теме мы решили собрать конфигурации NGINX+PHP-FPM для работы в связке с популярными веб-движками. Базовые настройки приведены в статье: Настраиваем веб-сервер на базе Nginx + PHP-FPM в Debian / Ubuntu Server, здесь только особенности настройки для того или иного движка.

Drupal

устраняет некоторые ошибки при работе с движком:

location ~ \.php$|^/update.php {
        if_modified_since before;
try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
fastcgi_pass_header Last-Modified;
        include fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
}

location / {
      try_files $uri /index.php?$query_string;

location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }

 location ~ ^/sites/.*/files/styles/ {
        try_files $uri @rewrite;
    }


Wordpress

поддержка ЧПУ

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}

STALKER_SLX

#1
30 Май 2018, 11:11 Последнее редактирование: 30 Май 2018, 11:17 от STALKER_SLX
С позволения администрации немного расширю вопрос данной темы. Кому-то пригодится в самый раз, да и самому можно будет подглянуть, если что :)
Хочу сразу отметить, что изложенные автором в предыдущем сообщении настройки для CMS Drupal - актуальны лишь для 7-й версии движка и PHP 5.x (см. официальную документацию тут - https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/).

Приведенные мной далее настройки долгое время собирал сам по кусочкам на просторах Интернета и уже успешно их протестировал на связке: Ubuntu 16.04 + Nginx 1.13 + PHP 7.x. Ошибок пока не выявлено!

Для 6-й версии Drupal
# Создаем алиас для rewrite
location @rewrite {
       rewrite ^/(.*)$ /index.php?q=$1;
   }

location / {
           try_files $uri @rewrite;
   }

location ~ '\.php$|^/update.php' {
       fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
       include fastcgi_params;
       # Block httpoxy attacks. See https://httpoxy.org/.
       fastcgi_param HTTP_PROXY "";
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       fastcgi_param QUERY_STRING $query_string;
       fastcgi_intercept_errors on;
       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
   }

   # Для правильного отображения элементов навигации и CSS-стилей.
   location ~ ^/sites/.*/files/imagecache/ {
       try_files $uri @rewrite;
   }

# Для обработки личных файлов через Drupal. Путь к личным файлам может иметь языковой префикс.
   location ~ ^(/[a-z\-]+)?/system/files/ {
       try_files $uri /index.php?$query_string;
   }

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



Для 8-й версии Drupal
location / {
       index index.php;
       try_files $uri $uri/ /index.php$is_args$args;
   }

# Создаем алиас для rewrite
location @rewrite {
       rewrite ^/(.*)$ /index.php?q=$1;
   }

location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
include fastcgi_params;
# Block httpoxy attacks. See https://httpoxy.org/.
fastcgi_param HTTP_PROXY "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}

   # Для правильного отображения элементов навигации и CSS-стилей.
    location ~ ^/sites/.*/files/styles/ {
        try_files $uri @rewrite;
   }

# Для обработки личных файлов через Drupal. Путь к личным файлам может иметь языковой префикс.
   location ~ ^(/[a-z\-]+)?/system/files/ {
       try_files $uri /index.php?$query_string;
   }

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




Joomla 3.x
В файле виртуального хоста Joomla 3.x обязательно должна присутствовать такая конструкция:

location / {
  try_files $uri $uri/ /index.php?q=$uri&$args;
  }


Если не удается попасть в панель управления движком Joomla 3.x - адрес_вашего_сайта/administrator/ (для наглядности примера - test1.ru/administrator/), а вместо этого происходить редирект на главную страницу сайта или выдает ошибку 404 (при вводе правильного логина и пароля), тогда нужно добавить в файл виртуального хоста параметр «SCRIPT_NAME», чтобы получилось так:

location ~ \.php$ {
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param  SCRIPT_NAME $fastcgi_script_name;
      fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
  }


После этого админка наконец-то заработала!

Если кто-то из ИТ-корифеев заметил в указанных мной конфигурациях ошибки/ «костыли» и знает, как это функционально улучшить - буду весьма признателен за конструктив!

Вверх