Внутренняя ошибка сервера сохраняется после исправления ошибки, но успех для новых идентичных файлов?

После переноса исходного PHP и базы данных веб-сайта на новый сервер было несколько ошибок подключения к базе данных, выдающих 500.

Таких починили быстро. Однако файлы, которые ранее отображали Внутренние ошибки сервера, все еще делают это.

Ниже приведено пошаговое описание того, что происходит в настоящее время.

До:

  1. загрузите веб-сайт.com/something.php Получите ошибку сервера 500, потому что something.php включает другой файл, в котором были ошибки для запуска 500.

В настоящее время:

  1. исправлен другой файл, в котором были ошибки, вызывающие 500.
  2. загрузить веб-сайт.com/something.php (получить ошибку сервера 500)
  3. дублировать файл something.php в something2.php на сервере
  4. загрузите веб-сайт.com/something2.php (без ошибок, все работает)
  5. переименуйте something.php в something3.php
  6. загрузить веб-сайт.com/something3.php (ошибка 500)
  7. переименуйте something2.php в something.php
  8. загрузить веб-сайт.com/something.php (без ошибок)
  9. загрузить веб-сайт.com/something3.php (ошибка 500)

ОБНОВЛЕНИЕ

Механизм кеша не установлен (о котором я знаю), но я должен был упомянуть следующие моменты:

  1. очистить something3.php и заменить на: ‹?php echo "Hello world";
  2. загрузить веб-сайт.com/something3.php (ошибка 500)

person Tom Pace    schedule 18.02.2015    source источник
comment
Балансировка нагрузки происходит?   -  person Dan Smith    schedule 18.02.2015
comment
Вы не можете включить display_errors, предполагая, что это находится в производстве, но вы должны настроить error_reporting = E_ALL и log_errors = On в php.ini. Следите за своим журналом ошибок, так как там будут подробно описаны эти 500.   -  person Michael Berkowski    schedule 18.02.2015
comment
Если something.php и something3.php идентичны, один вызывает HTTP 500, а другой нет... ищите неправильно настроенный RewriteRule в одном из httpd-*.conf файлов или .htaccess, который запускается только с этим конкретным URL-адресом, например \d\.php или [0-9]\.php в перезаписи. правило может быть   -  person CD001    schedule 18.02.2015
comment
@ Массово ничего не происходит с балансировкой нагрузки, о чем я знаю.   -  person Tom Pace    schedule 18.02.2015
comment
@MichaelBerkowski Спасибо за это предложение, я подтвердил error_reporting = E_ALL и log_errors = On в php.ini и обновил проблемные файлы из URL-адресов, но не сообщил об ошибке. И это кажется более вероятным, поскольку сами скрипты на самом деле не имеют ошибок (что подтверждается something2.php), но... я приветствую любые другие предложения. :)   -  person Tom Pace    schedule 18.02.2015


Ответы (1)


Права доступа к файлам не подходили для настройки (общий хост).

В файле something.php, переименованном в something3.php, было 0664, а не 644.

Это появляется в поиске Google по запросу «группа с возможностью записи 500» и отмечается на многих общих хостах, связанных с suPHP.

Я управляю своим собственным сервером с помощью своего собственного хоста и обычно использую групповое разрешение на запись для файлов и каталогов, так что это была нелогичная проблема. Я заметил разницу в something3.php (0664) и something2.php (644) перед публикацией этого вопроса и ответа, но я понятия не имел, что разрешение на запись для группы вызовет 500 ошибок. Кроме того, они не подходят для меня на моем собственном хостинге.

Надеюсь, это поможет кому-то еще. Я постараюсь обновить вопрос, чтобы он был более описательным для дальнейшего использования.

Спасибо всем за помощь.

person Tom Pace    schedule 18.02.2015