システムをUbuntu 13.04から13.10にアップグレードした後、Apache、mysql、およびphpの構成でいくつかの問題が発生しました。
私はそれらのほとんどを解決しましたが、mCryptライブラリを動作させることはできません。パッケージがインストールされているので、apt-getする必要はありません。サーバーは動作し、すべて正常に動作しますが、Laravel 4でphp artisan serve
を実行しようとすると、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
launchpad.net で解決策を見つけたと思います。
そう:
Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
Sudo php5enmod mcrypt
Sudo service Apache2 restart
これは私のために働いた。うまくいけば、他の人にも役立つでしょう。
Ubuntu 14.04でこの問題が発生しましたが、解決するために次のことを行いました。
Sudo apt-get install php5-mcrypt
Sudo php5enmod mcrypt
Sudo service Apache2 restart
また、インストール後に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
Ubuntu 13.10から14.04の場合:
Sudo php5enmod mcrypt
Sudo service Apache2 restart
私のために働く。
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 restart
パッケージが既にインストールされている場合の別のソリューション:
Sudo aptitude reinstall php5-mycript
これはアップグレードを行った後私のために働いた
仮想マシンではなくローカルマシンで職人のコマンドを入力したために、この「問題」が発生する場合があります。 Homesteadを使用している場合、mcryptはすでにインストールされています。 Homestead ssh
のリマインダーと考えてください
このコードを試してください:
ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/Apache2/conf.d/20-mcrypt.ini
service Apache2 restart
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
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$
そのため、ナノエディターでphp.iniファイルの最後に次の行を追加しました。
extension=mcrypt.so
Sudo nano /etc/php.ini
最後に、ターミナルを再起動して、laravelアプリサーバーを再起動します。
php artisan serve
そしてそれはうまくいきます!