MySQLの14.04サーバーにMcrypt拡張機能がありません


112

ubuntu 14.04のphp mcrypt拡張機能は、適切にインストールされていることを示していますが、phpmyadminによると:

 The mcrypt extension is missing. Please check your PHP configuration.

私の現在のphp設定はこちらです。さらに情報が必要な場合は、コメントを通じてご連絡ください。

$ sudo apt-get install php5-mcrypt
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    php5-mcrypt is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

7
受け入れられた答えはベストプラクティスではありません。最も単純な、そして正解:http://askubuntu.com/a/477608/139249はまた、最も多くの票を持っています。
マイクスチュワート

他の人の参考として、「最も簡単な」答えは私にとってはうまくいきませんでした。 php5enmod mcryptApacheを凍結しました。 php5dismod mcrypt再び解放しました。私は受け入れられた答えに行き、パスを修正しましたが、extension=..今回php5enmod mcryptはうまくいきました。はい、それは包括的であり、受け入れられた答えでなければなりません。
オリバーウィリアムズ

回答:


138

これを試して:

sudo updatedb 
locate mcrypt.ini

/ etc / php5 / mods-availableにあるはずです

locate mcrypt.so

mcrypt.iniを編集し、mcrypt.soへのパスに一致するように拡張子を変更します。例:

extension=/usr/lib/php5/20121212/mcrypt.so

今これ:

sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)

ここに新しいファイルが存在することを確認します(上記の問題から自動的に作成されるはずです)

ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini

それ以外の場合は、次を実行します

今すぐシンボルリンクを作成する

sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/cli/conf.d/20-mcrypt.ini
sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini

Apacheを再起動します

sudo service apache2 restart

php5またはphp5-fpmを再起動します

sudo service php5 restart

これは間違っています!私はあなたが次のようなことを意味したと思う: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini そして、その逆ではない。
wolfdawn

14
やることphp5enmod mcryptは私にとってスムーズに働きました。
ディオスニー

3
実行php5enmod mcryptすると、これらのシンボリックリンクが作成されます。手動で行う必要はありません(つまり、ln -sコマンドをスキップできます)。
セラーノ

1
実行php5enmod mcryptは正しいUbuntu / Debianの方法です。この回答は機能しますが、面倒であり、ベストプラクティスではありません。
マイクスチュワート

1
上記の多くの手順は必要ありません。@MURATSPLATの回答を参照してください。
ラプター

155

これを試してみてください:

sudo php5enmod mcrypt

その後:

sudo service apache2 restart 

コンピューターに新しいUbuntu 14.04(デスクトップバージョン)をインストールしました。この方法は、既にインストールされているmcryptを有効にするために機能します。


5
php5-fpmを使用してnginxを実行している場合php5-fpm service restart(および最終的にパッチが適用されている場合はリロードします)
マイクスチュワート

2
これらの2つのコマンドが行うことはこれです:1行目は「mcrypt」という名前のモジュールを有効にし、apache2を再起動して設定を更新します。有効なモジュールはから確認できます/etc/apache2/mods-available。LAMPライフをお楽しみください:)
itiskj

sudo service apache2 reload十分で、実際の再起動は必要ありません(14.04で、とにかく試着しました)
ジャスパー

55

mcryptPHPの拡張機能をインストールし、有効にして、Apacheを再起動します。実行するコマンドは次のとおりです。

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart

1
シンプル。パーフェクト。Ubuntuの14.04.1 LTS(信頼できる)の上に、少なくとも私にとっては、問題なく動作します
ゴア

ubuntu 14.10にも取り組んでいます
コカアカット

mcrypt最初の行に含めないことをお勧めします。の依存関係として暗黙的にインストールされphp5-mcryptますが、明示的にインストールした場合、後でph5-mcryptパッケージをアンインストールすることを選択した場合、apt-getはそれを削除することを認識しません。
beldaz

@beldazには、apt-getごとにphp5-mcryptがインストールされているが、pnpモジュールが有効になっていないためにmcryptがインストールされていないサーバーが少なくとも1つあり、joomlaのインストールの問題が発生します。したがって、mcryptを含めることは理にかなっています。
tagMacher

6

php5-mcryptの Ubuntuのパッケージには、設定ファイルのインストールmcrypt.ini/etc/php5/conf.d/古いPHPのconfigディレクトリのレイアウトであるが。

