我在装有 PHP 8.2 的 Ubuntu 23.10 服务器上运行 Apache 2.4,并且无法安装 OCI8 扩展来连接到 Oracle。
我之前有一个从 makefile 构建的 PHP 5.6,但最近我手动将其删除了,因为没有需要卸载的包。
我安装了 Oracle instant client 12.2 和php-pear
。我检查了一下,我可以通过 sqlplus 连接到数据库。当我运行:pecl install oci8
我收到此错误:
检查 Oracle Database OCI8 支持... 是,共享 检查 PHP 版本... 配置:错误:您至少需要 PHP 8.1.0 才能使用此版本的 OCI8。对于 PHP 5.6.31,请使用 OCI8 2.0
看来 pecl 仍然认为我正在运行 PHP 5.6。我创建了从 PHP 8.2 到旧 PHP 的符号链接,否则 pecl 将无法启动,因为它仍在 /usr/bin/php 中寻找 php 二进制文件:
ln -s /usr/bin/php8.2 /usr/bin/php
phpinfo
并且php -v
都显示正在运行的版本为 PHP 8.2。
我尝试重新安装 PHP 8.2 和php-pear
,但它说我已经拥有最新版本。
我该怎么做才能解决此错误并安装 OCI8?
编辑:跑步which php
给予/usr/local/bin/php
并which pecl
产生/usr/local/bin/pecl
。
我pecl channel-update pecl.php.net
在安装 OCI8 之前运行了并收到了消息Channel "pecl.php.net" is up to date
。
答案1
在更改了一些 Pear 设置后,我成功安装了 OCI8:
pear config-set php_bin /usr/bin/php8.2
pear config-set php_ini /etc/php/8.2/apache2/php.ini
pear config-set php_suffix 8.2