Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

CakePHP3でintl導入時につまずいた事

More than 3 years have passed since last update.

CakePHP3では動作環境にintlが無い、もしくは有効になっていないと動かせないので導入が必要。

ちょっとつまずいた点をメモ書き。

PHP intlが有効かどうか確認

まずこのコマンドで有効化されてるか確認。

filename.rb
php -i | grep intl

もし有効ならば、こんな結果が表示されるはず...

filename.rb
php -i | grep intl

//実行結果
/etc/php.d/20-intl.ini,
intl
intl.default_locale => no value => no value
intl.error_level => 0 => 0
intl.use_exceptions => 0 => 0

もし表示されなければintl導入。

PHP intl導入と有効化

自分の場合、PHP7.0だったので、それに対応するものを導入。

filename.rb
//導入可能なintl検索
yum list | grep intl

//インストール
yum install php70-php-intl.x86_64

大抵のコレだけでintl有効、もしくはphp.iniに以下追記で有効化される。

filename.rb
extension=php_intl.dll

自分の環境では有効化されなかったので、そもそもextension_dirにモジュール追加されているのか確認してみると、別のディレクトリに格納されていた。

filename.rb
;extension_dirのパス
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

;intlが格納されてたパス
/opt/remi/php70/root/usr/lib64/php/modules/intl.so

多分remiから持ってきたので、remi配下に格納されたっぽい。

こーゆー時はextension_dirにコピペするか、フルパス指定のいずれかで解決。

filename.rb
extension=/opt/remi/php70/root/usr/lib64/php/modules/intl.so

今回はphp.iniに以下追記で解決。

machio77777
プロジェクトマネージャー / 最近はマネージメント業務や、クライアント折衝がメインのため、業務でコードは書きませんが、プライベートで調べたことをメモ書きレベルで投稿しています。
https://tana-labo.tokyo/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away