プロジェクトにCakePHP3とMAMPProサーバーを使用しています。ケーキを焼こうとすると、次のエラーが表示されます。
致命的なエラー:CakePHPを使用するには、intl拡張機能を有効にする必要があります。
intl.soとextension = php_intl.dllをphp.iniファイルに含めましたが、このエラーの解決策を見つけることができませんでした。
この問題は数日前に私に起こっていました。 Ubuntu18.04とphp7.1をインストールしました。
Ordenでcommanphp cake.php bake
を実行してcakephpのコンソールを使用しようとしましたが、次のエラーメッセージが表示されました。
You must enable the intl extension to use CakePHP.
この拡張機能(intl
)はphp 7.1(php7.1-intl
)にインストールされましたが、このメッセージはphp cake.php bake
を使用するたびに表示されていました。
いくつかのグーグル検索の後、私は拡張機能をインストールする必要があることがわかりましたが、次のコマンドを使用します:
Sudo apt-get install php-intl
同じ問題がmbstring
拡張子で発生し、次のコマンドを使用しました。
Sudo apt-get install php-mbstring
次に、Apacheサーバーを次のコマンドで再起動しました。
Sudo service Apache2 restart
システムのセットアップを見ずに、何が問題なのかを正確に特定することは困難です。ただし、質問の内容に基づいて、intl拡張機能を正しく設定していない可能性があります。
まず、OSがLinux/macOSで、PHP拡張子が共有ライブラリである(つまり、.so
拡張子がある)場合、php.ini
エントリはextension=intl.so
である必要があります。 notextension=php_intl.dll
。また、intl.so
ファイルがiniエントリextension_dir
で設定されたディレクトリにあることを確認します。それ以外の場合は、拡張子iniエントリが完全に修飾されていることを確認します(例:extension=/path/to/extension/dir/intl.so
)。
Debian/Ubuntuなどのパッケージマネージャーを備えたLinuxOSを使用している場合は、そのディストリビューション用にパッケージ化されたPHPの拡張機能をより簡単にインストールできる可能性があります。たとえば、Ubuntuでは/ Debianパッケージphp5-intl
はPHP5のintl拡張機能を提供します(これらのリポジトリを有効にしている場合は、PHP7でも同様だと思います)。
ソースからPHPをビルドする場合は、拡張機能をPHPにバンドルしてみることができます。 手動 の手順を参照してください。
私も同じ問題を抱えていました。ゼロから始めた後、私はしました:
$ brew install php
$ composer install && composer update && composer dump-autoload --optimize
$ composer self-update && composer create-project --prefer-dist cakephp/app:^3.8 cms
$ cd cms
$ bin/cake server
そしてそれは働いていました!