我有阿尔卑斯v3.7 Docker映像,为了简短起见,我正在为PHP安装OCI8扩展。
在执行php -v时,我得到以下错误:
PHP警告: PHP :无法加载动态库'oci8.so‘(尝试: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so (加载共享库librupv.so.2:不需要这样的文件或目录( /usr/local/instantclient/libclntsh.so.18.1)),/usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so.so (错误加载共享库/usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so.so:没有这样的文件或目录)在第0行中未知
我似乎找不到我必须安装什么样的软件包才能使它工作。我已经看到在我的libresolv.a文件夹中有一个这里 (我还搜索过这里并发现在Alpine中没有libresolv.so.*文件),所以我尝试了sym-将它链接回这里文件夹,但是这没有什么作用,我仍然收到相同的错误。
下面是我在Docker容器上创建的包:
RUN apk add --update \
autoconf gcc g++ make libaio-dev libnsl gettext-dev automake libtool libc6-compat;发布于 2020-05-12 21:21:23
问题是,您正在使用instaclient 18。
使用Oracle instaclient 11只需添加
FROM alpine3.11
# Setup LD lib path
ENV LD_LIBRARY_PATH=/usr/local/instantclient_11_2
# Install Apline dependencies
RUN apk add gcc libnsl libaio curl unzip openssl-dev autoconf musl-dev
RUN curl -k -o /tmp/basic.zip https://raw.githubusercontent.com/wilo087/Oracle-Instaclient_11_2/master/instantclient-basic-linux.x64-11.2.0.4.0.zip
# Unzip downloaded library
RUN unzip -d /usr/local/ /tmp/basic.zip
# Link Libs
RUN ln -sf ${LD_LIBRARY_PATH}/libclntsh.so.19.1 ${LD_LIBRARY_PATH}/libclntsh.so; \
ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so; \
# The libnsl version installed by Alpine is the number two, and instaclient use the number 1 so, create symbolic link for number one
RUN ln -sf /usr/lib/libnsl.so.2.0.0 /usr/lib/libnsl.so.1https://stackoverflow.com/questions/53283973
复制相似问题