致命的なエラー:未定義の関数MCRYPT_ENCRYPTへの呼び出し()

StackOverflow https://stackoverflow.com/questions/2604435

  •  25-09-2019
  •  | 
  •  

質問

注:のライブラリ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バージョン5.2.8で私のために働いていた何を

は、すなわち変更、php.iniを除去することにより、php_mcrypt.dll拡張子を;を開き、許可するようにします:

;extension=php_mcrypt.dllextension=php_mcrypt.dll

他のヒント

あなたは最近のUbuntu 14.04にアップデートしている場合は、

は、ここでこの問題の修正プログラムがあります:

$ sudo mv /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
Windowsの場合

;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

私はそれが動作することを願っています。

ベースのLinux用の

(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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top