在 Ubuntu 20.4 上安装 PHP 的 OCI8 扩展

问题描述 投票:0回答:2

我的系统中没有安装oracle数据库。但我想连接到远程系统。我只需要安装 oci8 扩展库还是需要同时安装 instantclient 和 oci8 扩展?

oci8
2个回答
0
投票

OCI8 需要“Oracle 客户端库”。由于您没有这些,您可以安装免费的 Oracle Instant Client。安装适合您操作系统的基本包。使用与 PHP 的 32 位或 64 位相匹配的正确 32 位或 64 位包。如果您从源代码编译 OCI8,您还需要 SDK 包,其中包含必要的头文件。

详细信息取决于您的操作系统和 PHP 版本。


0
投票

我最终得到了与 Canonical-Ubuntu-22.04-Minimal-2023.10.15-0 的配合。

这些是来自新的 Ubuntu-22.04-Minimal 实例的完整说明。

首先我安装了 Apache 和 PHP:

sudo su
apt update
apt -y install apache2
systemctl restart apache2
iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
netfilter-persistent save

apt -y install php libapache2-mod-php
php -v
systemctl restart apache2

echo '<?php
  phpinfo();
?>' > /var/www/html/info.php

接下来是 Oracle Instant Client

sudo su
mkdir /opt/oracle
cd /opt/oracle 

wget https://download.oracle.com/otn_software/linux/instantclient/2112000/instantclient-basiclite-linux.x64-21.12.0.0.0dbru.zip
wget https://download.oracle.com/otn_software/linux/instantclient/2112000/instantclient-sdk-linux.x64-21.12.0.0.0dbru.zip
  
apt-get install unzip  
unzip instantclient-basiclite-linux.x64-21.12.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-21.12.0.0.0dbru.zip


sh -c "echo /opt/oracle/instantclient_21_12 > \
      /etc/ld.so.conf.d/oracle-instantclient.conf"
  sudo ldconfig


grep oci /etc/php/8.1/cli/php.ini

apt-get install php-pear
apt-get install -y php-dev
pecl install oci8-3.2.1

'instantclient,/opt/oracle/instantclient_21_12'

如果出现错误“使用 PHP OCI8...”请检查此处:OCI8

cd /usr/lib/php/20210902/

echo "extension = oci8.so" >> /etc/php/8.1/cli/php.ini
echo "extension = oci8.so" >> /etc/php/8.1/apache2/php.ini

reboot
sudo su
apt-get install nano
nano /var/www/html/test.php
<?php

if (function_exists('oci_connect')) {
    echo 'OCI8 is working!';
}
else {
    echo 'Not working!';
}

?>
© www.soinside.com 2019 - 2024. All rights reserved.