【问题标题】:PHP chdir() and redirect() causes 500 internal server error on IISPHP chdir() 和 redirect() 在 IIS 上导致 500 内部服务器错误
【发布时间】:2016-08-20 08:22:14
【问题描述】:

我为用户创建了一个从图像创建视频的功能(使用 mencoder)。不幸的是,我无法直接在命令中设置图像列表的路径(我搜索了解决方案,但在 Windows 中看起来不可能),所以我不得不在 php 脚本中更改工作目录。命令执行后,我将目录改回上一个,然后重定向到其他页面。看起来这种命令组合会导致 IIS 上出现 500 Internal server error(它在 Apache 上正常工作)

chdir($path_images);

exec($mencoder." mf://*.png -mf w=1920:h=1080:fps=25:type=png -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=4000 -o output.avi");

chdir($path_to_default_working_directory);

redirect('home');

有人知道怎么解决吗?

更新: 这是详细错误消息的屏幕截图。

【问题讨论】:

  • 您的日志显示什么?
  • 我是 IIS 初学者,找不到任何日志文件(一些 ftp 日志除外,u_extend.log)
  • 使用错误报告然后php.net/manual/en/function.error-reporting.php 并设置为捕获和显示,看看是否有任何结果。
  • 一个 500 错误意味着一件事而且只有一件事:阅读错误日志!由于 500 错误可能由多种原因引起,因此没有唯一的答案。

标签: php redirect iis chdir


【解决方案1】:

首先,在 IIS 中启用用户友好的错误,这样您就可以获得准确的错误消息,而不是通用的 500。

  1. 登录 IIS 管理器。
  2. 展开网站并选择您的网站名称。
  3. 在功能视图中,在 ASP.Net 部分下选择 ASP.Net。
  4. 在调试下,点击“将错误发送到浏览器”选项并将其设置为 True。
  5. 保存设置。

还有,

  1. 在功能视图中,在 IIS 部分下选择错误消息。
  2. 选择 500 错误并右键单击它。
  3. 选择“编辑功能设置”。
  4. 选择“详细错误”并单击“确定”保存设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2023-03-22
    • 2013-08-11
    • 2012-03-29
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多