Ubuntuを13.10にアップグレードした後、mCryptが存在しない


92

システムをUbuntu 13.04から13.10にアップグレードした後、Apache、mysql、phpの構成でいくつかの問題が発生しました。

私はそれらのほとんどを解決しましたが、mCryptライブラリーを機能させることができません。パッケージがインストールされているので、apt-getする必要はありません。サーバーは動作し、すべてが正常に見えますが、php artisan serveLaravel 4で実行しようとすると、mCryptが必要であるというメッセージが表示されます。

私はそうしましたphp --ri mcrypt、そして出力はExtension 'mcrypt' not present. 私が入れようとextension=mcrypt.soした/etc/php5/apache2/php.iniがそれはうまくいきませんでした。

何か案は?

の出力 dpkg --get-selections | grep php5

libapache2-mod-php5         install
php5                        install
php5-cli                    install
php5-common                 install
php5-gd                     install
php5-json                   install
php5-mcrypt                 install
php5-mysql                  install
php5-readline               install

あなたはそれがインストールされています確信しているdpkg --get-selections | grep php5
tlenss

apt-get install php5-mcrypt?
Lajos Veres 2013年

1
@tlenssコマンドの出力で質問を更新しました。sudo apt-get install php5-mcryptインストールされた最新バージョンを出力
VukStanković

2
たぶんここに答えはあなたを助けるaskubuntu.com/questions/360646/...
tlenss

そのページでランチパッドのバグが見つかり、解決策が得られました。ありがとう
VukStanković2013年

回答:


273

launchpad.netで解決策を見つけたと思います。

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart

これでうまくいきました。


この回答をありがとう、OpenCart 1.5.6ではこの問題が原因でエラーが発生しました...致命的なエラー:/ <path here> /system/library/encryption.phpの未定義の関数mcrypt_create_iv()を8行目で呼び出します
AndyGaskell

私がするまで注目すべきは、このソリューションはLaravel /職人を私のために仕事をしませんでした /etc/php5/cli/conf.dに連結SYM
デヴィッド・Mを

??私は親切に示唆私は、更新に必要としているファイル私は更新する必要があり、このerror.Whichコードを取得しています...
user2089987

これにより、Webgilityが同期しなくなりました。それをインストールすることはそれを正しく修正しました。ありがとう!
ライアン

2
Ubuntu 14.04 / PHP5.5では、最初の行は必要ありません。php5enmodがリンクを作成します。
Wolk

27

私はこの問題をUbuntu 14.04で抱えていて、それを解決するために次のことを行いました。

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
これは私にとってうまくいきました、私はPHPバージョン5.5.9-1ubuntu4.4を持っていて、/ etc / php5 / conf.dディレクトリを持っていませんでした。
flcoder

14

インストール後、Ubuntu 14.04にもこの問題があります。

最初にmcryptを有効にします

sudo gedit /etc/php5/apache2/php.ini

このコマンドを任意の行に追加します

extension=mcrypt.so

/ etc / php5にconf.dフォルダーを作成します

sudo mkdir conf.d

そしてそのフォルダ内にmcrypt.iniファイルを作成します

sudo gedit mcrypt.ini 

次に、このコマンドをそのファイルに追加します

extension=mcrypt.so

次に、ファイルへのリンクを作成します

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

mcryptモジュールを有効にする

sudo php5enmod mcrypt

Apacheを再起動します

sudo service apache2 restart

3
あなたが必要としないextension=mcrypt.sophp.ini。PHPの拡張機能(mcryptなど)は別の.iniファイルにあるため、それがなくても機能します。
machineaddict 2014

@machineaddict私にとっては、mcryptをインストールした後に 'extension = mcrypt.so'を追加することができました。Lubuntu 14.04 Trusty Thar。私は自動的にロードされませんでした
Clain Dsilva 2015

11

Ubuntu 13.10から14.04へ:

sudo php5enmod mcrypt
sudo service apache2 restart

私のために働く。


私の場合:WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available。ただし、ファイルは別の場所にありました。sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/上記のコマンドを実行しました。撮影www.devraju.com
machineaddict

3

Ubuntu 14.04とNginxにもこの問題がありましたが、私にとってのヒントはFPMサービスを再起動することでした。

ライブラリをインストールする

apt-get install php5-mcrypt

パスを見つける

updatedb && mcrypt.soを見つけます

/etc/php5/mods-available/mcrypt.iniにあるmcrypt.iniファイル内のmcrypt.soのパスを設定します

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

そして、FPMサービスを再起動します。

サービスphp5-fpm再起動


php5-mcryptをapt-getでインストールし、サービスphp5-fpmをubuntu 14.04で再起動する必要がありました。
deanpodgornik 2016年

ニース..私の場合、mcrypt.iniファイルで拡張子が空だったので、手動でmcrypt libを見つける必要がありました。
Deric Lima 2016

0

パッケージが既にインストールされている場合の別の解決策:

sudo aptitude reinstall php5-mycript

これはアップグレード後に私にとってうまくいきました



0

Mac OS X Yosemiteで実行されているPHP 5.5.14でも同じ問題が発生しました。Laravel 5.0をインストールしようとしていました。新しいプロジェクトを作成しようとすると、次のようなエラーが発生しました(php artisan serveで laravelサーバーを起動しようとした場合でも)

Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
Crafting application...
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Generating optimized class loader
Compiling common classes
Compiling views
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
Application ready! Build something amazing.
Alejandros-MacBook-Pro:Documents Lexynux$ 

そのため、nanoエディターでphp.iniファイルの最後に以下の行を追加しました。

extension=mcrypt.so
sudo nano /etc/php.ini

最後に、ターミナルを再起動し、次のコマンドでlaravelアプリサーバーを再起動します。

php artisan serve

そしてそれはうまくいきます!


0

php.netで見つかりました

Ubuntuの場合、php5-mcryptをインストールするだけではmcryptが機能しませんでした。有効にするには、rootとして以下のコマンドを実行する必要があります。

apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service apache2 restart

http://php.net/manual/en/mcrypt.installation.php#114609


0

仮想マシンではなくローカルマシンでアーティザンコマンドを入力したために、この「問題」が発生する場合があります。Homesteadを使用している場合、mcryptはすでにインストールされています。それを思い出させると考えてくださいhomestead ssh

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