安装PHP和Oracle 10g即时客户端
2007-06-02 16:02:05 来源:WEB开发网要检查是否配置了扩展,请在 web 服务器可以读取的地方创建一个简单的 PHP 脚本。
<?php phpinfo(); ?>
使用“http://”URL 将此脚本加载到浏览器中。浏览器页面应包含一个显示“OCI8 Support enabled”的“oci8”部分。
在 Linux 上启用 PHP OCI8 扩展要在 Linux 上添加 Oracle 连接,需要重新编译 PHP。
开放源代码开发人员中心包含有用背景资料的链接,如在 Linux 上安装 Oracle、PHP 和 Apache,它介绍了如何安装传统、完整的 Oracle 10g 版本(Instant Client 不需要此版本)。
- 下载并安装 Apache。例如,在您的主目录中安装它:
cd apache_1.3.31 ./configure --enable-module=so --prefix=$HOME/apache --with-port=8888 make make install
编辑 $HOME/apache/conf/httpd.conf 并添加:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
-
下载并解压缩 PHP。
-
从 OTN 上的 Instant Client 页面下载 Basic 和 SDK Instant Client 程序包。这两个 RPM 的总大小大约为 30MB。
-
以 root 用户的身份安装 RPM。
rpm -Uvh oracle-instantclient-basic-10.1.0.3-1.i386.rpm rpm -Uvh oracle-instantclient-devel-10.1.0.3-1.i386.rpm
第一个 RPM 将 Oracle 库置于 /usr/lib/oracle/10.1.0.3/client/lib 中,第二个 RPM 在 /usr/include/oracle/10.1.0.3/client 中创建头 (header)。
- 备份此补丁,然后将它应用于 PHP 的 ext/oci8/config.m4。该补丁的行号是基于 PHP 4.3.9 的。如果已修复了 PHP 错误 31084(很有可能已在 PHP 4.3.11 和 5.0.4 中修复),则不需要此补丁。
如果使用的是 PHP 4.3.9 或 4.3.10,则可以将此补丁保存到一个文件中(如 php_oci8ic_buildpatch),然后使用以下命令安装它:
patch -u config.m4 php_oci8ic_buildpatch
此补丁创建一个新的 PHP 配置参数:--with-oci8-instant-client[=DIR].在 Linux 上,默认情况下,它使用从 RPM 中安装的最新版本的 Instant Client。可以指定 Oracle 库所在的目录来使用其他版本。无论在哪种情况下,都将自动使用正确的 SDK 头。
新参数与现有的 --with-oci8 参数互斥。
例如:在非 Linux 平台上,将 Instant Client 程序包解压缩到您所选择的目录中。--with-oci8-instant-client 参数将需要明确指定此目录;例如,--with-oci8-instant-client=/home/instantclient10_1。应将 Instant Client SDK 解压缩到与基本程序包相同的目录中,以便修改后的配置脚本可以找到头文件的子目录。
- 在顶层 PHP 目录中重新构建“configure”脚本。
cd php-4.3.9 rm -rf autom4te.cache config.cache ./buildconf --force
-
使用新选项运行 configure。此示例使用安装在主目录中的 Apache。
./configure \ --with-oci8-instant-client \ --prefix=$HOME/php --with-apxs=$HOME/apache/bin/apxs \ --enable-sigchild --with-config-file-path=$HOME/apache/conf
-
重建 PHP。
make make install
-
将 PHP 配置复制到 --with-config-file-path 指定的位置
cp php.ini-recommended $HOME/apache/conf/php.ini
- 将 LD_LIBRARY_PATH 设置为 /usr/lib/oracle/10.1.0.3/client/lib 并重新启动 Apache。
如果使用了 tnsnames.ora 文件定义 Oracle Net 服务名称,则将 TNS_ADMIN 设置为包含此文件的目录。
启动 Apache 之前应设置所有 Oracle 环境变量。以下脚本可以帮助完成此操作:
#!/bin/sh APACHEHOME=/home/apache LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.3/client/lib:${LD_LIBRARY_PATH} TNS_ADMIN=/home export LD_LIBRARY_PATH TNS_ADMIN echo Starting Apache $APACHEHOME/apachectl start
更多精彩
赞助商链接