2016-07-05 2 views
1

J'essaie de compiler PHP OCI8 extension et de l'exécuter sous Alpinelinux. Mais il semble que l'extension a des dépendances sur les symboles définis en glibc mais manquant en musl libc.Compiler l'extension PHP OCI8 sous Alpinelinux

Existe-t-il une extension PHP OCI8 compilée existante que je peux utiliser? Ou existe-t-il une solution de contournement pour faire fonctionner l'extension oci8 et le client instantané Oracle avec alpinelinux.

Merci d'avance!

Répondre

2

Les gens qui ont essayé Alpine n'ont pas trouvé leur chemin. Le problème n'est pas spécifique à PHP, vérifiez donc les autres langues qui utilisent également Oracle Instant Client et avez essayé Alpine. Par exemple, voir le numéro d'Alpine https://github.com/sgerrand/alpine-pkg-glibc/issues/31

+0

Oui, je m'y attendais pas à être lié avec Oracle et leur dépendance à l'égard des appels glibc non standard. Apparemment, il n'y a aucun moyen de le faire fonctionner pour le moment. Merci pour votre commentaire de toute façon :) – Sergey

+0

Faites-moi savoir si quelque chose de nouveau se produirait avec problème – SLY

1

Essayez ces commandes.

Fonctionne sous Docker sur Alpine.

Mais, vous devez installer la couche de compatibilité 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