在Alpinelinux下编译PHP OCI8扩展
问题描述:
我想编译PHP OCI8 extension并在Alpinelinux下运行它。但它似乎扩展有一些依赖于glibc
中定义的符号,但在musl libc中丢失。在Alpinelinux下编译PHP OCI8扩展
是否有任何存在编译的PHP OCI8扩展我可以使用?或者是否有任何解决方法使oci8扩展和oracle即时客户端与alpinelinux一起工作。
在此先感谢!
答
试过Alpine的人还没有找到办法。该问题不是特定于PHP的,因此请检查也使用Oracle即时客户端并尝试过Alpine的其他语言。例如,请参阅Alpine问题https://github.com/sgerrand/alpine-pkg-glibc/issues/31
答
请尝试使用这些命令。
它在高山上的Docker下工作。
但是,你必须安装油嘴的阿尔卑斯兼容层:https://github.com/sgerrand/alpine-pkg-glibc
# Install OCI8
COPY ./oracle-sdk /tmp/oracle-sdk
RUN apk add --no-cache libaio-dev && \
unzip /tmp/oracle-sdk/instantclient-basic-linux.x64-12.2.0.1.0.zip -d /usr/local/ && \
unzip /tmp/oracle-sdk/instantclient-sdk-linux.x64-12.2.0.1.0.zip -d /usr/local/ && \
unzip /tmp/oracle-sdk/instantclient-sqlplus-linux.x64-12.2.0.1.0.zip -d /usr/local/ && \
ln -s /usr/local/instantclient_12_2 /usr/local/instantclient && \
ln -s /usr/local/instantclient/libclntsh.so.* /usr/local/instantclient/libclntsh.so && \
ln -s /usr/local/libclntshcore.so.* /usr/local/instantclient/libclntshcore.so && \
ln -s /usr/local/instantclient/libocci.so.* /usr/local/instantclient/libocci.so && \
ln -s /usr/local/instantclient/sqlplus /usr/bin/sqlplus && \
docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/local/instantclient && \
docker-php-ext-install oci8 && \
rm -rf /tmp/oracle-sdk
是的,我希望它与甲骨文和其非标准的glibc电话的依赖有关。显然现在没有办法让它工作。感谢您的评论无论如何:) – Sergey
让我知道如果有新的事情会发生问题 – SLY