2017-12-06 24 views
8

を逃しmcryptの私はphp:7.2-apacheに基づいて私のドッキングウィンドウの画像にmcryptのをインストールしてみてください。したがって、私は、ドキュメントからRUN-コマンドを使用してもhereを返事しますが、私はこのエラーが表示されます。ドッカー-PHP-EXT-インストールフォルダ

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 

マイ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 

は誰解決する方法を考えてか、どのように必要に応じて取得することを持っています要求されたフォルダ内のファイル?

ありがとうございます!あなたが必要とされるlibmcrypt-devをインストールしたのを確認する必要がありmcrypt拡張機能をインストールするには

+0

これは、PHPのmcryptのを使用するのが最善ではありません、それはアバンダンがあり、年間で更新されていませんまた、標準のPKCS#7(néePKCS#5)パディングはサポートしていません。バイナリデータでも使用できない非標準のヌルパディングのみがサポートされています。 mcryptには、2003年にさかのぼる多くの傑出したバグ(https://sourceforge.net/p/mcrypt/bugs/)があります。PHP 7.2では廃止予定のmcrypt拡張機能は削除されます。代わりに[defuse](https://github.com/defuse/php-encryption)または[RNCryptor](https://github.com/RNCryptor)を使用することを検討してください。これらは完全な解決策を提供し、維持され、正しいものです。 – zaph

答えて

1

。あなたは、PHP用の拡張機能をインストールしようとしている前に、

RUN apt install libmcrypt-dev 

追加してください。

更新

最初に実行するようにしてください:

docker-php-ext-configure mcrypt 

、その後

docker-php-ext-install mcrypt 
+0

Dockerfileでそのコマンドを使用していますが、動作していません。私は私のポストにそれを加えました。 – Gerrit

+0

は、FYI私の更新 – Tomasz

16

mycrypt拡張子が7.2ので、PHPのソースを提供するが、その代わりに利用できますされていませんthrough PECL。それをダウンロードしてコンパイルするpecl installを使用し、dockerPECL拡張機能をインストールするには、それを可能にするためにdocker-php-ext-enableを使用します。

pecl install mcrypt-1.0.1 
docker-php-ext-enable mcrypt 
+0

をチェック@Gerrit私はそれはそれをインストールしようとしていたラインから 'mcrypt'を削除するだけでなく、この質問にテキストを追加する必要がありました。その後、すべてがうまくいくように見えました。 – Hans

関連する問題