PHP session_start()失败,除非设置了error_log文件?

时间:2013-11-22 22:43:04

标签: php session error-log

进入一种奇怪的情况,我希望有人可以更充分地向我解释。

我们有一个相当简单的PHP站点,它使用session_start()在页面之间记录一些数据。我们在一台服务器(OS X)上运行良好,然后切换到另一台服务器(Windows Server2008)。它开始在这台新服务器上导致“500内部服务器错误”消息。

两台服务器之间的PHPinfo结果几乎相同。它们都有log_error = Yes,而“error_log”= No Value。

但是,在尝试更准确地识别正在发生的事情时(因为IIS仅报告了HTTP错误消息,而没有关于PHP错误),我将“error_log”路径设置为某个文件。这似乎让人高兴,因为PHP开始按预期工作。它不会再从session_start()调用中抛出错误了!此时日志文件中没有错误。

所以似乎只是能够拥有一个可用的日志文件使它很高兴它停止导致错误。有人可以帮助我了解背景中发生了什么吗?

感谢。 ç

1 个答案:

答案 0 :(得分:0)

问题不在于错误日志文件导致“500内部服务器错误”。可能有任何其他原因导致500服务器错误。如果错误是在error_log文件中,则PHP / Apache将崩溃,并且永远不会显示错误消息。 500错误表示处理文件中的错误。

我也多次收到相同的错误消息。真正的问题是文件的编码。将文件从一种类型的操作系统传输到另一种类型的操作系统时会导致错误。您还将文件从OS X传输到Windows,并且两者都具有不同的文件写入模式。

在我的情况下解决的最好的方法是,我创建一个新文件,并在新文件中过去旧代码,然后尝试运行它,它会通过。