Цель: nginx (v 7..8) + drupal 6, +fastcgi, апача нет!
есть "миллион" описаний конфигурации, примеров и т.п.
все сводятся к:
location / {
root /var/www;
index index.php;
if (!-e $request_filename ) {
rewrite ^(.*)$ /index.php?q=$1 last;
}
}
...
но на странице Игоря Сысоева есть рекомендации с "вырезками" другого варианта..
есть предложение раскрыть тему nginx + drupal 6 конфигурация, поиск, чистые ссылки и т.п.
вопрос существует рабочий файл конфигурации с последними рекомендациями?
Комментарии
Если под последними рекомендациями имеется ввиду использование директивы try_files, то например вот:
listen 8080;
server_name 192.168.1.1;
root /var/www-nginx/drupal;
location / {
try_files $uri $uri/ [user=drupal]drupal[/user];
index index.php index.html index.htm;
}
location ~ \.php$ {
try_files $uri [user=drupal]drupal[/user];
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location [user=drupal]drupal[/user] {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param QUERY_STRING q=$uri&$args;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
}
}
спасибо пример рабочий, я не заметил fastcgi_param SCRIPT_NAME /index.php;
+ как вариант замены:
<FilesMatch "\.(engine|inc|info|install|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
Order allow,deny
</FilesMatch>
добавить:
location ~* \.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template)$ {
deny all;
}
На drupal.ru сейчас следующий конфиг (без использования try_files введённой в последних версиях nginx) - см. аттачи. Вообще стоит его уже обновить.
ваш вариант работает отлично!
а предложеные с try_files - увы
Тут есть шаблон конфига. Несколько конфигов http://drupal.org/node/244072
Мой вариант настройки. пошаговый. Может кому пригодится.
битая ссылка ((
На Вордпресе легко админка прячется, так как она там отдельно, как же на Друпале спрятать?:
allow 10.0.0.0/8;
allow 192.168.0.0/16;
deny all;
index index.php index.html index.htm index.php;
root /var/www/blog;
}
так вроде как и у Drupal это отдельно - /admin... Не?
Наиболее актуальный конфиг, который я использую - http://groups.drupal.org/node/26363
его написала одна из организаторов http://groups.drupal.org/nginx
группы nginx на друпал.орг
Кстати, если по конфигу есть какие-то замечания / доработки / исправления или что-то не работает, omega8.cc на пару с brianmercer проконсультируют / подскажут что не так, причем бесплатно.
Я немного доделал, на этом конфиге работает boost + static_gzip и imagecache
Все сделано через try_files как советует Игорь Сысоев.
Спасибо! Отлично работает!
Только не могу разобраться, как заставить работать с nginx backup_migrate. Все время ругается «....please secure the 'sites/default/files/backup_migrate/manual' directory...»..
# hide backup_migrate files
location ~* ^/files/backup_migrate {
deny all;
}
- не помогает.
Сравните две строчки: «sites/default/files/backup_migrate» и «^/files/backup_migrate»
По-моему, крышка здесь не нужна.
Да, спасибо. Вот так заработало:
deny all;
}