web-dev-qa-db-ja.com

要求されたPHP拡張ext-mcrypt *がシステムにありません

私のphpをバージョン5.4.13などに更新しましたが、ターミナルで私のphpのバージョンはこれを示しています

   PHP 5.4.12 (cli) (built: Mar 16 2013 21:46:23)

しかし、composer install ioを実行すると、次のエラーが発生します。

  The requested PHP extension ext-mcrypt * is missing from your system

とにかく、これを機能させるためにいくつかの方法を試しましたが、何もしませんでした:

私は以下を使用しました: Solution One および Solution Two 、どちらも同様のアプローチを使用しますが、エラーが表示されます。

次に、php infoテストを実行しました。これは、バージョンが5.3.15であり、mycryptがmcryptサポートを示していることを示しています有効になっています

それで私のサーバーはこのphpを使用しており、私のターミナルのサーバーは別のものを使用しています

これを修正する方法はありますか?

MACマウンテンライオンとマウンテンライオンサーバー(最新)、xcodeを使用していますが、すべての操作が最新であり、サーバーを再起動しました。

7
Simon Davies

まあ、基本に戻ってMac ServerをアンインストールしてMAMPに戻っただけで、システムが2つの個別のインストールなどと競合していたため、必要な最新のアップデートとインストールがすべて実行されました

0
Simon Davies

Linux(Ubuntu 14.04)でも同じエラーが発生する

Iniが存在することを確認する

/etc/php5/mods-available/mcrypt.ini

その場合は、iniへのシンボリックリンクがあることを確認してください。ディレクトリ/etc/php5/cli/conf.dのようなもの

05-mcrypt.ini -> ../../mods-available/mcrypt.ini

Symlinkがない場合は作成します。 php5-mcrypt拡張子をインストールした後は、シンボリックリンクはなく、iniファイルのみです。それが手動でシンボリックリンクを作成する理由です。

Sudo php5enmod mcryptを使用してmodを有効にすることができます。シンボリックリンクが作成されます。

10
skuridin

次の解決策を試してください。

Sudo apt-get install php5-mcrypt
Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
Sudo php5enmod mcrypt
Sudo service Apache2 restart

幸運を、

-イリアン

4
Iulian

私は同じ問題を抱えていました-mcryptがCLI用にインストールされているように表示されましたが、コマンドラインから欠落しています。修正するために、私は走った

#php -i

コマンドラインバージョンのphp.iniファイルの場所を見つけて追加する

extension=mcrypt.so

その後、#php -mを実行すると、コマンドラインバージョンにインストールされているモジュールが表示され、mcryptがそこにあるはずです。そうでない場合は、「ソリューション1」と「ソリューション2」のオプションがモジュールの構築に役立つはずです。モジュールがPHPインストールのモジュール(拡張)ディレクトリ(/usr/lib/php/extensions/no-debug-non-zts-20100525/などのディレクトリにインストールされている(またはコピーされている)ことを確認するか、場所を確認してくださいphp.iniのextensions_dir値が指す)。

2
Kristen Waite