PHP OCI8 拡張機能をコンパイルしてAlpinelinuxで実行しようとしています。しかし、拡張子には、で定義されているがmusl libcglibc
にないシンボルにいくつかの依存関係があるようです。
私が使用できる既存のコンパイル済み PHP OCI8 拡張機能はありますか? または、oci8 拡張機能と oracle インスタント クライアントを alpinelinux で動作させるための回避策はありますか。
前もって感謝します!
PHP OCI8 拡張機能をコンパイルしてAlpinelinuxで実行しようとしています。しかし、拡張子には、で定義されているがmusl libcglibc
にないシンボルにいくつかの依存関係があるようです。
私が使用できる既存のコンパイル済み PHP OCI8 拡張機能はありますか? または、oci8 拡張機能と oracle インスタント クライアントを alpinelinux で動作させるための回避策はありますか。
前もって感謝します!
これらのコマンドを試してください。
Alpine の Docker で動作します。
ただし、GLIB Alpine 互換レイヤーをインストールする必要があります: 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
アルパインを試した人は、方法を見つけられませんでした. この問題は PHP に固有のものではないため、Oracle Instant Client を使用し、Alpine を試した他の言語を確認してください。たとえば、アルパインの問題https://github.com/sgerrand/alpine-pkg-glibc/issues/31を参照してください。