是鲲鹏的CPU,所以安arm的。
Oracle客户端下载地址:
https://www.oracle.com/database/technologies/instant-client/linux-arm-aarch64-downloads.html

第一步:通过zip安装client

# 创建基础目录
mkdir -p /usr/local/oracle

# 解压Basic包(用你实际的文件名)
unzip /root/instantclient-basic-linux.arm64-19.30.0.0.0dbru.zip -d /usr/local/oracle/

# 解压SDK包(用你实际的文件名)
unzip /root/instantclient-sdk-linux.arm64-19.30.0.0.0dbru.zip -d /usr/local/oracle/

# 查看解压后的目录名(关键:19.30版本解压后是 instantclient_19_30)
ls /usr/local/oracle/
# 应该能看到 instantclient_19_30 目录

第二步:配置软连接

# 进入解压后的目录
cd /usr/local/oracle/instantclient_19_30

# 创建统一软链接(避免版本号变动)
ln -s /usr/local/oracle/instantclient_19_30 /usr/local/oracle/instantclient

# 关键:验证oci.h是否存在(这一步必须成功)
ls /usr/local/oracle/instantclient/sdk/include/oci.h

第三步:配置环境变量

vi /etc/profile

# Oracle Instant Client 环境变量
export ORACLE_HOME=/usr/local/oracle/instantclient
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH

source /etc/profile

echo "/usr/local/oracle/instantclient" > /etc/ld.so.conf.d/oracle.conf

# 刷新系统库缓存
ldconfig

第四步:编译 oci8 扩展

# 进入oci8扩展目录(替换为你的PHP源码路径)
cd /usr/local/src/php-8.3.30/ext/oci8

# 清理旧编译文件
make clean
/usr/local/php8.3/bin/phpize --clean

# 重新生成配置
/usr/local/php8.3/bin/phpize

# 配置编译参数(指定19.30版本+ARM64架构)
./configure \
--with-oci8=instantclient,/usr/local/oracle/instantclient \
--with-libdir=lib64 \
--with-php-config=/usr/local/php8.3/bin/php-config

# 编译安装(-j4加速)
make -j4 && make install

第五步:编译 pdo_oci 扩展

cd /usr/local/src/php-8.3.30/ext/pdo_oci

# 清理+重新配置
make clean
/usr/local/php8.3/bin/phpize --clean
/usr/local/php8.3/bin/phpize

# 配置(版本号写19.30)
./configure \
--with-pdo-oci=instantclient,/usr/local/oracle/instantclient,19.30 \
--with-libdir=lib64 \
--with-php-config=/usr/local/php8.3/bin/php-config

# 编译安装
make -j4 && make install

验证:

# 检查扩展文件是否生成
ls /usr/local/php8.3/lib/php/extensions/no-debug-non-zts-20230831/ | grep oci
# 应输出 oci8.so 和 pdo_oci.so

# 启用扩展并验证
echo "extension=oci8.so" >> /usr/local/php8.3/etc/php.ini
echo "extension=pdo_oci.so" >> /usr/local/php8.3/etc/php.ini

# 查看扩展是否加载
/usr/local/php8.3/bin/php -m | grep oci