С позволения администрации немного расширю вопрос данной темы. Кому-то пригодится в самый раз, да и самому можно будет подглянуть, если что
Хочу сразу отметить, что
изложенные автором в предыдущем сообщении настройки для 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# Создаем алиас для rewritelocation @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-й версии Drupallocation / {
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;
}После этого админка наконец-то заработала!Если кто-то из ИТ-корифеев заметил в указанных мной конфигурациях ошибки/ «костыли» и знает, как это функционально улучшить - буду весьма признателен за конструктив!