【发布时间】:2026-01-25 06:20:04
【问题描述】:
我正在将网站从开发环境(Angular 4 - WAMP Server - PHP 5.6.35)迁移到生产环境。在开发中,Angular 4 应用程序能够成功连接到 PHP 脚本并运行 Oracle 存储过程,因此代码没有问题。
在生产中,我必须使用 Web 平台安装程序安装 PHP 才能成功运行 PHP 站点,其中 phpinfo() 显示“PHP 版本 7.2.7”。我运行应用程序,当它尝试运行 PHP 脚本时,运行脚本时出现 500 Internal Server 错误。 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 问题
- OCI8 PHP 库未启用
我想我已经排除了 IIS 配置,因为前端连接到 PHP 并运行脚本没有问题。
Oracle Instant Client 12.1 已安装,其他应用程序可以连接到 Oracle。 PATH 环境变量似乎设置正确。我不知道它是 32 位还是 64 位版本 - 或者这是否会有所不同。
我认为这是问题所在 - OCI8 库未正确启用。在开发服务器上,我能够修改 php.ini 文件以取消注释(并启用)dll,并且 phpinfo() 在列表中显示 OCI8 库:
extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
在生产中,我不得不手动添加“extension=php_oci8_12c.dll”行(它没有被取消注释),并且我检查了 PHP 的 EXT 文件夹并且 dll 存在那里。 Phpinfo() 仍然没有显示启用了 OCI8 库。
【问题讨论】:
标签: php oracle iis-7.5 windows-server-2008-r2