web-dev-qa-db-ja.com

Laravel Mcryptが必要です PHP 拡張

migrateLaravel 4OSX関数を使用しようとしています。ただし、次のようなエラーが表示されます。

Laravel requires the Mcrypt PHP extension.

私が理解している限りでは、これはすでに有効になっています(下の画像を参照)。

何が問題なのですか。また、どうすれば解決できますか?

enter image description here

389
Patrick Reck

Web対応拡張とコマンドライン対応拡張は異なる場合があります。端末でphp -mを実行し、mcryptがリストされているかどうかを確認してください。そうでない場合は、端末からphp.iniを実行して、コマンドラインがphp --iniファイルのロード元を確認します。

このphp.iniファイルでは、拡張機能を有効にすることができます。

OSX

OSXに同梱されているネイティブPHPを端末が指しているために、OSX上の人々が問題にぶつかっているのを聞いたことがあります。代わりにあなたのPHPへの実際のパスを含むようにあなたのbashプロファイルを更新するべきです。このようなもの(私は実際にはOSXを使用していないので、これは100%ではないかもしれません):

export PATH=/usr/local/php5/bin:$PATH

ウブンツ

Ubuntuの以前のバージョン(14.04より前)では、Sudo apt-get install php5-mcryptを実行しても、実際にはmods-availableに拡張機能をインストールしません。あなたはそれをシンボリックリンクする必要があります。

Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini

すべてのUbuntuバージョンでは、インストール後にmodを有効にする必要があります。あなたはphp5enmodでそれをすることができます。

Sudo php5enmod mcrypt
Sudo service Apache2 restart

ノート

253
Jason Lewis

_ mamp _ がインストールされていますか?

端末でwhich phpを使用して、使用しているPHPのバージョンを確認してください。

MAMPのPHPバージョンではない場合は、ユーザーのホームディレクトリの.bash_profileを編集または追加する必要があります。つまり、cd ~です。

.bash_profileに次の行を追加します。

export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH

編集: まず最初に、コマンドcd /Applications/MAMP/bin/phpを使用して、使用しているMAMPのどのPHPバージョンを確認してから、上記のPHPバージョンに置き換えます。

それから端末をrestartして、あなたが今使っているのはどれかPHPを見てください。

そしてそれは今働いているはずです。

332
JustinHo

XAMPP 1.7.3とMacを使っている人へ

  1. ターミナルへ
  2. which php と入力します。
    • /usr/bin/phpと表示されている場合は、3に進みます。
  3. Sudo nano ~/.bash_profile(または使い方がわかっていればSudo vim ~/.bash_profile)を入力してください
  4. それからこれを貼り付けてくださいexport PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Ctrl+O それから保存するために入り、そして Ctrl+X 出る。
  6. cd ~と入力
  7. タイプ. .bash_profile
  8. 端末を再起動してください。
  9. which phpを入力してください。あなたがそれを正しくやれば、それは#4のパスと同じであるはずです。

Mcryptエラーの理由はあなたのMacがそのネイティブphpを使っているからです、あなたはxamppが持っているものにそれを変更する必要があります。

P.S Macユーザーの場合はLaravel 4にMAMPを使用することをお勧めします。この問題は、汗をかくことなくphpファイル情報エラーとともに解決される予定であり、xamppのphpバージョンは非常に古くなっています。

141
Bryan P

OSX上でMAMPまたはXAMPPを使用していないユーザー(自作インストール済み)の場合:

brew install homebrew/php/php56-mcrypt

乾杯!

85
oozzal

Ubuntuを使って

Sudo php5enmod mcrypt

私のためにトリックをしました。 CLIからPHPを使用する必要があるため、Apacheを再起動する必要はありません。

46
mppfiles

Ubuntuで(PHP-FPM、Nginx)

Sudo apt-get install php5-mcrypt

Php5-mcryptをインストールした後

あなたは、mods-availableでiniファイルへのシンボリックリンクを作成する必要があります。

Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini

有効にする:

Sudo php5enmod mcrypt

php5-fpmを再起動します。

Sudo service php5-fpm restart

より詳しく

37
Nanhe Kumar

Apache上でLaravelを働かせる

PHPバージョン:PHP 5.5.9

Ubuntuのバージョン:14.04

私は窓の上の作業laravelプロジェクトをしました。私はそれをUbuntuサーバーにコピーしたとき、私はmcryptエラーを取得し始めました。何時間もの試行錯誤の末、これ

職人のコマンドを動かす

(職人のコマンドラインツールを使用中にmcryptエラーが発生している場合)

