2013-11-22 3 views
0

Попал в странную ситуацию, когда я надеялся, что кто-то сможет объяснить мне более полно.Ошибка PHP session_start(), если файл 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()! На данный момент ошибок в файле журнала не было.

Похоже, что просто наличие доступного файла журнала сделало его счастливым, и оно прекратило создавать ошибки. Может кто-нибудь помочь мне понять, что происходит на заднем плане?

Спасибо. C

+0

Что заставляет вас думать, что это имеет какое-либо отношение к использованию сеансов вообще? –

+0

Звучит похоже на проблему здесь http://stackoverflow.com/questions/1696867/debugging-500-internal-server-error-on-php-running-on-iis7-cluster – Machavity

+0

@Mike: потому что, если мы прокомментируем это одна строчка, все отлично работает; раскомментируя, что одна строка возвращает нас к ошибкам «500 ...». – Cronk

ответ

0

Проблема не с файлом журнала ошибок, вызывающим «500 внутренних ошибок сервера». Может возникнуть другая причина, вызвавшая ошибку 500 серверов. Если ошибка связана с файлом error_log, PHP/Apache будет разбит, и сообщение об ошибке никогда не будет показано. 500 означает ошибку в файле обработки.

У меня также есть такое же сообщение об ошибке много раз. Реальная проблема - это кодирование файла. При переносе файла с одного типа ОС на другой тип ОС возникали ошибки. Вы также переносите файлы с OS X на Windows и оба имеют разные шаблоны записи файлов.

Лучший способ, который разрешает в моем случае, я создаю новый файл и прохожу мимо старого кода в новом файле, а затем попытаюсь запустить его, он пройдет.

+0

Это распространенная причина проблем, да, но я не думаю, что это применимо в этом случае. У нас не было проблем с тем, чтобы запускать все, без изменения файлов, если мы просто включили файл журнала ошибок. – Cronk

Смежные вопросы