68

注: MCrypt サポートが依存するライブラリは何年​​も更新されていないため、MCrypt はデータを暗号化するための実行可能または安全な方法とは見なされなくなりました。さらに、MCrypt は PHP 5 で廃止され、PHP 7 で完全に削除されました。MCrypt を実行するコードがある場合は、より最新の暗号化ライブラリを使用するようにリファクタリングする必要があります。


(Call to undefined function mcrypt_encrypt() )次のコードを実行すると、次のエラーメッセージが表示される理由を知っている人はいますか?

このコードが機能する前に、おそらく PHP で設定を行う必要があるいくつかの手順がありませんか?

$key = 'password to (en/de)crypt';
$string = 'string to be encrypted';

$test = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key),
            $string, MCRYPT_MODE_CBC, md5(md5($key)));
4

19 に答える 19

89

最近ubuntu 14.04に更新した場合、この問題の修正は次のとおりです。

$ sudo mv /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
于 2014-05-29T06:14:55.607 に答える
36

PHP バージョン 5.2.8 でうまくいったのは、を削除して拡張機能を開いてphp.ini許可することでした。php_mcrypt.dll;

;extension=php_mcrypt.dllextension=php_mcrypt.dll

于 2010-04-09T01:02:31.093 に答える
32

窓用

;extension=php_mcrypt.dll to extension=php_mcrypt.dll 
 then restart your apache server

Redhat の場合

sudo yum install php55-mcrypt //if php5.5
sudo yum install php-mcrypt //if less than 5.4
sudo service httpd restart //if apache 2.4
sudo /etc/init.d/httpd restart //if apache 2.2 or less

Ubuntu の場合

sudo apt-get install php5-mcrypt
sudo service apache2 restart //if server not reloaded automatically 

まだ動作していません?

sudo php5enmod mcrypt && sudo サービス apache2 再起動

于 2014-01-09T05:54:01.920 に答える
19

mcrypt ライブラリがインストールされていません。

詳細については、 http://www.php.net/manual/en/mcrypt.setup.phpを参照してください。

共有ホスティングを使用している場合は、プロバイダーにインストールを依頼できます。


OSX では、homebrew 経由で mcrypt を簡単にインストールできます。

brew install php54-mcrypt --without-homebrew-php

次に、この行を /etc/php.ini に追加します。

extension="/usr/local/Cellar/php54-mcrypt/5.4.24/mcrypt.so"
于 2010-04-09T00:57:14.300 に答える
11

Ubuntuの下で私は問題を抱えていて、それを解決しました

$ sudo apt-get install php5-mcrypt
$ sudo service apache2 reload
于 2013-04-08T13:22:22.657 に答える
3

もう1つ、ApacheなどのWebサーバーを介してPHPを提供している場合は、Webサーバーを再起動してみてください。これにより、存在する可能性のあるすべてのPHPモジュールが「リセット」され、新しい構成がアクティブ化されます。

于 2011-06-24T16:09:02.357 に答える
3

あなたがdebian linuxを使用していると仮定します(私はLinux mint 12を使用しています.sshで接続したUbuntu 12.04.1 LTSサーバーに問題がありました。)

@dkamins のアドバイスを受けて、php5 インストールで mcrypt がインストールされ、アクティブになっていることを確認することをお勧めします。「sudo apt-get install php5-mcrypt」を使用してインストールします。以下、私のメモ。

PHP バージョンを使用PHP Version 5.3.10-1ubuntu3.4して、@John Conde の提案に従って phpinfo() を開くと、Web サーバー上にテスト ファイルを作成します (たとえば、コンテンツ "" だけを含むステータス ページ testphp.php を作成し、ブラウザー経由でサーバー上のどこにでもアクセスできます)。

ブラウザーで開いたときに、ステータス ページに有効または無効のステータスが表示されませんでした。@Anthony Forloneyが言及したphp.iniファイルを開いたとき、コメントを外そうと考えていました;extension=php_mcrypt.dll to extension=php_mcrypt.dll

私はそれを前後に切り替えてApacheを再起動しました(私はApache2を実行していて、私のセットアップで再起動できsudo /etc/init.d/apache2 restartますsudo restart. @dkamins のアドバイスを受けて、「sudo apt-get install php5-mcrypt」でパッケージをインストールし、上記のように apache を再起動しました。その後、エラーはなくなり、アプリケーションは正常に機能しました。

于 2012-10-19T11:11:27.467 に答える
3

mcrypt は有効になっていますか? かどうかを確認するために使用できますphpinfo()

于 2010-04-09T00:55:24.193 に答える
3

ubuntu 14.04 を使用している場合、この問題の修正は次のとおりです。

まず、php5-mcryp が既にインストールされていることを確認しますapt-get install php5-mcrypt

インストールされている場合は、この 2 つのコマンドを実行するか、この 2 つのコマンドをインストールして実行します

$ sudo php5enmod mcrypt
$ sudo service apache2 restart

うまくいくことを願っています。

于 2016-05-20T12:56:36.257 に答える
3

php5-fpm を使用している場合は、mcrypt をインストールした後、必ず再起動してください。

サービス php5-fpm 再起動

于 2015-10-12T11:36:43.183 に答える
1

私にとっては、次の方法で mcrypt をアンインストールするのに役立ちました。

sudo apt-get purge php5-mcrypt

そして単に再インストールします:

sudo apt-get install php5-mcrypt

上記のようにApacheを再起動することを忘れないでください。

私の場合(プロビジョニングされたphp55でvmを使用)でこれがなぜどのように異なるのかはわかりませんが、おそらくこれは他の誰かを助けるでしょう. xcacheなどの他のモジュールでもこの​​問題が発生しました...

于 2016-09-08T08:06:57.213 に答える
0

php5-mcrypt を確認してインストールします。

sudo apt-get install php5-mcrypt
于 2015-05-05T20:54:23.487 に答える