Docker-php-ext-install mcrypt fehlender Ordner

Lesezeit: 4 Minuten

Benutzer-Avatar
Gerhard

Ich versuche, mcrypt in meinem Docker-Image basierend auf zu installieren php:7.2-apache. Daher verwende ich den RUN-Befehl aus der Dokumentation und auch answerd hier, aber ich erhalte diesen Fehler:

error: /usr/src/php/ext/mcrypt 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.
ERROR: Service 'web' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y          libfreetype6-dev          libjpeg62-turbo-dev          libmcrypt-dev          libpng-dev     && docker-php-ext-install -j$(nproc) iconv mcrypt gd mbstring zip' returned a non-zero code: 1

Mein Dockerfile:

FROM php:7.2-apache

RUN apt-get update && apt-get install -y \
     libfreetype6-dev \
     libjpeg62-turbo-dev \
     libmcrypt-dev \
     libpng-dev \
&& docker-php-ext-install -j$(nproc) iconv mcrypt gd mbstring zip
#    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
#    && docker-php-ext-install -j$(nproc) gd


COPY ./etc/000-default.conf /etc/apache2/sites-available/

EXPOSE 80

Hat jemand eine Idee zur Lösung oder wie man die benötigten Dateien in den gewünschten Ordner bekommt?

Vielen Dank!

  • Es ist am besten, PHP mcrypt nicht zu verwenden, es ist Abandonware, wurde seit Jahren nicht aktualisiert und unterstützt kein standardmäßiges PKCS # 7-Padding (geb. PKCS # 5), nur nicht standardmäßiges Null-Padding, das nicht einmal mit Binärdateien verwendet werden kann Daten. mcrypt hat viele herausragende Fehler aus dem Jahr 2003. Die mcrypt-Erweiterung ist veraltet und wird in PHP 7.2 entfernt. Erwägen Sie stattdessen die Verwendung entschärfen oder RNCryptorsie bieten eine Komplettlösung und werden gepflegt und sind korrekt.

    – zaph

    6. Dezember 2017 um 14:11 Uhr

Benutzer-Avatar
MoiioM

mcrypt -Erweiterung wird seitdem nicht mit der PHP-Quelle bereitgestellt 7.2 sondern sind stattdessen verfügbar durch PECL. Zur Installation eines PECL Verlängerung ein Dockerverwenden pecl install um es herunterzuladen und zu kompilieren, dann verwenden docker-php-ext-enable um es zu aktivieren:

pecl install mcrypt-1.0.4
docker-php-ext-enable mcrypt

Vor dem pecl install Möglicherweise müssen Sie das Paket installieren/aktualisieren libmcrypt-dev

apt-get update && apt-get install -y libmcrypt-dev

  • FYI, ich musste entfernen mcrypt aus der Zeile, in der versucht wurde, es zu installieren, und fügen Sie den Text in dieser Frage hinzu. Danach schien alles zu funktionieren.

    – Hans

    14. Februar 2018 um 15:56 Uhr

  • @ Hans, meinst du apt-get remove mcrypt es zu entfernen?

    – Tim

    28. September 2018 um 5:03 Uhr

  • Sie müssen zuerst das Paket libmcrypt-dev installieren

    – Yehia

    16. November 2018 um 6:49 Uhr

  • @tim – nein Hans meint das seine Linie docker-php-ext-install -j$(nproc) iconv mcrypt ... muss haben mcrypt ENTFERNT; mcrypt kann nicht über installiert werden docker-php-ext-install (weil mcrypt nicht mehr als normale Erweiterung verfügbar ist). pecl install mcrypt-1.0.2 ist der jetzt zu verwendende Befehl. Um mcrypt zur Verwendung verfügbar zu machen, aktivieren Sie es auch, wie in dieser Antwort gezeigt.

    – WerkzeugmacherSteve

    3. April 2019 um 16:00 Uhr


  • Und wenn Sie es mit PHP 7.4 verwenden möchten, müssen Sie mcrypt-1.0.3 verwenden.

    – Lano

    26. Januar 2020 um 22:42 Uhr

Benutzer-Avatar
lorenzo

Aufbauend auf der Antwort von MoiioM funktionierte dies für mich mit der 7.2-stretch Docker-Image von PHP

RUN apt-get update && apt-get install -y libmcrypt-dev \
    && pecl install mcrypt-1.0.4 \
    && docker-php-ext-enable mcrypt

Benutzer-Avatar
Tomasz

Installieren mcrypt Erweiterung müssen Sie sicherstellen, dass Sie sie installiert haben libmcrypt-dev was erforderlich ist.

Versuchen Sie hinzuzufügen:

RUN apt install libmcrypt-dev

bevor Sie versuchen, Erweiterungen für PHP zu installieren.

Aktualisieren

Versuchen Sie zuerst zu laufen:

docker-php-ext-configure mcrypt

und dann

docker-php-ext-install mcrypt

  • Ich verwende diesen Befehl in meinem Dockerfile, aber er funktioniert nicht. Ich habe es meinem Beitrag hinzugefügt.

    – Gerhard

    6. Dezember 2017 um 9:53 Uhr


  • auch nicht funktionieren. es heißt “Mögliche Werte für Ext-Name: bcmath bz2 Kalender ctype curl dba dom verzaubern 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_pgsql pposix pdo_pgsqps pdo_pgsql pdo_ readline recode reflexion session shmop simplexml snmp soap sockets natrium spl standard sysvmsg sysvsem sysvshm ordentlich tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip”

    – Ary Wibowo

    10. Oktober 2018 um 2:11 Uhr

  • Fehler: /usr/src/php/ext/libmcrypt-dev existiert nicht

    – aswzen

    28. Juli 2020 um 12:44 Uhr

1297850cookie-checkDocker-php-ext-install mcrypt fehlender Ordner

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy