web-dev-qa-db-ja.com

未定義の定数MCRYPT_RIJNDAEL_128の使用-「MCRYPT_RIJNDAEL_128」を想定

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関数がすべて機能するようにすることができるようにする簡単な方法はありますか?

10
Philip

PHP拡張ローダーに関連するこの問題。インストールが正常に完了した後、laravelコマンドを使用する必要はまったくありません。 Laravelフレームワークは、セキュリティモジュール用のMcryptライブラリを必要とし、いくつかの構成ファイルを暗号化します。

必要なのはこれらの手順です。

  1. Mcryptのダウンロード http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download

次に、makeを構成してインストールします。

  1. Phpのダウンロード http://php.net/releases/index.php 5.5.14以上が推奨されます。 (このパスは後で手順4で使用します)

  2. 次に、自動構成をダウンロードします

    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
    
  3. その後、ディレクトリレベルに移動する必要があります

    cd ***YOURPHPDIRECTORY***/ext/mcrypt/
    

    このディレクトリレベルでphpizeを実行します

    /usr/bin/phpize
    ./configure
    make
    Sudo make install
    
  4. これをphp.iniに挿入して、php.iniを変更してmcrypt拡張機能を有効にします。

    extension=mcrypt.so
    
  5. Webサーバーを再起動します。
2
ZenithS

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」がない場合は、そのステップをスキップするだけで問題なく動作します

チェック http://php.net/manual/en/mcrypt.installation.php

10
Eslam Mahmoud

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/

3
Suyog Sawant

これをubuntuまたは他のフレーバーの* nixで見ている場合は、次のことを行うと役立つ場合があります。

service php5-fpm restart
2
tven

私はnginxとphp-fpmを使用し、すでにapt-get install php5-mcryptmcrypt.iniファイルからmods-available

私がしなければなりませんでした Sudo service php5-fpm restart実際に動作する前。

0
WoodyDRN

.bash_profile MacOSで、動作しました:

export PATH="/usr/local/sbin:$PATH"
PHP_AUTOCONF="/usr/local/bin/autoconf"
source ~/.bash_aliases
0
jonasantonelli

また、LaravelMac 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つの問題が発生しました。

  1. ダウンロードしたPHP Zipファイルを、マシンにインストールされているPHP)のバージョンに一致させる必要がありました。

だから私はやった

php -v

バージョン番号を確認し、そのバージョン番号に一致するようにダウンロードを変更します。私の場合、PHPバージョンは5.6.28であったため、PHPソースを

https://github.com/php/php-src/archive/PHP-5.6.28.Zip
  1. 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
0
BruceHill