CakePHPのサーバー立ち上げでintlがないと言われたときの対処方法

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…

日本語にほんやくしました。↓

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…

こちらのコマンドでも確認してやります

$ php -r 'phpinfo();'

↓いろいろ情報が追加されました

intl
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のサーバーをたちあげます。うまくいきました。↓


Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 49

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 78