ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Nginx + PHP в режиме FastCGI. Не о тдаются *.php странички



On Sat, Dec 12, 2009 at 03:08:08PM -0500, xintrea wrote:

> Поставил себе в виртуалку Ubuntu 9.04 Server. Настроил внутри виртуалки и 
> снаружи, чтобы она отвечала на IP 192.168.1.5. Установил пакеты
> 
> php5-cgi 
> nginx
> 
> Настроил запуск PHP5 в режиме FastCGI и Nginx. Когда Nginx и PHP запущены, 
> есть процессы:
> 
> 
> root     2431 pts/1 S  16:22 sh -c /bin/su -m -c "/usr/bin/php5-cgi -q -b 127 
>  
> www-data 2432 pts/1 S  16:22 /bin/su -m -c /usr/bin/php5-cgi -q -b 127.0.0.1: 
>  
> www-data 2435 pts/1 S  16:22 sh -c /usr/bin/php5-cgi -q -b 127.0.0.1:8888  
> www-data 2436 ?     Ss 16:22 /usr/bin/php5-cgi -q -b 127.0.0.1:8888  
> www-data 2437 ?     S  16:22 /usr/bin/php5-cgi -q -b 127.0.0.1:8888  
> www-data 2438 ?     S  16:22 /usr/bin/php5-cgi -q -b 127.0.0.1:8888  
> www-data 2439 ?     S  16:22 /usr/bin/php5-cgi -q -b 127.0.0.1:8888  
> www-data 2440 ?     S  16:22 /usr/bin/php5-cgi -q -b 127.0.0.1:8888  
> www-data 2441 ?     S  16:22 /usr/bin/php5-cgi -q -b 127.0.0.1:8888  
> root     2599 ?     Ss 16:38 nginx: master process /usr/sbin/nginx  
> www-data 2600 ?     S  16:38 nginx: worker process
> 
> 
> В браузере хост-машины ввожу http://192.168.1.5 и вижу стартовую страницу 
> Nginx, т.е. содержимое файла index.html в каталоге /var/www/nginx-default. 
> 
> В браузере я могу смотреть любые созданные мной *.html странички, nginx их 
> отдает. А вот *.php-скрипты не работают, вместо них показывается содержимое 
> файла /var/www/nginx-default/50x.html
> 
> Я проверил, выполняются ли вообще php-скрипты. Команда 
> php5-cgi script.php
> скрипт выполняет.
> 
> То есть, толи nginx не передает запросы на FastCGI порт, толи PHP не 
> принимает запросы, толи PHP не отдает запросы обратно, толи nginx не 
> принимает ответ от FastCGI порта, толи принимает, но не отдает на HTTP порт.
> 
> Дело осложняется тем, что документации по синтаксису и сруктуре файла 
> настройки nginx до сих пор не существует. Есть документация по опциям 
> модулей, но этого мало. Поэтому целенаправленно отконфигурировать nginx я не 
> могу, все приходится делать методом тыка.
> 
> Конфигурация nginx сейчас такая. 
> 
> 
> Файл /etc/nginx/nginx.conf:
> 
> 
> user www-data; 
> worker_processes  1; 
>  
> error_log  /var/log/nginx/error.log; 
> pid        /var/run/nginx.pid; 
>  
> events { 
>     worker_connections  1024; 
> } 
>  
> http { 
>     include       /etc/nginx/mime.types; 
>     default_type  application/octet-stream; 
>  
>     access_log  /var/log/nginx/access.log; 
>  
>     sendfile        on; 
>     #tcp_nopush     on; 
>  
>     #keepalive_timeout  0; 
>     keepalive_timeout  65; 
>     tcp_nodelay        on; 
>  
>     gzip  on; 
>  
>     include /etc/nginx/conf.d/*.conf; 
>     include /etc/nginx/sites-enabled/*; 
> }
> 
> 
> 
> Файл /etc/nginx/sites-enabled/default:
> 
> 
> server { 
>         listen   80; 
>         server_name  localhost; 
>  
>         access_log  /var/log/nginx/localhost.access.log; 
>  
>         location / { 
>                 root   /var/www/nginx-default; 
>                 index  index.html index.htm; 
>         } 
>  
>         location /doc { 
>                 root   /usr/share; 
>                 autoindex on; 
>                 allow 127.0.0.1; 
>                 deny all; 
>         } 
>  
>         location /images { 
>                 root   /usr/share; 
>                 autoindex on; 
>         } 
>  
>         #error_page  404  /404.html; 
>  
>         # redirect server error pages to the static page /50x.html 
>         # 
>         error_page   500 502 503 504  /50x.html; 
>         location = /50x.html { 
>                 root   /var/www/nginx-default; 
>         } 
>  
>         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
>         # 
>         location ~ \.php$ { 
>                 root           /var/www; 
>                 # fastcgi_pass   localhost:8888; 
>                 fastcgi_pass   127.0.0.1:8888; 
>                 fastcgi_index  index.php; 
>                 # fastcgi_param  SCRIPT_FILENAME  
> /scripts$fastcgi_script_name; 
>                 fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name; 
>                 include fastcgi_params;  
>         } 
>  
> }
> 
> 
> 
> Файл /etc/nginx/fastcgi_params:
> 
> 
> fastcgi_param  QUERY_STRING       $query_string; 
> 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  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; 
>  
> # PHP only, required if PHP was built with --enable-force-cgi-redirect 
> fastcgi_param  REDIRECT_STATUS    200;
> 
> 
> PHP-файлы размещаю в каталоге /var/www. Там два файла - index.php и 
> phpinfo.php. В браузере обращаюсь к ним как http://192.168.1.5/index.php и 
> http://192.168.1.5/phpinfo.php. В момент обращения к этим страницам, в файле 
> /var/log/nginx/error.log имею следующие записи:
>  
> 
> 2009/12/10 18:57:26  3719#0: *1 upstream prematurely closed connection while 
> reading response header from upstream, client: 192.168.1.2, server: 
> localhost, request: "GET /index.php HTTP/1.1", upstream: 
> "fastcgi://127.0.0.1:8888", host: "192.168.1.5" 
> 2009/12/10 18:57:33  3719#0: *1 upstream prematurely closed connection while 
> reading response header from upstream, client: 192.168.1.2, server: 
> localhost, request: "GET /phpinfo.php HTTP/1.1", upstream: 
> "fastcgi://127.0.0.1:8888", host: "192.168.1.5"
> 
>  
> 
> Вопрос. Как отконфигурировать nginx, чтобы он начал отдавать результаты 
> работы php скриптов?

С конфигурцией всё нормально. PHP почему-то ничего не отдаёт: "upstream
prematurely closed connection while reading response header from upstream".
Скорее всего, процесс, обрабатывающий запрос, падает. Можно посмотреть
не меняются ли номера процессов php5-cgi. Ну или в логах системных логах.


-- 
Игорь Сысоев
http://sysoev.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.