2016-07-05 20 views
1

PHP OCI8 extensionをコンパイルしてAlpinelinuxの下で実行しようとしています。しかし、拡張子はglibcに定義されているシンボルに依存関係がありますが、musl libcにはありません。AlpinelinuxでPHP OCI8拡張をコンパイル

コンパイル済みのPHP OCI8拡張機能はありますか?または、oci8拡張機能とoracleインスタント・クライアントをalpinelinuxと連携させるための回避策があります。

ありがとうございます!

答えて

2

アルパインを試したことがある人は道を見いださなかった。この問題はPHPに固有の問題ではないため、Oracle Instant Clientを使用し、Alpineを試した他の言語もチェックしてください。たとえば、アルパインの問題https://github.com/sgerrand/alpine-pkg-glibc/issues/31

+0

うんを、私はそれが非標準glibcの呼び出しにOracleとその依存関係と関連していると期待していました。明らかに、現時点ではそれを稼働させる方法はありません。とにかくあなたのコメントをありがとう:) – Sergey

+0

私は何か新しいことが問題で起こるかどうかも教えてください – SLY

1

これらのコマンドを試してみてください。

これはDocker on Alpineで動作します。

しかし、あなたはGLIBアルパイン互換レイヤーをインストールする必要があります。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 
関連する問題