Betrachten wir diese Befehle:
Wir starten Docker Image mit PHP 7.2 basierend auf Alpin.
docker run -it php:7.2-fpm-alpine3.7 sh
Wir versuchen, php-mongodb als jede andere Erweiterung zu installieren
docker-php-ext-install mongodb
Aber wir erhalten Fehler:
error: /usr/src/php/ext/mongodb does not exist
usage: /usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name
...]
ie: /usr/local/bin/docker-php-ext-install gd mysqli
/usr/local/bin/docker-php-ext-install pdo pdo_mysql
/usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop
if custom ./configure arguments are necessary, see docker-php-ext-configure
Possible values for ext-name:
bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets sodium spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip
Some of the above modules are already compiled into PHP; please check
the output of "php -i" to see which modules are already loaded.
Ich habe einige Bilder von PHP mit installierten Mongodb-Treibern gefunden:
https://github.com/Vinelab/docker-php-mongo
Alle mit dem gleichen Befehl:
pecl install mongodb
Haben docker-php-ext-install
Vorteile gegenüber pecl
? Ich habe gesehen, dass die meisten Erweiterungen von docker-php-ext-install
installiert werden. Ich fand diese Frage ohne Antwort im Problem:
Wenn pecl alle Erweiterungen enthält, aber docker-php-ext-install
die Installation einer eingeschränkten Liste zulässt, warum wurde sie erstellt?
4 Antworten
Erklärungen finden Sie unter docker-php-ext-install vs pecl-Problem in das offizielle php
Image-Repository
Die Antwort kann für die Frage irrelevant werden. Trotzdem füge ich das folgende Snippet hinzu, falls jemand wie ich hierher kommt und die Mongodb-Erweiterung für PHP in einem Docker-Container installieren kann. Ich benutze php7.3-fpm. https://www.php.net/manual/en/mongodb. installation.pecl.php
RUN pecl install mongodb \
&& echo "extension=mongo.so" > /usr/local/etc/php/conf.d/mongo.ini
Ich benutze diese Kommandozeilen und arbeite für mich. Holen Sie sich den Docker container id mit dem Befehl docker ps
und docker exec -it <container id> bash
apt-get update
apt-get install openssl libssl-dev libcurl4-openssl-dev
pecl install mongo
echo "extension=mongo.so" > /usr/local/etc/php/conf.d/mongo.ini
Mein Docker beschwerte sich immer wieder, dass er die Erweiterung mongo.so nicht finden konnte. Schließlich habe ich es herausgefunden, um Folgendes auszuführen
RUN apt-get install -y openssl libssl-dev libcurl4-openssl-dev
RUN pecl install mongodb-1.6.0
RUN docker-php-ext-enable /usr/local/lib/php/extensions/no-debug-non-zts-20180731/mongodb.so
Anscheinend möchte Docker, dass Sie eine PHP-Erweiterung über Docker-PHP-Ext-Enable aktivieren
Neue Fragen
php
PHP ist eine weit verbreitete, übergeordnete, dynamische, objektorientierte und interpretierte Skriptsprache, die hauptsächlich für die serverseitige Webentwicklung entwickelt wurde. Wird für Fragen zur PHP-Sprache verwendet.