MAMP:PHP -m显示启用了oci8,但没有显示phpinfo

时间:2016-05-07 15:34:34

标签: php oracle mamp oci

我的目标是通过OCI8连接到Oracle数据库,可通过以下方式获得:

pecl install oci8-2.0.11

为实现这一目标,我一直在关注网络上的各种教程以使其发挥作用。

我遵循了以下教程:

  1. http://www.baldwhiteguy.co.nz/technical/index_files/mac-osx-oracle-instantclient.html
  2. http://www.enavigo.com/2012/01/04/enabling-oracle-oci8-php-extension-on-os-x-snow-leopard/
  3. http://tomytree22.blogspot.my/2014/09/oci-driver-installation-on-mac.html
  4. 这些教程足以运行SQL Plus。我也能够成功运行pecl install oci-8.20.11并获得此输出:

    You should add "extension=oci8.so" to php.ini
    

    在我上面列出的第3个教程中,我遵循了所有,除了 instantclient库之外我们需要处理一些硬编码路径:

    当我运行php -m时,我可以看到oci8在那里,但我在phpinfo中看不到它。我做错了什么?

    当我尝试连接到Oracle数据库时,我仍然坚持这个:

    Fatal error: Call to undefined function oci_connect()
    

    我希望有人可以帮助我。我使用El Capitan。

1 个答案:

答案 0 :(得分:2)

所以我修好了。以下是我如何找到解决方案。

我查看了我的php日志(确保你启用了PHP来记录所有错误!只需转到你的error_log路径来查找你的错误),我发现了这个:

  

[06-May-2016 09:48:12欧洲/柏林] PHP警告:PHP启动:无法加载动态库' /Applications/MAMP/bin/php/php5.6.10/lib/php/扩展/不调试非ZTS-20131226 / oci8.so' - dlopen(/Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226/oci8.so,9):未加载库:/ ade / b / 3071542110 / ORACLE / RDBMS / LIB / libclntsh.dylib.11.1

  

[09-May-2016 04:53:51欧洲/柏林] PHP警告:PHP启动:无法加载动态库' /Applications/MAMP/bin/php/php5.6.10/lib/php/扩展/不调试非ZTS-20131226 / oci8.so' - dlopen(/Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226/oci8.so,9):未加载库:/ ade / dosulliv_ldapmac / oracle / LDAP / LIB / libnnz11.dylib

所以没有加载oci8.so,因为有两个未加载的库。

以下是我修复它的方法:

这意味着,我跳过的那个 instantclient库有一些我们需要处理的硬编码路径:是我需要的。所以我运行这些命令(从教程中粘贴的副本):

sudo mkdir -p /ade/b/3071542110/oracle/rdbms/lib/
sudo ln -sf /Applications/MAMP/bin/php/php5.5.10/lib/php/instantclient_11_2/libclntsh.dylib.11.1 /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
sudo mkdir -p /ade/dosulliv_ldapmac/oracle/ldap/lib/
sudo ln -sf /Applications/MAMP/bin/php/php5.5.10/lib/php/instantclient_11_2/libnnz11.dylib /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib

然后我重新启动了我的MAMP。现在我得到了我想要的东西,这就是OCI8。现在我的PHPInfo上提供了信息。

My PHPInfo OCI8

希望这将有助于其他那些正在设置OCI以便在MAMP上连接Oracle的人。