PHP5でモジュールを有効にする現在の作業方法は、iniファイルを/etc/php5/mods-availableディレクトリに置くことです。その後、PHP5でモジュールを有効にするために、あなたがから、関連のiniファイルへのシンボリックリンクを作成する必要が/etc/php5/apache2/conf.dPHPをApacheの下または/およびから使用されている場合、モジュールを有効にするためにディレクトリ/etc/php5/cli/conf.dあなたが外にPHPを使用する場合は、このモジュールを有効にしているしたい場合コマンドラインまたはcrontabから実行されるスクリプト内のApache。

また、conf.dディレクトリで、iniファイルへのリンクを作成できることに注意してください。このファイルの前に番号を付けて、モジュールを特定の順序でロードします。別のモジュールに依存するモジュールをロードする必要がある場合に役立ちます。

もちろん、Apacheのモジュールを有効にしている場合は、Apacheを再起動することを忘れないでください:

 sudo service apache2 restart

4

14.04サーバーのインストールのみが必要です(php5-mcryptのインストール後)

sudo php5enmod mcrypt
sudo service apache2 restart

3

それでも問題が発生する場合は、

:追加することにより、モジュールを有効にextension=mcrypt.soします

/etc/php5/cli/php.ini

そして

/etc/php5/apache2/php.ini


1
私にとっては、mcryptのインストール後に「extension = mcrypt.so」を追加することができました。
ルブントゥ

これは機能し、受け入れられた答えよりもずっと簡単です...更新されたときにも壊れます。
エリック

私はここと他の場所ですべての指示に従ったが、無駄だった。ubuntu 14.04.3-PHP 5.5.9-1ubuntu4.14-nginx / 1.8.1-サーバーバージョン:5.7.10-MySQL-データベースクライアントバージョン:libmysql-5.5.47-phpMyAdminバージョン:4.0.10deb1 ....誰もがアイデアを持っていますか?
ジェイディ16

2

Ubuntu 16.04 LTSでは、php 5.6でmcryptモジュールを有効にします。

sudo apt-get install mcrypt
sudo apt-get install php5.6-mcrypt
sudo phpenmod mcrypt

またはphp 7.0の場合:

sudo apt-get install mcrypt
sudo apt-get install php7.0-mcrypt
sudo phpenmod mcrypt

その後

sudo service apache2 restart

1

PHP 7を使用

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
sudo /etc/init.d/apache2 restart

$ sudo phpenmod mcrypt警告:モジュールmcrypt iniファイルは/etc/php/7.1/mods-availableの下に存在しません
Yevgeniy Afanasyev

$ sudo /etc/init.d/apache2 restart sudo:/etc/init.d/apache2:コマンドが見つかりません
Yevgeniy Afanasyev

0

以下を実行することにより、PHP用のmcrypt拡張機能をインストールできるはずです。

sudo apt-get install php5-mcrypt

まあ、それは(コマンドライン)が正しくインストールされていることを述べているが、上述したように、それは何とかサーバーから欠落している
matthapkidokarate

1
@ jkt123:Ubuntuにphp5-mcryptなどのphpモジュールをインストールすると、すべてのファイルが後でそこにあるが、モジュールがメインのPHP構成で有効になっていないことに気付きました。受け入れられた回答で説明されているように、手動でアクティブにする必要があります。
ブノワ14

それは、php.iniにextension = mcrypt.soを追加せずに動作しません
エリック・

0

Ubuntu 14.04では、php5-mcryptはユニバースリポジトリにあり、無効にできることに注意してください。この場合、それをインストールするには、以下を使用してリポジトリを有効にする必要があります。

sudo add-apt-repository universe


0

これは、Ubuntu 14.04サーバーにphp 5.5 mcrypt拡張機能を追加する最良の方法です

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

0

@Kevsinの答えは私にとってはうまくいきましたがmkdir -p /etc/php5/apache2/conf.d/sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini仕事を始めるには手動で実行する必要がありました。sudo php5enmod mcrypt最初のシンボリックリンクで問題なく動作しました。

注:PHP5-FPMを実行しています。それが違いだったのかもしれません。


0

これを見つけた人、Ubuntu 16.04(PHP7を使用)で、mcryptを有効にするために私がしたことは次のとおりです。

sudo apt-get install mcrypt php-mcrypt
sudo phpenmod mcrypt
sudo service apache2 restart
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.