Я перевожу веб-сайт из среды разработки (Angular 4 - WAMP Server - PHP 5.6.35) в производственную среду.В процессе разработки приложение Angular 4 успешно смогло подключиться к PHP-скрипту и запустить хранимую процедуру Oracle, поэтому никаких проблем с кодом не возникает.
В процессе производства мне пришлось устанавливать PHP с помощью Интернета.Установщик платформы для успешного запуска сайта PHP с phpinfo (), показывающим «Версия PHP 7.2.7».Я запускаю приложение, и когда оно пытается запустить скрипт PHP, я получаю 500 внутренних ошибок сервера при запуске скрипта.Журналы ошибок PHP показывают:
<b>Fatal error</b>: Call to undefined function ocilogon() in <b>C:\inetpub\wwwroot\app\assets\scripts\php\pullData.php</b> on line <b>154</b><br />
Исследования показали, что проблема может быть:
- Возможная проблема конфигурации IIS
- Проблема Oracle Instant Client
- Библиотека PHP OCI8 не включена
Мне кажется, я исключил конфигурацию IIS, так как интерфейс подключается к PHP и запускает сценарии без проблем.
Oracle Instant Client12.1 и другие приложения могут подключаться к Oracle.Переменная среды PATH отображается правильно установленной.Я не знаю, является ли это 32-битной или 64-битной версией - или это имеет значение.
Я думаю, что это проблема - библиотека OCI8 не включена правильно.На сервере dev я смог изменить файл php.ini, чтобы раскомментировать (и включить) библиотеку dll, и phpinfo () показал библиотеку OCI8 в списке:
extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
На производстве яМне пришлось вручную добавить строку 'extension = php_oci8_12c.dll' (она не была закомментирована), и я проверил папку EXT PHP и там есть dll.Phpinfo () по-прежнему не показывает, включена ли библиотека OCI8.