Laravelを正常にインストールしましたが、_php artisan serve
_を実行して_localhost:8000
_に移動した後、このエラーが発生します:
未定義の定数MCRYPT_RIJNDAEL_128の使用-「MCRYPT_RIJNDAEL_128」を想定
_localhost:8888
_でphpinfo()
を確認しましたが、mcrypt
が正しくインストールされていると表示されます。しかし、私が考えることができる唯一のことは、多分私の道が間違っているということですか?
私の_.bash_profile
_にある
_PATH=/usr/local/bin:$PATH
_
Laravelコマンドを実行しようとするたびに、これを端末に入力する必要があります。
_export PATH="~/.composer/vendor/bin:$PATH"
_
Macで実行しています。 _bash_profile
_を設定して、localhostアドレス間で一貫して変更し、適切なPHP関数がすべて機能するようにすることができるようにする簡単な方法はありますか?
PHP拡張ローダーに関連するこの問題。インストールが正常に完了した後、laravelコマンドを使用する必要はまったくありません。 Laravelフレームワークは、セキュリティモジュール用のMcryptライブラリを必要とし、いくつかの構成ファイルを暗号化します。
必要なのはこれらの手順です。
次に、makeを構成してインストールします。
Phpのダウンロード http://php.net/releases/index.php 5.5.14以上が推奨されます。 (このパスは後で手順4で使用します)
次に、自動構成をダウンロードします
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar xvfz autoconf-latest.tar.gz
cd autoconf-2.69/
./configure
make
Sudo make install
その後、ディレクトリレベルに移動する必要があります
cd ***YOURPHPDIRECTORY***/ext/mcrypt/
このディレクトリレベルでphpizeを実行します
/usr/bin/phpize
./configure
make
Sudo make install
これをphp.iniに挿入して、php.iniを変更してmcrypt拡張機能を有効にします。
extension=mcrypt.so
Ubuntuでのより簡単な方法
apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service Apache2 restart
注:「/etc/php5/conf.d」がない場合は、そのステップをスキップするだけで問題なく動作します
Macユーザー専用-Home Brewを使用してインストール
空のLaravelインストールをインストールしました。 http:// localhost/kanban/public / に移動すると、次のエラーメッセージが表示されます。
通知:未定義の定数MCRYPT_RIJNDAEL_128の使用– 83行目の/Library/WebServer/Documents/xxx/config/app.phpの「MCRYPT_RIJNDAEL_128」を想定
このエラーメッセージのグーグル検索は、Mac OS Xにmcryptをインストールする方法に関する多くのチュートリアルを返します(ソースからビルドするか、Homebrewを使用するかに関わらず)。問題は、mcryptパッケージとphp55-mcryptパッケージの両方が適切にインストールされたことです。
$ brew install mcrypt
Warning: mcrypt-2.6.8 already installed
$ brew install php55-mcrypt
Warning: php55-mcrypt-5.5.20 already installed
McryptもPHPによって適切にロードされました。
$ php -m | grep mcrypt
mcrypt
$ php -i | grep mcrypt
Additional .ini files parsed => /usr/local/etc/php/5.5/conf.d/ext-mcrypt.ini,
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.*
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
詳細については、このリンクを参照してください- http://benohead.com/mac-os-x-php-notice-use-undefined-constant-mcrypt_rijndael_128/
これをubuntuまたは他のフレーバーの* nixで見ている場合は、次のことを行うと役立つ場合があります。
service php5-fpm restart
私はnginxとphp-fpmを使用し、すでにapt-get install php5-mcrypt
、mcrypt.ini
ファイルからmods-available
。
私がしなければなりませんでした Sudo service php5-fpm restart
実際に動作する前。
.bash_profile
MacOSで、動作しました:
export PATH="/usr/local/sbin:$PATH"
PHP_AUTOCONF="/usr/local/bin/autoconf"
source ~/.bash_aliases
また、Laravel
をMac OS Sierra
上のApache
にデプロイしようとすると、この問題が発生しました。最終的に、 この投稿 を見つけて、この問題を解決するための段階的な手順を説明しました。これらの手順は、 Homebrew がインストールされていることを前提としています。インストールしていない場合は、次をターミナルウィンドウに貼り付けてインストールします。
/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
上記の投稿から貼り付けられた関連する手順は次のとおりです。
ステップ1:autoconfとmcryptをインストールします
Homebrewを使用してautoconfとmcryptをインストールしました。
brew install autoconf mcrypt
これがうまくいかない場合、またはhomebrewを使用したくない場合は、 このチュートリアル をチェックしてください。
ステップ2:PHP extensionをビルドする
PHP拡張機能をビルドするには、PHP 5.4.17ソースコードがダウンロードできる here そしてそれを抽出します:
cd ~/Downloads
unzip PHP-5.4.17.Zip
次に、次のコマンドを使用して拡張機能をビルドします。
cd php-src-PHP-5.4.17/ext/mcrypt/
/usr/bin/phpize
./configure
make
Sudo make install
ステップ3:拡張機能を有効にする
あとは、/ etc/php.iniを編集して拡張機能を有効にするだけです。このファイルが存在しない場合は、/ etc/php.ini.defaultをコピーして名前を変更します。
Sudo cp /etc/php.ini.default /etc/php.ini
/etc/php.iniファイルを編集して、次を追加します。
extension=mcrypt.so
ステップ4:Apacheを再起動しますここでApacheを再起動するだけで完了です!
Sudo apachectl restart
追加の注記と説明
次の手順に従うと、2つの問題が発生しました。
PHP
Zipファイルを、マシンにインストールされているPHP)のバージョンに一致させる必要がありました。だから私はやった
php -v
バージョン番号を確認し、そのバージョン番号に一致するようにダウンロードを変更します。私の場合、PHP
バージョンは5.6.28であったため、PHPソースを
https://github.com/php/php-src/archive/PHP-5.6.28.Zip
Sudo make install
を実行しようとしたときに、ステップ2で例外が発生しました。例外は、El Capitan
によって追加されたセキュリティ機能であるSIPが原因でした。例外の概要は this question に、この問題の解決策は this answer にあります。この回答からの情報を適用すると、上記の手順2が変更され、Sudo make install
が次のものに置き換えられました。
mkdir -p /usr/local/lib/php/extensions
Sudo make EXTENSION_DIR='/usr/local/lib/php/extensions' install
この変更のため、上記の手順4もmcrypt.so
へのパスを含めるように変更する必要があることに注意してください。したがって、以下はphp.ini
に入れる必要があります。
extension=/usr/local/lib/php/extensions/mcrypt.so