nginx + php-fastcgi + GET / ;)
Вова
vovka at s25.ru
Wed May 23 04:33:16 MSD 2007
Igor Sysoev пишет:
> On Tue, May 22, 2007 at 07:45:12PM +1100, Vladimir S. Yakimov wrote:
>
>
>> Настроил nginx + php-fastcgi, все быстро и четко работает, но есть маленькая проблемка.
>> При обращении к серверу через http://site.ru/index.php все ОК, а при обращении к http://site.ru/ идет 403. В лог падает: 2007/05/22 07:33:23 [error] 28514#0: *239 "/var/www/site..ru/public_html/index.php" is forbidden (13: Permission denied), client: 192.168.1.1, server: site.ru, URL: "/", host: "site.ru"
>>
>> Конфиг
>> [...]
>> server {
>> listen 192.168.1.100:80;
>> server_name site.ru;
>>
>> access_log /var/www/site.ru/logs/nginx_access.log comb;
>> error_log /var/www/site.ru/logs/nginx_error.log debug;
>>
>> location / {
>> root /var/www/site.ru/public_html;
>> index index.php index.html;
>> autoindex off;
>> }
>>
>> location ~* ^.+\.(php)$ {
>> fastcgi_pass unix:/var/run/php-fastcgi/siteru.sock;
>> fastcgi_index index.php;
>> fastcgi_param SCRIPT_FILENAME /var/www/site.ru/public_html$fastcgi_script_name;
>> fastcgi_param QUERY_STRING $query_string;
>> fastcgi_param REMOTE_ADDR $remote_addr;
>> fastcgi_param REQUEST_METHOD $request_method;
>> fastcgi_param CONTENT_TYPE $content_type;
>> fastcgi_param CONTENT_LENGTH $content_length;
>> fastcgi_param SCRIPT_NAME $fastcgi_script_name;
>> 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 REMOTE_PORT $remote_port;
>> fastcgi_param SERVER_ADDR $server_addr;
>> fastcgi_param SERVER_PORT $server_port;
>> fastcgi_param SERVER_NAME $server_name;
>> }
>> }
>> [...]
>>
>> ls -la /var/www/site.ru/public_html/
>> ..
>> -rw-r----- 1 wwwsite wwwsite 16 2007-05-22 07:31 index.php
>>
>> Придумал частичное решение своей проблемы:
>> rewrite ^(.*)/$ $1/index.php break;
>>
>> Но при таком раскладе не работает index.html (если index.php отсутсвует)
>>
>
> location ~* \.(php)$|/$ {
>
> но тоже index.html работать не будет.
>
>
>> Если кто-нибудь подскажет решение проблемы буду очень благодарен.
>>
>
> nginx работает под пользователем wwwsite ?
>
>
>
Игорь nginx работает под пользователем www-data.
php-cgi запущен под wwwsite.
Вернее для каждого пользователя wwwsite1,wwwsite2,wwwsite3 запущен свой
php-cgi. Далее для каждого виртуального хоста в nginx.conf идет привязка
к unix сокету php-cgi.
Если поставить на index.php права 0644 то скрипт начинает нормально
выполняться...
Некоторые пользователи используют только статические страницы, но с
перспективой развития до динамики :)
Поэтому нужно чтобы php шли через fastcgi а статический html отдавался
сервером как есть.
More information about the nginx-ru
mailing list