It was said PHP_FCGI_CHILDREN doesn't work under Windows, though I'm not sure current status of this issue:

https://bugs.php.net/bug.php?id=49859

-C.B.
On 8/23/2013 1:28 PM, Ben Johnson wrote:

On 8/23/2013 3:23 PM, Maxim Dounin wrote:
Hello!

On Fri, Aug 23, 2013 at 02:41:43PM -0400, Ben Johnson wrote:


On 8/23/2013 2:05 PM, Maxim Dounin wrote:
Hello!

On Fri, Aug 23, 2013 at 12:46:44PM -0400, Ben Johnson wrote:

Hello,

I'm seeing a strange problem with nginx (1.5.2 on Windows) and PHP
(5.4.8 on Windows).

Whenever I make a cURL request with PHP's curl_exec() function to a
secure URL (https protocol), and I disable peer verification, like this

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

nginx responds with a "504 Gateway Time-out".

If I set CURLOPT_SSL_VERIFYPEER to TRUE, nginx responds with a "200 OK",
although curl_exec() returns false, which is expected due to the
verification failure (I'm using a self-signed certificate in nginx).

I have tried executing the same script under Apache and it functions as
expected with peer verification disabled.
What URL is requested by your script?  Symptoms described suggest
you are requesting some php script from the same server, and 504
is likely due to only one php backend process.

Thank you for the quick reply, Maxim! I appreciate it.

You are exactly right; my script requests another URL on the same server
(which happens to be localhost in this case).

Just so I understand the problem, are you saying that the script that
contains the cURL call (via PHP's curl_exec() function) essentially
ties-up the only available PHP backend process, which causes curl_exec()
to time-out when it requests another URL on the same server?

Is there a solution to this problem?

My setup is essentially the same as what is described at
http://wiki.nginx.org/PHPFastCGIOnWindows .
If you are using php-cgi, configuring PHP_FCGI_CHILDREN
environment variable before starting php-cgi should help.

Thank you for the suggestion, Maxim.

I set PHP_FCGI_CHILDREN to 4, 20, etc., but it doesn't seem to make any
difference. Here is the Windows batch script that I'm using to start
php-cgi.exe (please excuse the wrapping):

@ECHO OFF
ECHO Starting PHP FastCGI...
SET PHP_FCGI_MAX_REQUESTS=0
SET PHP_FCGI_CHILDREN=4
SET PATH="C:\Program Files\php;%PATH%"
"C:\Program Files\php\php-cgi.exe" -b 127.0.0.1:9000 -c "C:\Program
Files\php\php.ini"

Any other ideas?

Thanks again,

-Ben

_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx



_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to