CakePHPをインストールする方法

ひさしぶりにCakePHPをインストールしたので,手順をメモしておきます.

1. osxにMAMPをインストール

XAMPPを使用する方法もあるが,私にはMAMPを使用した方が簡単だった.
mod_rewrite.soなど使用できる状態か?httpd.confファイルの設定を確認しておく.

2. PHP intlが有効化確認する

php -i | grep intl

有効でないなら,php.iniの設定を確認する.

extension=php_intl.so

3. Composerをインストール

curl -sS https://getcomposer.org/installer | php

パスが通った場所に移動しておく

mv composer.phar /usr/local/bin/composer

コマンドとして認識できているかテスト

composer

4. CakePHPをセットアップする

composer create-project --prefer-dist cakephp/app cake3アプリ名

MAMP をアンインストールして,再セットアップした話

MySQL が不調だったので,MAMP を AppCleaner でアンインストールして再セットアップしました.

結果,問題なく動作しました.という話.
普段あまり使用しないマシン環境で問題が発生.調査するまでもない場合は,サクッとアンインストールして,再セットアップするのもよいなーと気づきました.(約 10 分で作業完了です)

もちろん MAMP と MAMP Pro の2つを削除対象とします.

▼ テスト環境
macOS Sierra 10.12.6
MAMP 4.2
AppCleaner 3.4

PHP Storm の Xdebug 設定で困ったら確認する点

先日,何度も行っている PHP Storm の Xdebug 設定が行えず,少し調べたのでメモしておきます.

▼ 使用している環境

MAMP バージョン4.1.1 (492)
PHP Version 7.0.15
PhpStorm Version 2017.1.4

PHP Storm にてデバッグが行えない場合,以下の点を確認します.

・PHP Storm にてデバッグの設定がされているか?
・php.ini に xdebug の設定がされているか?
・php.ini の xdebug 設定が適切か?
・xdebug が動作しているか?

PHP Storm のデバッグ設定についてはたくさん情報が公開されているので,あまり間違いはないかと思いますので,ざっと以下の事柄を確認すればよいかと思います.

▼ PHP Storm の PHP Server設定

Preferences > Languages & Frameworks > PHP > Debug
xdebug のデバッグポート番号を確認します.

Preferences > Languages & Frameworks > PHP > Servers
MAMP を使用している場合,正しくポート番号などが設定されているか?確認します.

▼ PHP Storm の リモートデバッグ設定

RUN > Edit Configurations…
Defaults > PHP Remote Debug
一応,こちらも Preferences の設定が反映されているか?確認します.

次に php.ini に xdebug の設定がされているか?確認します.
適用されている php.ini ファイルは環境により異なりますので,phpInfo により確認します.
私の場合,MAMP を使用しているので,MAMP の phpInfo より以下の項目を確認しました.

▼ phpInfo から .ini ファイルを特定する

Loaded Configuration File」項目の設定を参照する.
/Applications/MAMP/bin/php/php7.0.15/conf/php.ini

▼ xdebug 設定

上記の .ini ファイルを開き,[xdebug] セクションを確認します.
問題があった環境では以下のような設定になっていました.
一見問題がないような気がしますが,「xdebug.remote_connect_back」が設定されているとデバッグが行えないことがあるようです.

zend_extension="/Applications/MAMP/bin/php/php7.0.15/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"
; zend_extension="/usr/libexec/apache2/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.profiler_enable = 1
xdebug.profiler_output_dir="/var/tmp/xdebug"
xdebug.idekey = "PHPSTORM"
xdebug.remote_connect_back = on   // ここが問題だった

remote_connect_back をオフにして動作を確認します.
私の環境では,この設定がオンになっていたためデバッグできなかったようです.

xdebug.remote_connect_back=0
または
xdebug.remote_connect_back=off

xdebug.remote_connect_back は,Xdebug 2.1 から追加された設定で xdebug.remote_host をコメントアウトして,この設定を追加すると,複数のリモート バッグ環境に対応できるとのこと.

▼ ブックマークレットを使わずに,常にデバッグするには

xdebug の設定で,idekey を設定して,remote_autostart をオンにしておけばよいようです.

xdebug.remote_autostart=1

参考:This section describes all available configuration settings available in Xdebug.

設定を変更した際には,サーバの再起動を行います.
再度,phpInfo で xdebug が有効になっているか確認します.

▼ xdebug が動作しているか?

ターミナルを開き,以下のコマンドで確認することができます.

$ lsof -n -P -i :9000

環境によっては,ポート番号: 9000 でデバッグできず,9001 などにされている方もいるようです.

上記の事柄が問題なければ,ツールバーにある「listen php debug connections」をクリックします.
スタートするとアイコンの上部が緑色になるはずです.

では!