ПРОЕКТЫ 


  АРХИВ 


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: Re[2]: php


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Re[2]: php
  • From: "locojohn" <nginx-forum@xxxxxxxx>
  • Date: Fri, 11 Nov 2011 16:48:36 -0500
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=X5UgCTSO/3BcO2tfvJbLFDSjYRjWmidWLptg5WmnG0E=; b=vBPIKXErn3GP5VKg62x7ZSHbScXmWGPSsV+Sv3sz2DkWyXoK7v8Ef675+zGTDkAX3RwBaFID1lcuz00dVxFbzbrqNGJfUuF1HwfmguvmrrO78hh0sX/UfLDtIurLmFOh;
  • In-reply-to: <20111111135659.GH5714@xxxxxxxxx>
  • References: <20111111135659.GH5714@xxxxxxxxx>

Уважаемый Игорь,

Я устанавливаю переменную FastCGI
окружения PHP_VALUE в значение
"include_path=$document_root" в server {} блоке, чтобы
PHP-FPM backend находил нужные файлы в include_path
равном $document_root:

       server {
                listen 80;
                server_name test.com;

                root /opt/www/test.com;

                fastcgi_read_timeout 1800;
                fastcgi_send_timeout 1800;
                fastcgi_param PHP_VALUE "include_path=$document_root";


                ...


                location ~ ^(?<SCRIPT_FILENAME>.+\.php)$ {
                  include fastcgi_php.conf;
                  fastcgi_param SCRIPT_URL $SCRIPT_FILENAME;
                  fastcgi_param SCRIPT_URI
$scheme://$http_host$SCRIPT_FILENAME;
                  fastcgi_pass phpfarm;
                }

                location ~ ^(?<SCRIPT_FILENAME>.+\.php)(?<PATH_INFO>.+)$
{
                  include fastcgi_php.conf;
                  fastcgi_param SCRIPT_URL $PATH_INFO;
                  fastcgi_param SCRIPT_URI
$scheme://$http_host$PATH_INFO;
                  fastcgi_pass phpfarm;
                }


Однако, наблюдается очень странная
ситуация.  При refreshe страницы с php
скриптом, я распечатываю значение
"include_path", и на каждый третий раз он
выдаёт системное значение eg: ".:/usr/share/php",
как будто PHP_VALUE "include_path=$document_root" не
передаётся в php-fpm окружение.  В
остальные же разы печатается
правильное значение, т.е.: "/opt/www/test.com".  

Чтобы это могло значить?  Если же я
ставлю fastcgi_param PHP_VALUE в вышеуказанные
location {} блоки, то значение include_path всегда
правильное, то есть равное $document_root, что
я передаю через fastcgi_param.  Я пробовал
указывать вместо $document_root путь
"/opt/www/test.com" напрямую без переменной, но
это не изменило ситуации.  Каждый
третий раз при рефреше одной и той же
страницы печатается неправильное
значение include_path.

Получается, что ваше решение не
работает полностью.

Есть ли у вас какие-нибудь догадки по
поводу решения данной проблемы?

Андрей

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,218046,218229#msg-218229

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


 




Copyright © Lexa Software, 1996-2009.