Alpine系统下,docker容器的php如何添加oracle扩展

此环境,容器中php是通过apk快速安装的,其他扩展模块可以通过apk add php7-redis命令进行安装,Oracle模块需要编译安装

登入php容器执行以下命令:

# docker exec -it php7 /bin/bash

# apk php-devel  php7-dev gcc musl-dev libnsl libaio g++  automake autoconf libtool make

# wget  https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip

# wget https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip

# wget http://pecl.php.net/get/oci8-2.1.8.tgz

#下载对应版本的二进制包

# wget https://www.php.net/distributions/php-7.1.33.tar.bz2 

#解压包

#  unzip instantclient-basic-linux.x64-11.2.0.4.0.zip

扫描二维码关注公众号,回复: 16707326 查看本文章

#  unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip

#会在当前目录下生成一个instantclient_11_2目录

# cd instantclient_11_2/

# ln -s libnnz11.so libnnz.so &&  ln -s libclntsh.so.11.1 libclntsh.so && ln -s libocci.so.11.1 libocci.so &&  cd .. &&  mv instantclient_11_2 /usr/local/lib/instantclient

# ln -s /usr/local/lib/instantclient/lib* /usr/lib && ln -s /usr/lib/libnsl.so.2.0.0 /usr/lib/libnsl.so.1

#安装oci8模块

# tar -xvf oci8-2.1.8.tgz

# cd oci8-2.1.8 

# phpize &&  ./configure --with-php-config=/usr//bin/php-config --with-oci8=shared,instantclient,/usr/local/lib/instantclient && make  && make install

# echo 'extension=oci8.so' >> /etc/php7/php.ini

# php -m|grep oci8

 oci8

#安装pdo_oci模块

# tar -xvf php-7.1.33.tar.bz2 && cd php-7.1.33

# phpize && ./configure --with-php-config=/usr/bin/php-config --with-pdo-oci=instantclient,/usr/local/lib/instantclient && make && make install

由于pdo模块配置必须放在pdo_oci前面,pdo_oci模块才可以正常加载,所以把pdo模块文件删掉,加到php.ini配置文件上

# mv /etc/php7/conf.d/00_pdo.ini /tmp

# echo 'extension=pdo.so' >> /etc/php7/php.ini

# echo 'extension=pdo_oci.so' >> /etc/php7/php.ini

# php -m|grep OCI

 PDO_OCI

至此安装成功

猜你喜欢

转载自blog.csdn.net/weixin_42272246/article/details/128223079