私はたくさんの試行錯誤をしたので、以前php5enmodコマンドを実行するたびにエラーメッセージが表示されました。しかし、フレッシュインストールではエラーメッセージは表示されませんでした。このステップの後、私は職人のコマンドが動くようになりました

Sudo rm /etc/php5/mods-available/mcrypt.ini
Sudo apt-get purge php5-mcrypt
Sudo apt-get install mcrypt
Sudo apt-get install php5-mcrypt
Sudo php5enmod mcrypt

ブラウザエラーを修正しました

(ローカルlaravelインデックスページにアクセスするときにブラウザでmcryptエラーが発生している場合)

Sudo nano /etc/php5/Apache2/php.ini

php iniの動的にコンパイルされた拡張機能セクションの下に次の行を追加します。

extension=mcrypt.so

apacheサーバーを再起動し、laravelキャッシュを消去してすべてが動作している

25
Sojan V Jose

他の人が働いていない場合、ubuntuのためにこれらのステップを試してください:

  1. cd ~
  2. Sudo apt-get remove php5-mcrypt
  3. Sudo apt-get install php5-mcrypt
  4. Sudo php5enmod mcrypt
  5. Sudo service Apache2 restart

それが役立つことを願っています。ありがとうございます。

19

Ubuntu 14.04にphp-fpmをインストールした場合、私には以下がうまくいった:

Sudo apt-get install php5-mcrypt

これはmcrypt.ini内に/etc/php5/mods-available/ファイルを作成します

それから

Sudo php5enmod mcrypt

シンボリックリンクを作成します:/etc/php5/fpm/conf.d/

Php-fpmサービスを再起動するだけですSudo service php5-fpm restart

19

あるいは、

Sudo apt-get install php5-mcrypt

これが標準のPHPインストールでうまくいくかどうかわからない - 私はphp 5.5.7を次のパッケージを使ってインストールした。

Sudo add-apt-repository ppa:ondrej/php5 
Sudo apt-get update
18
JoeTidee

私のOSはYosemiteです。

構成パスを見つけることで、この問題を解決します。

php --ini

出力例

Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File:         /usr/local/etc/php/5.5/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed:      (none)

次のステップ:

  1. Php55 iniファイルの名前変更または削除
  2. シンボリックリンクを作成する
  3. Apacheサーバーを再起動します

コマンド:

mv /usr/local/etc/php/5.5/php.ini /usr/local/etc/php/5.5/php.ini.default
ln -s /etc/php.ini /usr/local/etc/php/5.5/php.ini
Sudo apachectl restart

それからphpモジュールをチェックすることができます。

php -m
16
d.danailov

Yumersのためだけに、

yum install php-mcrypt
service httpd restart
chown -R Apache:apache apppath

多分あなたはインストールが必要です remi repo

16
Sean

これで私のLinux Mintローカル環境で解決しました https://askubuntu.com/questions/350942/cannot-get-mcrypt-for-php5

次のフォルダ/etc/php5/Apache2/conf.d/mcrypt.iniおよび/etc/php5/cli/conf.dにある/etc/php5/conf.d/mcrypt.iniファイルにシンボリックリンクを作成する必要がありました。 /mcrypt.ini

15
Theo Kouzelis

オールインワンの環境が必要です。あなたはMAMPやXAMPPあるいは他のどんなツールも使うことができます。これらのツールの1つをインストールした後、あなたはあなたの.bash_profileを編集(作成)する必要があるでしょう(あなたがbashを使うと仮定して)。

あるいは、よりシンプルでプロフェッショナルな場合でも、Laravel Homesteadを使用できます。

これは公式ドキュメントへのリンクです: http://laravel.com/docs/5.0/Homestead

また、Jeffreyはそれについての無料のチュートリアルを持っています: https://laracasts.com/series/laravel-5-fundamentals/episodes/2

以下のツールをすべてプレインストールするので、Homesteadを使用することをお勧めします。

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • ノード(Bower、Grunt、Gulpあり)
  • レディス
  • Memcached
  • Beanstalkd
  • ララヴェルエンボイ
  • ファブリック+ HipChatエクステンション
13
mburakergenc

@JetLaggyを拡張します。

MAMPディレクトリで.bash_profileを何度も変更しようとしたところ、MAMP phpディレクトリのファイルパーミッションを変更し、 'which php'を取得して正しいディレクトリを表示することができました。問題は、 'php -v'のような他の機能が働かなかったことでした。

だから私はMAMPを更新しました。 http://documentation.mamp.info/en/mamp/installation/updating-mamp

