web-dev-qa-db-ja.com

PHP警告:PHP起動:動的ライブラリ 'mcrypt.so'をロードできません

laravel using composer update on ubuntu 06.04を更新しようとしていますが、実行するたびにcomposer updateこの警告は常に表示されます。

PHP Warning:  PHP Startup: Unable to load dynamic library 'mcrypt.so' (tried: /usr/lib/php/20170718/mcrypt.so (/usr/lib/php/20170718/mcrypt.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/mcrypt.so.so (/usr/lib/php/20170718/mcrypt.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

誰もそれを扱う方法を知っていますか?

私はphp7.2を使用しています

5
Fil

PHPを7.3にアップグレードしたときにこの問題に直面しました

私はmcrypt.soが_/etc/php/7.3_にまだ存在していることを発見しましたが、php 7.3では非推奨であるため、mcrypt.so fromを削除するだけです_/etc/php/7.3_解決された問題。

私は次のコマンドを使用しました:

cd /etc/php/7.3

Sudo rm -rf mcrypt.so

SudoサービスApache2の再起動

2
shivanikoko

Ubuntu 18にPhp7.2をインストールすると、同様の問題に直面しました。PECLを使用してmcryptをインストールしたにもかかわらず、質問に記載されているエラーが発生します。

私はそれを修正するために以下を行いました

Sudo apt-get install php-pear php7.2-dev

その後、アンインストールしました

pecl uninstall mcrypt

Mcryptを再インストールします

Sudo apt-get -y install gcc make autoconf libc-dev pkg-config
Sudo apt-get -y install libmcrypt-dev
Sudo pecl install mcrypt-1.0.1

プロンプトが表示されたら

libmcrypt prefix? [autodetect] :

[Enter]を押して自動検出します。

Peclを使用してmcryptを正常にインストールしたら、php.iniにmcrypt.so拡張機能を追加する必要があります。

出力は次のようになります。

...
Build process completed successfully
Installing '/usr/lib/php/20170718/mcrypt.so'    ---->   this is our path to mcrypt extension lib
install ok: channel://pecl.php.net/mcrypt-1.0.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=mcrypt.so" to php.ini

Apacheを再起動します

Sudo service Apache2 restart

インストールパスを取得し、cliおよびApache2 php.ini構成に追加します。

Sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"
Sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/Apache2/conf.d/mcrypt.ini"
2
Mukesh

İtsは私のために働いています。

lC_ALL = "C"をエクスポート

エクスポートLANG = "C

Sudo pecl install mcrypt-1.0.1

1
Serhat Arslan

また、php 7.2を使用していて、このエラーが発生していて、mcryptが不要/不要であるが、それを除外する方法がわからない場合は、php.iniファイルを編集してコメントアウトする必要があります。その前にセミコロンを使用する:

; extension=mcrypt.so

またはその行を完全に削除します。

0
James Burnett