web-dev-qa-db-ja.com

CakePHPでintl拡張機能を有効にするにはどうすればよいですか?

プロジェクトにCakePHP3とMAMPProサーバーを使用しています。ケーキを焼こうとすると、次のエラーが表示されます。

致命的なエラー:CakePHPを使用するには、intl拡張機能を有効にする必要があります。

intl.soextension = php_intl.dllをphp.iniファイルに含めましたが、このエラーの解決策を見つけることができませんでした。

5

この問題は数日前に私に起こっていました。 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
4
Carlos Espinoza

システムのセットアップを見ずに、何が問題なのかを正確に特定することは困難です。ただし、質問の内容に基づいて、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にバンドルしてみることができます。 手動 の手順を参照してください。

3
Roger Gee

私も同じ問題を抱えていました。ゼロから始めた後、私はしました:

$ 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

そしてそれは働いていました!

0
Alexis Queune