Edited at

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

More than 1 year has 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に以下追記で解決。