CakePHP

解決!You must enable the intl extension to use CakePHP

 


 

はじめに

CakePHP3をインストールして最初の山場が「You must enable the intl extension to use CakePHP」ではないでしょうか?

Intlとは国際化用の拡張モジュールで、その国・地域に合わせた日付・文字列・数値などを扱えるようにするものです。

Intlの読み込みをコメントアウトしてしまえばエラーは消えますが、やはりスッキリ解決して開発を進めたいですよね。

インストールするのが面倒、とりあえずCakePHPを少し動かしてみたいというという方は、config/requirements.phpのif (!extension_loaded(‘intl’)) の箇所をコメントアウトすると、エラーが消えてCakePHPを使うことができます。

 

Intlを使うにはICUライブラリもインストールする必要があるので、ICU→Intlの順番でインストールしていきます。

解決方法を2つ書きましたので、順番にお試しください。

 
 

動作環境

macOS High Sierra
XAMPP 7.0.26
CakePHP3
 
 

解決方法 – その1 –

Step1: ターミナルでHomebrewがインストールされているか確認する

Users-MacBook:~ user$ which brew

/usr/local/bin/brew と表示された場合はStep3へ
not found の場合はStep2へ
 
 

Step2: Homebrewをインストールする

https://brew.sh/にアクセスし、”Install Homebrew”のすぐ下にあるスクリプトをコピペして実行します。

Users-MacBook:~ user$ ここに貼り付けます

 
 

Step3: PHPのパスを確認する

Users-MacBook:~ user$ which php

/usr/bin/php と表示された場合はStep4へ
/Applications/XAMPP/xamppfiles/bin/php の場合はStep5へ
 
 

Step4: パスを変える

Users-MacBook:~ user$ PATH="/Applications/XAMPP/xamppfiles/bin:${PATH}"

 
 

Step5: icu4cをインストールする

Users-MacBook:~ user$ brew install icu4c

 
 

Step6: intlをインストールする

Users-MacBook:~ user$ sudo pecl update-channels
Users-MacBook:~ user$ sudo pecl install intl

 
 

"Cannot find autoconf"と表示された場合はautoconfをインストールします。

Users-MacBook:~ user$ brew install autoconf

 
成功した場合はStep7へ
インストールできなかった場合は、解決方法 – その2 -へ
 
 

Step7: intlを有効化して、XAMPPを再起動

/Applications/XAMPP/xamppfiles/etc/php.ini を開き、extension=intl.soを見つけます。

;extension=intl.so

extension=intl.so   // 行頭のセミコロンを外します

XAMPPを再起動して完了です!
 
 
 

解決方法 – その2 –

上記の方法でインストールできない場合があったので、もう一つの方法を紹介します。

注意

2018年8月時点で、この方法ではインストールできなくなっているようです。(未確認ですが、PHP7ではインストールできる場合もあるようです。)XAMPPにこだわる必要がない場合は、思い切ってMAMPに乗り換える方が簡単だと思います。

 

1. ターミナルで新規ウィンドウを開く

 

2. インストール可能なintl versionを検索する

Users-MacBook:~ user$ brew search intl

 
以下のように表示されます。

homebrew/php/php53-intl     homebrew/php/php55-intl     homebrew/php/php70-intl
homebrew/php/php54-intl     homebrew/php/php56-intl     homebrew/php/php71-intl

 
 

3. XAMPPのPHPバージョンに合わせて、Intlをインストールする

Users-MacBook:~ user$ brew install homebrew/php/php70-intl

 
 

4. intlを有効化して、XAMPPを再起動

/Applications/XAMPP/xamppfiles/etc/php.ini を開き、extension=intl.soを見つけます。

;extension=intl.so
extension="/usr/local/Cellar/php70-intl/7.0.27_24/intl.so" ←インストールしたバージョンに合わせて書いてください

XAMPPを再起動して完了です!
 
 
 

参考リンク

https://stackoverflow.com/questions/27886117/php-intl-installation-on-xampp
https://stackoverflow.com/questions/36408338/compiling-php-intl-extension-on-mac-book-pro-el-capitan-10-11-4
 
 

 

ABOUT ME
Sara
「わかりやすく・シンプル」をモットーに、スマホアプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
挫折しないプログラミング講座

 

 
Code for Fun プログラミング講座では「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで学ぶことができます。

  • 何か一つ形にしてみたい!
  • 次に何をして良いか分からない…
  • プログラミングに挫折しそう…

という方にオススメです。

詳しくみる

guest
0 Comments
Inline Feedbacks
View all comments
0
この記事にコメントするx