致命的なエラー:未定義の関数MCRYPT_ENCRYPTへの呼び出し()
質問
注:のライブラリmcryptのサポートは年に更新されていないされていないとmcryptのは、もはやデータを暗号化する実行可能なまたは安全な方法と考えるべきである依存します。しかも、mcryptのはPHP 5では非推奨とされてきた、とあなたはmcryptのを実行している任意のコードをお持ちの場合は、より近代的な暗号化ライブラリを使用するようにリファクタリングする必要がありPHP 7に完全に削除しました。
<時間>んの誰も知っている、なぜこのエラーメッセージ:?(Call to undefined function mcrypt_encrypt() )
ディスプレイIは、以下の次のコードを実行すると、
アム私はおそらくPHP Iのいずれかの設定をいくつかの手順を実行する必要が行方不明?
$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)));
解決
は、すなわち変更、php.ini
を除去することにより、php_mcrypt.dll
拡張子を;
を開き、許可するようにします:
;extension=php_mcrypt.dll
にextension=php_mcrypt.dll
他のヒント
は、ここでこの問題の修正プログラムがあります:
$ sudo mv /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
;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
まだ動作していない?
須藤php5enmod mcryptの&& sudoのサービスapache2の再起動
あなたはmcryptのライブラリがインストールされていません。
を参照してください。 http://www.php.net/manual/en/詳細については、mcrypt.setup.php でます。
あなたが共有ホスティングしている場合は、、あなたはそれをインストールするには、プロバイダに依頼することができます。
<時間>でOSXは、あなたは簡単に自作
を経由してmcryptのをインストールすることができますbrew install php54-mcrypt --without-homebrew-php
その後に/etc/php.iniに次の行を追加します。
extension="/usr/local/Cellar/php54-mcrypt/5.4.24/mcrypt.so"
あなたがアップPHP 7.2以上を使用している場合:
この関数はPHP 7.1.0で廃止されました、そしてPHP 7.2.0で削除ます。
ソース: http://php.net/manual/en/function。 mcryptの-encrypt.phpする
あなたは、PHPコードを交換し、mcryptののない解決策を見つけるために持っているので、
それとも、私はちょうど見つけた、あなたはまだPHP 7.2.0でmcryptのを使用できますが、PHP拡張コミュニティライブラリとして、それをインストールする必要があります。 ( https://pecl.php.net/ の)
にDebian / UbuntuのLinuxディストリビューション:
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php7.2-dev
sudo apt-get -y install libmcrypt-dev
、その後ます:
sudo pecl install mcrypt-1.0.1
ソース:ます。https:// WWW .techrepublic.com /記事/どのようにインストールできる-mcryptの-用-PHP-7-2 / の
の下でUbuntuの私は問題を抱えていたし、それを解決した。
$ sudo apt-get install php5-mcrypt
$ sudo service apache2 reload
Ubuntuで14.10ます:
インストールモジュールmcryptの
sudo apt install php5-mcrypt
apache2の
上のモジュールmcryptのを有効にしますsudo a2enmod mcrypt
リロードモジュールの構成
sudo service apache2 restart
上のLinuxミント17.1レベッカ - 未定義の関数の呼び出しmcrypt_create_iv ...
のphp.ini
に次の行を追加することによって解決extension=mcrypt.so
その
後service apache2 restart
それを解決...
私は行方不明mcryptののの PHP 7 のバージョンで同じ問題があった。
これは私のために働きました。
sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get upgrade
sudo service apache2 restart (if needed)
mcryptのが有効ですか?あなたはそれがあるかどうかを確認するために phpinfo()
を使用することができます。
もう一つ:あなたはApacheなどのWebサーバーを経由してPHPを提供している場合は、Webサーバーを再起動してください。これは、新しい構成をアクティブに、存在するかもしれない任意のPHPモジュールを「リセット」されます。
は、Debian Linuxを使用していると仮定すると(私は、Linuxのミント12を使用しています問題、私はにssh'edのUbuntu 12.04.1 LTSサーバー上にあった。)
私は@dkaminsのアドバイスを取り、あなたがあなたのmcryptのPHP5のインストールにインストールされ、アクティブにしている作ることをお勧めします。使用 "須藤はapt-getをPHP5-mcryptのインストール" をインストールします。下記ます。
マイノート開くのphpinfo(場合たとえば、サーバー上のどこでもアクセスできる「」だけの内容で、ステータスページtestphp.phpを作成する(Webサーバ上でテストファイルを作成することによって、あなたは@ジョンコンデ、により示唆されるように)、PHPのバージョンPHP Version 5.3.10-1ubuntu3.4
を使用しますブラウザ経由)
私は、ステータスページで有効または無効状態のない存在は認められませんでした。私は、コメントを解除;extension=php_mcrypt.dll to extension=php_mcrypt.dll
に考え@Anthony Forloneyで述べたphp.iniファイルを、開いたときに
私はその背中を切り替えると前後して(私はApache2のを実行していることだし、あなたがsudo /etc/init.d/apache2 restart
と私のセットアップに再起動するか、そのディレクトリにあるときだけ、私は信じることができsudo restart
)にApacheを再起動します
変化に対応し、変更なしが、まったく行きます。私は@dkaminsアドバイスを取り、「PHP5-mcryptのインストールapt-getの須藤」とし、上記のようにApacheを再起動してパッケージをインストールするために行ってきました。その後、私のエラーは消えていたし、私のアプリケーションは、罰金を働いています。
あなたがインストールした後、それを再起動することを忘れないでくださいPHP5-FPMを使用している場合はmcryptの
サービスのphp5-FPM再起動
あなたがここにUbuntuの14.04を使用している場合は、この問題に対する修正されます:
最初のチェックのphp5-mcrypがすでにインストールされているapt-get install php5-mcrypt
インストールした場合は、ちょうどこの2つのコマンドを実行するか、この2つのコマンドをインストールして実行します。
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
私はそれが動作することを願っています。
(Fedoraの)
yum -y install php-mcrypt
php.iniに '= mcrypt.so' 伸長を:追加することによって、モジュールを有効にします。 (に/etc/php.ini)
systemctl restart httpd.service
完了!
私にとっては、とアンインストールmcryptのを助けました
sudo apt-get purge php5-mcrypt
と、単にそれを再インストールします:
sudo apt-get install php5-mcrypt
と上記のようにApacheを再起動することを忘れてはいけない。
いけない知っているなぜ、どのようにこれが(プロビジョニングphp55でVMを使用して)私の場合は異なっていたが、それ以外多分、この意志のヘルプ誰か。私はまた、XCacheと...
のようないくつかの他のモジュールと、この問題を抱えていましたをチェックして、インストールのphp5-mcryptのます:
sudo apt-get install php5-mcrypt