Как диагностировать внутреннюю ошибку сервера (HTTP 500) со страницы PHP в IIS 7.5

Я пытаюсь получить пробную копию системы управления членством aMember, запущенной на моей локальной машине dev, которая является 64-разрядной версией Windows 7 с IIS 7.5. У меня MySQL 5.5.10 и PHP 5.3.6, последний из которых я установил с помощью пакета установки Windows. Кажется хорошо.

Пакет aMember имеет сценарий tester.php, который я запускал, и он дал результат «ОК», несмотря на то, что его вывод заполнен сообщениями об ошибках, связанными с функцией eregi (), устарел . Затем я запустил скрипт setup.php, который, казалось, работал правильно. Он взял меня через один или два экрана сбора, например, информацию для входа в MySQL, а затем сказал, что он был завершен, и предложил мне ссылки на некоторые административные страницы aMember. Ни одна из этих ссылок не работает, и нажатие любой из них приводит к ошибке внутреннего сервера (HTTP 500): неожиданное условие возникло, когда сервер пытался выполнить запрос.

Что я могу сделать для дальнейшей диагностики этой ошибки, не доставляя много диагностических записей на самих страницах php? В моем распоряжении находятся Aptana Studio и Visual Studio, хотя я сомневаюсь, что последнее здесь используется. Я зарегистрировал проблему с поддержкой aMember, которая быстро попросила мои журналы сервера, а затем исчезла.

Моим первым портом вызова было бы включить Failed Request Tracing:

Устранение неполадок с запросами с использованием трассировки в IIS 7
Устранение неполадок с отслеживанием неудачных запросов

Я также подозрительно отношусь к вашей установке PHP. Как правило, никогда не используйте установщиков. Они никогда, кажется, не поступают правильно.

Я бы срывал вашу установку PHP и начинал с нуля, используя следующие шаги:

Использование FastCGI для размещения приложений PHP на IIS 7

FastCGI + Non-threadafe сборка PHP (5.2 или 5.3) – это окончательный способ установки и настройки PHP на IIS7.

В программном обеспечении aMember используется кодированный PHP, который требует, чтобы IonCube расшифровывался. Я установил это, но, похоже, установка завершилась неудачно, так как последующая установка устранила проблему. Я был изначально тупик, потому что после установки IonCube я запустил тестовый скрипт aMember, который сказал мне, что IonCube установлен. Поддержка aMember ответила, что:

К сожалению, сценарий тестера не обрабатывает ситуацию с динамической загрузкой правильно. PHP из версии 5 не позволяет динамически загружать библиотеки, если эти библиотеки не находятся в папке php lib. Таким образом, вы должны установить IonCube или Zend в сервер php.ini '

Я не знаю, почему это невозможно создать предупреждение в тестовом скрипте.