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に以下追記で解決。