web-dev-qa-db-ja.com

mcryptが見つかりません=>未定義関数Laravel \ mcrypt_create_iv()の呼び出し

Laravelを設定しようとすると、このエラーが発生し続けます。mcryptをbrew経由でインストールすると、/ usr/local/Cellarにあります。考えはありますか?..コマンドphp -mどちらか、それが重要な場合、MacネイティブWebサーバーでMountaion Lionを実行しています。

45
coryj

php.iniファイルでも同様に有効にし、おそらくApacheを再起動する必要があります。

php.iniには;mcrypt.soがあり、そこから;を削除します。

または、そこにない場合は、mcrypt.soをどこかに追加するだけです。

また、saltオプションはPHP 7.0.0から非推奨になりました。デフォルトで生成されるsaltを単に使用することをお勧めします。

39
Deinumite

UbuntuまたはDebianベースのLinuxユーザーは、apt-getを使用して必要なパッケージをインストールできます。

Sudo apt-get install php5-mcrypt

後でWebサーバーを再起動することを忘れないでください:

Sudo service Apache2 restart

それでも機能しない場合は、構成ファイルをWebサーバーの適切な構成フォルダーにリンクしてみてください。コメント内のこのヒントについて dave101 に感謝します。

Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/Apache2/conf.d/   # for Apache
Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/cli/conf.d/       # for CLI

そして再び、Webサーバーを再起動します。

Sudo service Apache2 restart

おそらく、まだ動作していない場合は、php5enmod mcryptで@RahulPrasadによって示される行も必要です。

66
Sophy

Sudo php5enmod mcrypt && Sudo service Apache2 restart

28
Rahul Prasad

php56-mcrypt phpモジュールが実際に必要なときにmcryptをインストールしました。

質問で、/usr/local/Cellarmcryptがインストールされており、OSXを使用していることがわかりました。したがって、OSXに Homebrew を使用してmcrypt PHPモジュールをインストールする最も簡単な方法は次のとおりです。

// assuming you have php56
brew install php56-mcrypt

Homebrewで正しいパッケージが見つからない場合は、 PHP GitHubで見つかったリポジトリ

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

コマンドbrew search mcryptを発行すると、次のように表示されます。

libtomcrypt   mcrypt   php53-mcrypt   php54-mcrypt   php55-mcrypt   php56-mcrypt

他のいくつかのポスターは、php.iniファイルを編集する必要があると述べています。 homebrewがモジュールをアクティブ化するので、これは不要です。構成ファイルを/usr/local/etc/php/5.6/conf.d/ext-mcrypt.iniに配置します

20
darronz

Mcrypt PHP拡張機能がインストールされていません。

Macの場合、次の指示に従いました。 Mac 10.7または10.8のmcrypt

彼らは多くのように見えますが、そうではありません、それが機能するのは非常に簡単です!

2
duality_

最近PHP 7-MCRYPTライブラリは廃止されました 廃止されました 。 to PHP 7そして今このエラーが表示されているのはそのためです。代替ライブラリに切り替える必要があります、いくつかの代替が this thread

1
James Paterson

Mycryptをインストールしたが、php_mcryptモジュールがインストールされていない/有効になっていない可能性があります。

1
Andrew

PHPインストールのCLIフォルダーに移動し、そこにあるphp.iniを見つけてmcryptを有効にします。ターミナルは、別のphp.iniを使用することがあります。これは通常、CLIフォルダーにあります。

0
Kris

Homebrewでphpとmcryptをインストールしましたが、brew updateを数回実行した後でもこのエラーが発生しました。私のセットアップは、やがて少し骨が折れたと思います。

私のPHPは/ private/etc/php.ininot/ usr/local /から設定されていたことがわかりますHomebrewが推奨するetc/php/5.4/php.ini Mcryptは/ usr/local/etc/php/5.4/ext-mcrypt.iniからも含まれていません。これはphp -iを考慮するとあまり意味がありません私のためにこれを生成します:

Configuration File (php.ini) Path => /usr/local/etc/php/5.4
Loaded Configuration File => /usr/local/etc/php/5.4/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/5.4/conf.d
Additional .ini files parsed => /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini

私の解決策:

  1. /private/etc/php.iniをスーパーユーザーとして編集します
  2. extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so"を追加して保存
  3. Sudo apachectl restartでApacheを再起動します
0
gmeben

これは最終的に私のために働いたものです:

brew reinstall --with-homebrew-curl --with-httpd php56
brew reinstall --build-from-source php56-mcrypt

私もしなければならなかったSudo chmod 777 /usr/local/etc/php/5.6/conf.d 2番目のbrew reinstallを追加しようとしましたext-mcrypt.iniそのディレクトリに。

0
Eric Norcross