我需要在Mountain Lion上使用OCI8模块用于PHP,它将使用oracle即时客户端,目前只支持32位。
我已经安装了32位版本的oracle即时客户端,并使用sqlplus进行了测试,一切看起来都很好。
现在我需要让PHP扩展OCI8正常工作,这让我为自制的apache构建了一个32位的PHP模块。这似乎是有效的,但据我所知,现在需要32位构建的Apache,内置版本似乎只有64位。我无法弄清楚如何将Apache构建为32位,我甚至不确定这是必需的,所以我有些不知所措。任何帮助非常感谢 阿拉斯泰尔
修改
目前我已经放弃了使用Vagrant和Ubuntu进行虚拟化开发的本机安装:https://github.com/afhole/vagrant-lamp
答案 0 :(得分:3)
去那里:http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
使用文件 11.2.0.3.0(64位)。
编辑:在下面提供的说明中,更改行:
sudo ln -s libclntsh.dylib.10.1 libclntsh.dylib
到
sudo ln -s libclntsh.dylib.11.1 libclntsh.dylib
安装说明在此处:http://www.enavigo.com/2012/01/04/enabling-oracle-oci8-php-extension-on-os-x-snow-leopard/
它适用于我的Macbook Air 10.8.2
答案 1 :(得分:0)
我正在尝试做同样的事情,这个帖子中的答案似乎有效:
Force Apache HTTPD to run in 32bit
E.g。你可以运行
(sudo) arch -i386 apachectl start
(sudo) arch -i386 apachectl stop
(sudo) arch -i386 apachectl restart
强制Apache以32位模式运行。
如果您始终希望以32位模式运行,则可以将arch命令添加到<string>
中<key>ProgramArguments</key>
数组中的新/System/Library/LaunchDaemons/org.apache.httpd.plist
。
答案 2 :(得分:0)
经过大量研究后,我发现了一个可持续的解决方案,可以在OS X上使用PHP和OCI8配置Apache。您可以在任何地方安装Oracle Instant Client库,然后您需要做的就是编辑Apache的launchd
配置{{ 1}}文件指定所需的.plist
,DYLD_LIBRARY_PATH
和ORACLE_HOME
环境变量,以便PHP实际可以看到它们(它不会从{{1}中看到这些环境变量当PHP作为Apache模块运行时。)
我也成功地让OCI8在OS X 10.7.4和OS X 10.8.4的64位版本的Apache和PHP下工作。我最初将32位和64位版本的Oracle Instant Client库组合到多架构胖二进制文件中。这允许通过不同的工具在我的系统上使用相同的Oracle Instant Client库,其中一些工具以32位模式运行,而另一些工具以64位运行。在OS X 10.8上,您应该成功使用最近发布的64位版本的Oracle Instant Client库,而无需在32位模式下运行Apache。我会尝试写下当我有更多时间时所做的事情,因为它也可能对其他人有所帮助。
您可以在此处查看有关配置Apache“特定于流程的”环境变量的完整答案:https://stackoverflow.com/a/20670810/1914455