Проблемы переменных в путях лог-файлов
skinc
nginx-forum на nginx.us
Пн Май 9 19:30:21 MSD 2011
Доброго времени суток.
Пытался в nginx/1.0.1 вынести Joomla-зависимый
кусок конфига в отдельный файл, для
облегчения добавления/изменения
сайтов с данной CMS следующим образом:
----- Секция Server в nginx.conf -----
server {
listen 80;
server_name example.com;
set $home /home/www/example.com;
root $home/www;
include joomla_params;
location / {
try_files $uri $uri/ @joomla;
}
}
----- Файл joomla_params -----
error_log $home/log/error.log;
access_log $home/log/access.log main;
index index.php;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:$home/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT /www;
}
location @joomla {
include fastcgi_params;
fastcgi_pass unix:$home/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME /www/index.php;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param DOCUMENT_ROOT /www;
}
----- Конец конфига -----
Как выяснилось не работает по
следующим причинам:
1. error_log вообще не поддерживает
переменных - ошибка "nginx: [emerg] open()
"/$home/log/error.log" failed (2: No such file or directory)"
2. access_log добавляет префикс (${prefix}), если
путь не начинается с символа "/" ("/$home"),
несмотря на то, что в значении
переменной он присутствует ("set $home
/home/www/example.com;").
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,196620,196620#msg-196620
Подробная информация о списке рассылки nginx-ru