У меня действительно раздражающая проблема с PHP на Windows Server 2008 R2.IIS и Apache работают на одной и той же машине (Apache встроен в другой продукт, и он там не мой выбор).
IIS настроен на использование нескольких версий PHP и ни одной из PHPверсии были установлены с помощью установщика Windows (поэтому php.exe не существует в пути).
Apache использует одну конкретную версию PHP (5.2.5 Потоково-безопасная - опять-таки я не могу изменить этопоскольку стороннее приложение имеет расширения PHP, скомпилированные для этой версии).
Если я проверяю phpinfo () на моем сайте Apache, у него нет записи для MySQL, даже если php_mysql.dll включен в php.ini и существует в каталоге \ ext.Если я (временно) добавлю эту версию PHP (тот же каталог, тот же php.ini) в IIS и настрою тестовый сайт с помощью phpinfo (), то в нем правильно отобразится MySQL.Я знаю, что это не просто странная проблема с phpinfo, потому что у меня есть PHP-сайт на базе MySQL, работающий в Apache, и он не работает с Call to undefined function mysql_connect()
Было предложено скопировать libmysql.dll из каталога PHP вC: \ Windows \ System32, но это не имеет значения.Поскольку на сервере имеется несколько версий PHP, я предполагаю, что, возможно, загружается неправильная версия libmysql.dll, но PATH не содержит никаких каталогов, содержащих libmysql.dll.
IIS и Apacheпросматривая точно такую же установку PHP, php.ini и каталог ext, но только IIS может загрузить расширение MySQL.Apache входит в системную учетную запись по умолчанию, так как похоже, что System имеет доступ ко всем DLL.
В журналах Apache ничего не говорится о том, что какие-либо DLL не загружаются.Я регистрирую ошибки PHP в журнале событий, но об этих расширениях ничего не сообщается.
После поиска в Google этой проблемы я обнаружил другие внезапно возникающие проблемы в PHP на сервере Windows, но с обычными решениями - перестройка php.ini, перезапуск IIS, перезапуск сервера - не помогли.
Любые предложения о том, где искать дальше, очень ценятся!