我的服务器环境是nginx,采用fast-cgi方式来解析php。
$open_url = 'http://127.0.0.1:82/test.php';
$img_save_url = file_get_contents($open_url);
如果是test.html是可以正常得到值的,本机的aspx页面也可以获取结果。但php则报 504 gateway timeout错误
请问 这个问题是什么原因导致的?是不是cgi死锁了?
启动采用的方式是:RunHiddenConsole.exe c:\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\php\php.ini
$open_url = 'http://127.0.0.1:82/test.php';
$img_save_url = file_get_contents($open_url);
如果是test.html是可以正常得到值的,本机的aspx页面也可以获取结果。但php则报 504 gateway timeout错误
请问 这个问题是什么原因导致的?是不是cgi死锁了?
启动采用的方式是:RunHiddenConsole.exe c:\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\php\php.ini
需要 allow_url_fopen = On
不知你设置了没有
我认为是php-cgi.exe的问题,当解析A页面时,同时又要解析B页面,在同一进程内锁住了。
test.php$open_url = 'http://127.0.0.1:82/test.php';吧?
我的意思是
$open_url = 'http://127.0.0.1:82/test.html';
$img_save_url = file_get_contents($open_url);
$img_save_url是能获取返回值的,说明是能调到网站的,不是网络问题,而是php-cgi.exe内部那里出了问题。
单独在页面上调用test.php是能正确执行的,而且本地的aspx也是能调到返回值的,唯独就是php不能。
我前面还发现了在请求出现timeout的瞬间,test.php的代码正确执行(保存了一张图片),而且每次都是这样。很头疼啊
fastcgi_pass 127.0.0.1:9000;
fastcgi_pass 127.0.0.1:9001;
问题原因应该是进程内死锁导致的。
不好意思理解错误你可以在命令下启动service nginx start或者查看nginx错误日志一般这种明显的错误都应该可以看得到