2

我需要在 Mountain Lion 上为 PHP 使用 OCI8 模块,该模块将使用 oracle 即时客户端,目前仅支持 32 位。

我已经安装了 32 位版本的 oracle 即时客户端并使用 sqlplus 对其进行了测试,一切似乎都很好。

但是现在我需要让 PHP 扩展 OCI8 工作,这导致我用自制软件为 apache 构建了一个 32 位 PHP 模块。这似乎再次起作用,但据我了解,这现在需要 32 位的 Apache 构建,内置版本似乎只有 64 位。我不知道如何将 Apache 构建为 32 位,我什至不确定这是必需的,所以有点不知所措。非常感谢阿拉斯泰尔的任何帮助

编辑:

现在我已经放弃了原生安装,转而使用 Vagrant 和 Ubuntu 进行虚拟化开发:https ://github.com/afhole/vagrant-lamp

4

3 回答 3

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/

它适用于 10.8.2 下的 Macbook Air

于 2013-03-13T14:28:09.367 回答
0

我正在尝试做同样的事情,并且该线程中的答案似乎有效:

强制 Apache HTTPD 以 32 位运行

例如你可以跑

(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

于 2012-11-03T22:32:54.703 回答
0

经过大量研究,我找到了在 OS X 上使用 PHP 和 OCI8 配置 Apache 的可持续解决方案。您可以在任何地方安装 Oracle Instant Client 库,然后您需要做的就是编辑 Apache 的launchd配置.plist文件以指定所需DYLD_LIBRARY_PATHORACLE_HOME、 和LD_LIBRARY_PATH环境变量以便 PHP 可以实际看到它们(~/.bash_profile当 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

于 2013-12-19T00:21:21.287 回答