php fastcgi问题,死锁,超时

tyq0319 2012-11-21 11:53:37
我的服务器环境是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
...全文
623 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyq0319 2013-01-05
  • 打赏
  • 举报
回复
引用 14 楼 zy205817 的回复:
引用 12 楼 tyq0319 的回复:问题解决了,采用两个php-cgi.exe进程,一个端口是9000,一个端口是9001,就不会出现死锁问题了。两个子网站分别使用不同的处理: fastcgi_pass 127.0.0.1:9000; fastcgi_pass 127.0.0.1:9001; 问题原因应该是进程内死锁导致的。那你运行的需要在nginx.c……
恩,是的,因为是两个网站(一个是子域名),在nginx中不同的网站配置使用不同的端口我认为更好些。
码无边 2012-11-27
  • 打赏
  • 举报
回复
引用 12 楼 tyq0319 的回复:
问题解决了,采用两个php-cgi.exe进程,一个端口是9000,一个端口是9001,就不会出现死锁问题了。两个子网站分别使用不同的处理: fastcgi_pass 127.0.0.1:9000; fastcgi_pass 127.0.0.1:9001; 问题原因应该是进程内死锁导致的。
那你运行的需要在nginx.conf文件配置多个项目吗?
yi890410 2012-11-26
  • 打赏
  • 举报
回复
引用 8 楼 tyq0319 的回复:
引用 7 楼 yi890410 的回复:test.html能直接运行php语句么 求扫盲 你看懂没有? 我的意思是 $open_url = 'http://127.0.0.1:82/test.html'; $img_save_url = file_get_contents($open_url); $img_save_url是能获取返回值的,说明是能调到网站……
不好意思 理解错误 你可以在命令下启动service nginx start 或者查看nginx错误日志 一般这种明显的错误都应该可以看得到
tyq0319 2012-11-22
  • 打赏
  • 举报
回复
问题解决了,采用两个php-cgi.exe进程,一个端口是9000,一个端口是9001,就不会出现死锁问题了。两个子网站分别使用不同的处理: fastcgi_pass 127.0.0.1:9000; fastcgi_pass 127.0.0.1:9001; 问题原因应该是进程内死锁导致的。
码无边 2012-11-22
  • 打赏
  • 举报
回复
贴出你的nginx.ini配置文件 还有你的命令里面运行fastcgi命令
tyq0319 2012-11-21
  • 打赏
  • 举报
回复
本地研发机器。
acabin 2012-11-21
  • 打赏
  • 举报
回复
nginx,php-cgi模式,为啥不用linux而要在windows下蛋疼呢……
tyq0319 2012-11-21
  • 打赏
  • 举报
回复
引用 7 楼 yi890410 的回复:
test.html能直接运行php语句么 求扫盲
谁说不能处理,不要后缀还可以处理,任何后缀我都可以用php处理。我给你扫盲下哈。
tyq0319 2012-11-21
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
默认 llow_url_fopen = Off 你总不至于 test.phpPHP code?1$open_url = 'http://127.0.0.1:82/test.php';吧?
单独在页面上调用test.php是能正确执行的,而且本地的aspx也是能调到返回值的,唯独就是php不能。 我前面还发现了在请求出现timeout的瞬间,test.php的代码正确执行(保存了一张图片),而且每次都是这样。很头疼啊
tyq0319 2012-11-21
  • 打赏
  • 举报
回复
引用 7 楼 yi890410 的回复:
test.html能直接运行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内部那里出了问题。
yi890410 2012-11-21
  • 打赏
  • 举报
回复
test.html能直接运行php语句么 求扫盲
xuzuning 2012-11-21
  • 打赏
  • 举报
回复
默认 llow_url_fopen = Off 你总不至于 test.php
$open_url = 'http://127.0.0.1:82/test.php';
吧?
tyq0319 2012-11-21
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
$img_save_url = file_get_contents($open_url); 需要 allow_url_fopen = On 不知你设置了没有
默认就是开启的,test.html都可以正常获取值。 我认为是php-cgi.exe的问题,当解析A页面时,同时又要解析B页面,在同一进程内锁住了。
xuzuning 2012-11-21
  • 打赏
  • 举报
回复
$img_save_url = file_get_contents($open_url); 需要 allow_url_fopen = On 不知你设置了没有
acabin 2012-11-21
  • 打赏
  • 举报
回复
就算是本地可以用虚拟机啊

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