目次
CakePHPのサーバーたちあげでエラー
環境
- ubuntu
- php 7.2
- cakephp
cakephpのサーバーは以下のコマンドで立ち上げることができますがエラーが発生しましたので解決方法をまとめておきます。
bin/cake server -H ipアドレス -p ポート番号
エラー内容
PHP Fatal error: You must enable the intl extension to use CakePHP.
in…
in…
日本語にほんやくしました。↓
PHP致命的なエラー:CakePHPを使用するにはintl拡張を有効にする必要があります。
PHPの情報を確認
intlモジュール関係のエラーということのようです。使用されているPHPの情報を確認するコマンドがあるのでそちらを使って調べていきます。
$ php -r 'phpinfo();'
上記コマンド実行しましたがintlに関する情報は記述されていませんでした。
intlがインストールされているかを簡単に確認するためにgrepコマンドを使う方法もあります。
$ php -i | grep intl #この時点ではなにも表示されなかったのでintlがインストールされていないようです。
intlのインストール
intlをインストールします↓
$ sudo apt install php7.2-intl
PHPの情報を再確認
再度情報を確認します
$ php -i | grep intl
↓うまくインストールされたようです
intl
intl.default_locale…
intl.error_level…
intl.use_exception…
intl.default_locale…
intl.error_level…
intl.use_exception…
こちらのコマンドでも確認してやります
$ php -r 'phpinfo();'
↓いろいろ情報が追加されました
intl
Internationalization support
version
ICU version
ICU Data version
ICU TZData version
ICU Unicode version
Internationalization support
version
ICU version
ICU Data version
ICU TZData version
ICU Unicode version
再度エラーが発生。autoload.phpが見つからない
再度エラーが発生しました。
エラー内容
PHP Warning: require(/home/vagrant/programing/php_lessons/cake_php/myapp/vendor/autoload.php): failed to open stream: No such file or directory in /home/vagrant/programing/php_lessons/cake_php/myapp/bin/cake.php on line 5
日本語に翻訳しました↓
PHP警告:require(/home/vagrant/programing/php_lessons/cake_php/myapp/vendor/autoload.php):ストリームを開けませんでした:/ home / vagrant / programing / php_lessons / cake_php / myapp / binにそのようなファイルやディレクトリはありません /cake.php on line 5
エラーの原因
このエラーはintlが存在しない状態でアプリケーションを作成してしまったためにおこっていますので一旦アプリケーションを削除して作り直します。
$ rm -r アプリケーション #再度アプリケーションを作成します $ php composer.phar create-project --prefer-dist cakephp/app myapp
最終確認
アプリが作成されたので再度cakephpのサーバーをたちあげます。うまくいきました。↓