504 Gateway Time-out when calling curl_exec() in PHP with SSL peer verification (CURLOPT_SSL_VERIFYPEER) off

Cool coolbsd at hotmail.com
Fri Aug 23 23:01:08 UTC 2013


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
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
>



More information about the nginx mailing list