thinkphp IIs 奇怪的500错误!

leroy358 2016-11-01 08:21:38
IIS8 + thinkphp3.2 ,前端调用微信录音接口,获得录音文件的serverId后,到微信服务器下载该文件到项目服务器,用ffmpeg将该amr文件转换成mp3格式,返回地址到前端;但下一次请求就会报出500的错误;但是再下一次请求就变得正常!实在想不明白报错的原因,大神求解!
...全文
927 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2017-10-13
  • 打赏
  • 举报
回复
请问楼主现在解决了吗?同样的问题。。
leroy358 2016-11-08
  • 打赏
  • 举报
回复
引用 27 楼 leroy358 的回复:
[quote=引用 25 楼 xuzuning 的回复:] 不是 php 错误,显示什么? 你要把方向搞清楚! 你的问题在于 ffmpeg 因某种原因崩溃了,从而导致 FastCGI 进程崩溃。 而 winFastCGI 管理器又未将损坏的 FastCGI 进程隔离起来 你的 windows 的版本是多少?
谢谢大神, 服务器版本是windowsserver2012; 页面只显示iis的报错,没有显示php的错误信息,[/quote] 另外服务器是IIS8,报500错后不会执行任何方法,在方法里面写的显示错误的语句不会被执行,看不多错误信息; 我执行exec方法的语句是这么写的:
exec($ffPath.' -i '.$fileName.' '.$targetName,$output,$status);
$fileName和$targetName是源文件和转换之后的文件的绝对路径。
leroy358 2016-11-08
  • 打赏
  • 举报
回复
引用 26 楼 fdipzone 的回复:
看看apache 日誌有什麼。
服务器用的是IIS ,IIS日志中相关的错误那一行,sc-win32-status值是233
leroy358 2016-11-08
  • 打赏
  • 举报
回复
引用 25 楼 xuzuning 的回复:
不是 php 错误,显示什么? 你要把方向搞清楚! 你的问题在于 ffmpeg 因某种原因崩溃了,从而导致 FastCGI 进程崩溃。 而 winFastCGI 管理器又未将损坏的 FastCGI 进程隔离起来 你的 windows 的版本是多少?
谢谢大神, 服务器版本是windowsserver2012; 页面只显示iis的报错,没有显示php的错误信息,
xuzuning 2016-11-05
  • 打赏
  • 举报
回复
不是 php 错误,显示什么? 你要把方向搞清楚! 你的问题在于 ffmpeg 因某种原因崩溃了,从而导致 FastCGI 进程崩溃。 而 winFastCGI 管理器又未将损坏的 FastCGI 进程隔离起来 你的 windows 的版本是多少?
leroy358 2016-11-05
  • 打赏
  • 举报
回复
引用 23 楼 fdipzone 的回复:
没有显示错误?
嗯,500错误的页面没有显示出php的错误信息
傲雪星枫 2016-11-05
  • 打赏
  • 举报
回复
看看apache 日誌有什麼。
傲雪星枫 2016-11-04
  • 打赏
  • 举报
回复
没有显示错误?
leroy358 2016-11-04
  • 打赏
  • 举报
回复
引用 21 楼 fdipzone 的回复:
500错误一般都是代码导致,首先打开错误输出 <?php error_reporting(E_ALL); ini_set('display_errors','on'); ?> 加在页面最顶,看看有什么错误。
看不出错误信息
leroy358 2016-11-02
  • 打赏
  • 举报
回复
引用 13 楼 jordan102 的回复:
引用 7 楼 leroy358 的回复:
要怎么打开错误提示功能呢?配置php.ini中display_errors=On;error_reporting = E_ALL | E_STRICT?这样是不是就可以了?
是的,改完记得重启iis 才能生效
在哪里能看到这些错误提示信息?
一起混吧 2016-11-02
  • 打赏
  • 举报
回复
引用 7 楼 leroy358 的回复:
要怎么打开错误提示功能呢?配置php.ini中display_errors=On;error_reporting = E_ALL | E_STRICT?这样是不是就可以了?
是的,改完记得重启iis 才能生效
leroy358 2016-11-02
  • 打赏
  • 举报
回复
引用 10 楼 leroy358 的回复:
[quote=引用 9 楼 xuzuning 的回复:] 不知道 sleep 函数吗?
可以多个实例同时运行的;确实不清楚sleep函数应该怎么写,求指教[/quote] sleep(2)之后,同样的500错误
leroy358 2016-11-02
  • 打赏
  • 举报
回复
现在的问题是,当exec函数运行ffmpeg将amr格式文件成功转换成MP3文件之后(exec函数返回status=1,且服务器端能查看到转换成功的文件),并将文件地址返回给前端,前端再次向服务器发送请求(比如请求列表数据),就会报500错误
leroy358 2016-11-02
  • 打赏
  • 举报
回复
引用 9 楼 xuzuning 的回复:
不知道 sleep 函数吗?
可以多个实例同时运行的;确实不清楚sleep函数应该怎么写,求指教
xuzuning 2016-11-02
  • 打赏
  • 举报
回复
不知道 sleep 函数吗?
leroy358 2016-11-02
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
ffmpeg 允许多个实例同时运行吗?你应该查一下相关资料 从 php 层面讲,你可在 exec 成功结束后挂起程序 1~2 秒,再执行下载代码 以确保目标文件的控制权落在 php 手中
这个应该怎么写啊?
leroy358 2016-11-02
  • 打赏
  • 举报
回复
引用 5 楼 jordan102 的回复:
打开php的错误提示功能就知道哪报错了
要怎么打开错误提示功能呢?配置php.ini中display_errors=On;error_reporting = E_ALL | E_STRICT?这样是不是就可以了?
xuzuning 2016-11-02
  • 打赏
  • 举报
回复
ffmpeg 允许多个实例同时运行吗?你应该查一下相关资料 从 php 层面讲,你可在 exec 成功结束后挂起程序 1~2 秒,再执行下载代码 以确保目标文件的控制权落在 php 手中
一起混吧 2016-11-02
  • 打赏
  • 举报
回复
打开php的错误提示功能就知道哪报错了
傲雪星枫 2016-11-02
  • 打赏
  • 举报
回复
500错误一般都是代码导致,首先打开错误输出

<?php
error_reporting(E_ALL);
ini_set('display_errors','on');
?>

加在页面最顶,看看有什么错误。
加载更多回复(10)

21,893

社区成员

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

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