首页 > 解决方案 > 安装 PHP OCI8 Linux Centos 8 时使用什么路径

问题描述

我现在遇到问题并且非常困惑。

我尝试在我的 linux centos 8 上安装 oracle 即时客户端。到目前为止,我实现的是 httpd、php72 和 mariadb 工作正常。我可以在服务器中运行我的 php 文件。

我正在按照本教程在我的 LAMPP 堆栈中启用 php oci8。

https://medium.com/@azharnian/cara-install-oci8-php-7-di-centos7-851abbb5d15

但停留在这一步

sudo pecl install oci8

命令提示符询问provide the path to the ORACLE_HOME directory。参考图片。

在此处输入图像描述

我下载并将我的oracle-instant-client zip 包放在我的/home/user/oracle

到目前为止,我在此步骤中尝试的是:

sudo sh -c "echo instantclient, /usr/lib64/php/modules"
sudo sh -c "echo instantclient_19_8, /usr/lib64/php/modules"
sudo sh -c "echo instantclient_19_8, /home/user/oracle/instantclient_19_8"
instantclient_19_8, /usr/lib64/php/modules/oci8.so
instantclient_19_8, /home/user/oracle/instantclient_19_8

错误:

checking build system type... Invalid configuration `/usr/lib64/php/modules/oci8.so': machine `/usr/lib64/php/modules/oci8.so' not recognized

这一步到底要我写什么?

感谢有人能告诉我正确的方法。非常感谢。

标签: phplinuxoracleoci8centos8

解决方案


下载 Instant Client sdk ZIP 文件并将其解压缩到同一目录/home/user/oracle/instantclient_19_8中,如下所示:

  /home/user/oracle/instantclient_19_8:
  -r-xr-xr-x@  1 cjones  staff       5780  3 Jul 14:44 BASIC_LICENSE
  -rw-r--r--@  1 cjones  staff       1632  3 Jul 14:44 BASIC_README
  -r-xr-xr-x@  1 cjones  staff       5780  3 Jul 14:44 SDK_LICENSE
  -rw-r--r--@  1 cjones  staff       1626  3 Jul 14:44 SDK_README
  -rwxr-xr-x@  1 cjones  staff      41696  3 Jul 14:44 adrci
  -rwxr-xr-x@  1 cjones  staff      59272  3 Jul 14:44 genezi
  lrwxrwxrwx   1 cjones  staff         17 29 Jul 08:39 libclntsh.so -> libclntsh.so.19.1
  lrwxrwxrwx   1 cjones  staff         17 29 Jul 08:39 libclntsh.so.10.1 -> libclntsh.so.19.1
  lrwxrwxrwx   1 cjones  staff         17 29 Jul 08:39 libclntsh.so.11.1 -> libclntsh.so.19.1
  lrwxrwxrwx   1 cjones  staff         17 29 Jul 08:39 libclntsh.so.12.1 -> libclntsh.so.19.1
  lrwxrwxrwx   1 cjones  staff         17 29 Jul 08:39 libclntsh.so.18.1 -> libclntsh.so.19.1
  -rwxr-xr-x@  1 cjones  staff   80804848  3 Jul 14:44 libclntsh.so.19.1
  -rwxr-xr-x@  1 cjones  staff    8019360  3 Jul 14:44 libclntshcore.so.19.1
  -r-xr-xr-x@  1 cjones  staff    3608240  3 Jul 14:44 libipc1.so
  -r-xr-xr-x@  1 cjones  staff     478096  3 Jul 14:44 libmql1.so
  -rwxr-xr-x@  1 cjones  staff    6586360  3 Jul 14:44 libnnz19.so
  lrwxrwxrwx   1 cjones  staff         15 29 Jul 08:39 libocci.so -> libocci.so.19.1
  lrwxrwxrwx   1 cjones  staff         15 29 Jul 08:39 libocci.so.10.1 -> libocci.so.19.1
  lrwxrwxrwx   1 cjones  staff         15 29 Jul 08:39 libocci.so.11.1 -> libocci.so.19.1
  lrwxrwxrwx   1 cjones  staff         15 29 Jul 08:39 libocci.so.12.1 -> libocci.so.19.1
  lrwxrwxrwx   1 cjones  staff         15 29 Jul 08:39 libocci.so.18.1 -> libocci.so.19.1
  -rwxr-xr-x@  1 cjones  staff    2338456  3 Jul 14:44 libocci.so.19.1
  -rwxr-xr-x@  1 cjones  staff  130527608  3 Jul 14:44 libociei.so
  -r-xr-xr-x@  1 cjones  staff     153600  3 Jul 14:44 libocijdbc19.so
  -rwxr-xr-x@  1 cjones  staff     115760  3 Jul 14:44 liboramysql19.so
  drwxr-xr-x@  3 cjones  staff         96  3 Jul 14:44 network
  -rw-r--r--@  1 cjones  staff    4396157  3 Jul 14:44 ojdbc8.jar
  drwxr-xr-x@  7 cjones  staff        224  3 Jul 14:44 sdk
  -rw-r--r--@  1 cjones  staff    1681792  3 Jul 14:44 ucp.jar
  -rwxr-xr-x@  1 cjones  staff     236256  3 Jul 14:44 uidrvci
  -rw-r--r--@  1 cjones  staff      74263  3 Jul 14:44 xstreams.jar

然后运行

sudo sh -c "echo /home/user/oracle/instantclient_19_8 > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig

(如安装说明所示)。

然后在pecl install oci8提示符处输入instantclient,/home/user/oracle/instantclient_19_8。注意我不在逗号后使用空格。我不记得如果你使用空格会发生什么。在我典型的黑客机器上,我倾向于以 root 身份完成所有操作:

sudo su -
pecl install oci8

但你可能可以做一些sudo sh -c选择并运行echo "instantclient,/home/user/oracle/instantclient_19_8" | pecl install oci8

PS https://www.oracle.com/database/technologies/underground-php-oracle-manual.html中可能有一些有用的材料


推荐阅读