これは私の特定の設定のためのトリックをしました。私はPATHを更新されたバージョンのPHPを反映するように調整しなければなりませんでした、しかし一度私がしたら、すべてがうまくいきました!

10
abaumer

OS Xの場合

MAMPを使う

端末にwhich phpコマンドを入力して、使用しているPHPのバージョンを確認してください。 MAMPのPHPバージョンでない場合は、Bashが使用している$ PATH変数を更新する必要があります。

まず、コマンド "cd/Applications/MAMP/bin/php"を使ってMAMPのどのphpバージョンをチェックし、バージョンを書き留めます(例えばphp5.6.7)。

バージョンがわかったら、~/.bash_profileファイル(つまり、ホームディレクトリにある.bash_profile)を編集して、エクスポート行を追加します。

    export PATH=/Applications/MAMP/bin/php/php5.6.7/bin:$PATH

Php5.6.7をMAMPで選択したPHPのバージョンに置き換えてください。

ファイルを保存したら、必ずターミナルを閉じてからもう一度開いてください。それが終わったら、MAMPに同梱されているPHPを使用します。


あなたが.bash_profileの中に入れるべき行が何であるべきかを簡単に見つける一つの方法はあなたの端末の中で次のコマンドを実行することです:

    echo export PATH=`cat /Applications/MAMP/conf/Apache/httpd.conf \
         | grep php | grep -i LoadModule | head -n1 \
         | sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\/\1/'`/bin:\$PATH

これらの3行を端末にコピーして貼り付けると、MAMPコントロールパネル内で選択されているPHPバージョンが正しく出力されます。

自作/ MacPortsを使う

これら2つのパッケージマネージャのどちらかに付属しているPHPを使用している場合は、path/usr/local/bin/(自作)または/opt/local/bin(MacPorts)が含まれていることを確認してください。

MacPortsでPHPパスを確認する

次のコマンドでMacPortsを使ってPHPの正確な場所を見つけることができます。

port contents php70 | grep bin/php

php70をインストールしたPHPのバージョンに置き換える必要があります。

Homebrew-phpでPHPパスを確認してください

Homebrew-php( https://github.com/Homebrew/homebrew-php )は、さまざまなバージョンのPHPを持つタップです。

次のコマンドでHomebrewを使用してPHPの正確な場所を見つけることができます。

brew --prefix homebrew/php/php56

php56をインストールしたPHPのバージョンに置き換える必要があります。

9
Tim Groeneveld

ubuntuで14.04

Sudo apt-get install php5-mcrypt
Sudo php5enmod mcrypt

Ubuntu 16.04

Sudo apt-get install php-mcrypt
Sudo phpenmod mcrypt

Ubuntu 18.04

Sudo apt install php7.0-mcrypt
Sudo phpenmod mcrypt

または

Sudo apt install php7.2-mcrypt
Sudo phpenmod mcrypt
6
Gowthaman

Zシェルを使用している場合は、以下の手順を実行してください。

  1. ターミナルを開く
  2. 須藤nano ~/.zshrc
  3. これを貼り付けます。 export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
  4. 保存する
  5. 実行 source ~/.zshrc
  6. 実行 which php - MAMP 5.6.10のパスを取得してください。

5.6.10はMAMPに設定したPHPのバージョンです。

5
Unwired

まだ今日ここに来ている人のために:

Laravelはmcrypt拡張子を必要としません mcryptは時代遅れです、libmcryptへの最後の更新は2007年でした。Laravel 4.2も時代遅れで、それ以上のサポートはありません。最善の(=安全な)解決策はLaravel> 5.1にアップデートすることです(Laravel 5.2の前にLTSはありません)。

Mcryptは2015年6月にLaravelから削除されました: https://github.com/laravel/framework/pull/9041

3
rap-2-h

地ビール入りOSX

$ brew install mcrypt php70-mcrypt

私はPHP 7.0.xを実行しているので、違うバージョンを使用している場合は "php70"をあなたのバージョンに変更してください。
他の答えで述べたように、あなたはあなたのphpバージョンを$ php -vで見ることができます。

3
kris

Sudo php install mcrypt

Sudo php5enmod mcrypt

0
Anubhav Tiwari

あなたのPHPバージョンに基づくubuntu 14.04:5.6,7.0,7.1,7.2,7.3

Sudo apt-get php {バージョン} -mcryptをインストールしてください

Sudo apt-get install php7.1-mcrypt

Sudo phpenmod mcrypt 
0
Jignesh Joisar