如何使用 ubuntu nginx php7-fpm 检测 php -oracle

如何使用 ubuntu nginx php7-fpm 检测 php -oracle

我正在运行 Ubuntu-nginx-php7-fpm 机器,但 phpinfo() 没有检测到 oracle 扩展。

我如何告诉 nginx 或 php oracle-php 扩展已安装?

该机器是另一台运行 oracle php7-fpm 的机器的克隆版。

当从 php 运行 phpinfo() 时,oracle 没有列出,甚至 oci-connect 也不起作用或在 error.log 中列出

答案1

我无法提供您案例中缺少的内容。以下是为 php-fpm 启用 oci 8 的所有步骤。

首先按照以下步骤安装 oci8.so:

安装 PECL、PHP 开发文件、Build Essential、Unzip 和 AIO 库

apt-get install php-pear php7.0-dev build-essential unzip libaio1

创建 oracle 目录

mkdir /opt/oracle

从此处下载即时客户端关联。下载 11.2 Basic 和 SDK。只有 11.2 版本适合我。

移动下载的文件

mv instantclient-* /opt/oracle

使用 unzip 命令 (unzip) 解压文件,重命名创建的目录

mv instantclient_11_2 instantclient

cd 进入即时客户端目录并创建以下软链接

ln -s libclntsh.so.11.2 libclntsh.so
ln -s libocci.so.11.2 libocci.so

cd to  /opt

设置目录的权限

chown -R root:www-data /opt/oracle

将即时客户端添加到 ld 配置文件中

echo /opt/oracle/instantclient > /etc/ld.so.conf.d/oracle-instantclient

更新动态链接器运行时绑定

ldconfig

使用 PECL 安装 OCI8

pecl install oci8

当您确定客户端位置时,请输入以下内容:

instantclient,/opt/oracle/instantclient

最后配置php.ini

此时您的 oci8.so 已可以使用。只需将其包含到您的 php.ini 文件中即可。

cd /etc/php/mods-available/
vi oci.ini

然后将这一行添加到文件“extension=oci8.so”

现在创建一个这样的符号链接:

cd /etc/php/7.0/fpm/config.d/
ln -s /etc/php/mods-available/oci.ini 20-oci.ini

添加 oracle 环境变量:

vi /etc/environment

添加以下行:

# Oracle Instant Client
export LD_LIBRARY_PATH="/opt/oracle/instantclient"
export TNS_ADMIN="/opt/oracle/instantclient"
export ORACLE_BASE="/opt/oracle/instantclient"
export ORACLE_HOME=$ORACLE_BASE

最后重新启动 fpm 服务:

sudo php7.0-fpm restart

您必须能够通过 phpinfo 检查 oci8 扩展。

相关内容