MAMPを使ってMacでCakePHP3の開発環境を整える方法
昨日、Web開発をもう一度勉強するという話をしました。
開発を行うには開発環境を整える必要があります。
そして、昨日はMac + CakePHP3 + Compser + MAMPで開発環境を整えました。
色々と躓いた点も多かったので、構築方法を記事に書けば少なからず需要があると思います。
是非、参考にしてください(*‘∀‘)
目次
スポンサーリンク
具体的な手順
大きく分けて行う作業は4つです。
- Composerのインストール
- php70-intlのインストール
- MAMPのインストール
- CakePHP3のインストール
これで開発環境を構築できます。
Composerのインストール
Composerとは
「Composer」とは、PHPのパッケージ管理ツールのことです。(CakePHP)3からは、これを使うことが推奨されています。
これを使えば、CakePHPのインストール・アップデートを容易に行うことができるのです。
使わないとアップデートがあったときに手動で必要なファイルを入れ替えてやる必要があり、とても面倒なのです。
インストール方法
MacOSには、標準でHomebrewというパッケージ管理ソフトが入っています。これを使ってComposerをインストールします。
以下のコマンドを入力してください。
brew install composer
これでComposerがインストールできるはずです。
完了したら「composer -v」と入力してみてください。成功していればバージョンが表示されるはずです。
php70-intlのインストール
次に、php70-intlのインストールを行います。
php70-intlとは
php70-intlとは、PHPの拡張モジュールだそうです。これがないとComposerが動作しないとのこと。
因みに70はPHP7のことです。私はPHP7を使っているので、php70-intlをインストールする必要があります。PHP5などを使っていれば、php50-intlなどを入れる必要があります。
詳しくは調べてみてください。
php70-intlをインストールしないで次の作業を行うと
試しに、php70-intlをインストールせずにComposerを使ってCakePHP3をインストールしてみましょう。
meideru $ composer create-project --prefer-dist cakephp/app bookmarker Installing cakephp/app (3.3.4) - Installing cakephp/app (3.3.4) Loading from cache Created project in bookmarker Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - cakephp/cakephp 3.3.9 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.8 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.7 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.6 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.5 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.4 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.3 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.2 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.1 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.0-beta3 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.0-beta2 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.0-beta requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.0-RC1 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.3.0 requires ext-intl * -> the requested PHP extension intl is missing from your system. - Installation request for cakephp/cakephp 3.3.* -> satisfiable by cakephp/cakephp[3.3.0, 3.3.0-RC1, 3.3.0-beta, 3.3.0-beta2, 3.3.0-beta3, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.3.8, 3.3.9]. To enable extensions, verify that they are enabled in those .ini files: - /usr/local/etc/php/7.0/php.ini You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
「ext-intlが必要だからインストールしろ」というエラーがたくさん出ていますね。
つまり、php70-intlが必要であるということです。入れないとダメだということです。
インストール方法
php70-intlもHomebrewを使ってインストールします。(Homebrewは非常に便利なツールですねw)
まずは、php70-intlをHomebrewでインストールできるのか確認してみましょう。以下のコマンドを入力します。
meideru $ brew search intl homebrew/php/php53-intl homebrew/php/php55-intl homebrew/php/php70-intl intltool homebrew/php/php54-intl homebrew/php/php56-intl homebrew/php/php71-intl
インストールできるintlがたくさんありますね。
私のはPHP7.0なので、php70-intlをインストールします。PHP5.6などを使ってい人は、php56-intlをインストールする感じで、自分に合ったものをインストールしてください。
php70-intlをインストールするためには、以下のコマンドを入力します。
meideru $ brew install php70-intl Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> Updated Formulae alot ==> Installing php70-intl from homebrew/php ==> Downloading https://homebrew.bintray.com/bottles-php/php70-intl-7.0.14_8.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring php70-intl-7.0.14_8.sierra.bottle.tar.gz ==> Caveats To finish installing intl for PHP 7.0: * /usr/local/etc/php/7.0/conf.d/ext-intl.ini was created, do not forget to remove it upon extension removal. * Validate installation via one of the following methods: * * Using PHP from a webserver: * - Restart your webserver. * - Write a PHP page that calls "phpinfo();" * - Load it in a browser and look for the info on the intl module. * - If you see it, you have been successful! * * Using PHP from the command line: * - Run `php -i "(command-line 'phpinfo()')"` * - Look for the info on the intl module. * - If you see it, you have been successful! ==> Summary /usr/local/Cellar/php70-intl/7.0.14_8: 6 files, 481.7K
これで完了です。
MAMPのインストール
MAMPとは、Macで動くLAMP環境のことです。Web開発をしようとしている人がこの記事を読んでいるわけですから、LAMP環境については説明しません。
(他にも同じようなソフトでXAMPPという有名なソフトもあるのですが、Mac + CakePHPでは相性が悪く、ダメでした。詳しくは下の追加情報をご覧ください。)
ダウンロードは以下の公式サイトから行ってください。PROという有料版もありますが、無料版で十分です。
インストール方法や詳しい使い方の説明は割愛します。グーグル先生に聞けばたくさんでてくるので、調べてみてください。
CakePHP3のインストール
それでは目的のCakePHP3をComposerを使ってインストールしてみましょう。
MAMPの公開ディレクトリに移動
まずは、MAMPの公開ディレクトリに移動します。公開ディレクトリはMAMPフォルダ内のhtdocsというフォルダです。ここにcdコマンドを使用して移動してください。(コマンドは省略)
CakePHP3のインストール
次に、PHP3のインストールです。以下のコマンドを入力してください。
meideru $ composer create-project --prefer-dist cakephp/app my_app_name
公開ディレクトリに移動しているはずなので、そこにインストールされます。
my_app_nameは、フォルダの名前になります。任意の名前に変えることができます。
しばらく時間がかかると思いますが、特にエラーメッセージなどが表示されなければ完了です。
テスト
それでは、CakePHP3が正しくインストールされているかテストしてみましょう。
MAMPのApacheを起動してください。
そして、ウェブブラウザでlocalhostにアクセスします。上のアドレスバーにlocalhostと入力すればアクセスできるはずです。
それで、CakePHP3の画面が表示されれば完成です。
@こんな画面です(バージョンによって異なります)
表示されなかった人は、MAMPのApacheのポート番号を確認してみてください。ウェブブラウザは特に指定がなければ80番のポートに接続するようになっています。
MAMPのApacheのポート番号が8888などであれば、上のアドレスバーにlocalhost:8888と入力してアクセスしてみてください。
追加情報
最初は、Mac + XAMPP + CakePHP3 + Composerで開発環境を整えようと思ったのですが、ダメでした。
MacとXAMPPの相性が悪かったようです。
CakePHP3 をComposerでインストールしてみても、ブラウザに
「Fatal error: You must enable the intl extension to use CakePHP. in /Applications/XAMPP/xamppfiles/htdocs/bookmarker/config/bootstrap.php on line 27」
というメッセージが表示されてダメでした。
調べてみると、PHPにintlが入っていないからエラーであるとのこと。
解決方法は、php.iniのintl.dllのコメントアウトを外せば良い、とのことでしたが、外しても解決できませんでした。
というか、dllファイルってWindowsの話であって、Macには関係ないのでは?
結局のところ、XAMPPでは解決できなかったので、MAMPで開発環境を整えてしまいました。
皆さんもMAMPをオススメします。
以上です!
ノシ
PS
MAMPのインストール後は、標準で入っている(もしくは自ら入れた)PHPとMySQLをアンインストールして、MAMPのPHPとMySQLのパスを通すことをオススメします。
2つ入っている状態だと互いに干渉しあって上手くいかないことが多々あります。
スポンサーリンク
関連記事