Мы переносимся с Windows SBS 2011 на Windows Server 2012 R2.
У нас есть внутренний веб-сайт, который подключается к нашей базе данных Oracle с помощью PHP.
Я пытаюсь перенести это на новый сервер, и до сих пор у меня есть:
Я все еще получаю сообщения об ошибках, такие как команды oci_, которые не распознаются и т.д.
Я потерялся. Я искал в Интернете, и инструкции соответствуют тому, что я сделал из памяти.
Я не нашел ни одной вещи в Интернете, которую я еще не сделал.
В зависимости от версии InstantClient, которую вы установили, вам может потребоваться включить папку bin
в путь, например:
C:\instantclient\bin
Чтобы проверить, доступны ли DLL файлы в пути, введите where oci*.dll
в командной строке. Он должен вернуть список совпадающих файлов.
Кроме того, помните, что только потому, что ваша учетная запись может видеть файлы DLL, не означает, что IIS/PHP могут. Это выполняется под другой учетной записью, которая может не иметь разрешения на доступ к файлам. Проверьте свой журнал ошибок IIS и файл PHP php_errors.log
для получения каких-либо конкретных сообщений об ошибках.
редактировать
После довольно продолжительного общения проблема была решена:
msvcr71.dll
в папку InstantClient.Path
правильно указана на папки InstantClient и PHP.\bin
. Единственные ошибки PHP в том, что такие команды, как oci_connect
, не найдены.
PHP Startup: Unable to load dynamic library 'php_oci8_11g.dll' - The specified module could not be found.
, Это определенно скажет вам, что есть ошибка запуска. Вы подтвердили, что файлы oci*.dll
доступны по пути, и что пользователь IIS может получить к ним доступ?
попробуй это:
extension = php_oci8_12c.dll (вместо php_oci8.dll) - это то, что я использую, и вы, вероятно, загрузили тот же мгновенный клиент, что и я.
phpinfo()
выводит список oci8?