(2014/01/02) CakePHP で開発をしていると、ステップ実行の機能が欲しくなってきます。Windows に Xampp 等を入れればデバッグできなくはないですが、どうしても Linux に比べて機能が限られるので、最初から Linux 上でデバッグができるのであればその方が楽です。というわけで、Linux の X(Gnome) に対して Windows からログインできる環境を作ります。使用するログイン ID で、ローカルの Gnome 環境からログインできることが前提です。
なお、VNC によるリモートログインの環境が必要になるのは、CakePHP でコンソール・アプリケーションのステップ実行をしたい場合に限ります。Web アプリのデバッグができればよいのであれば、必ずしも VNC を導入する必要はありません。Windows 側に直接 Eclipse+PDT なり Netbeans+PHP を導入することでデバッグが可能です。
例示におけるプラットフォームは VMware vSphere 上の VM に入れた CentOS 6.5(64bit) です。インストール時のパッケージグループとしては Software Development Workstation を選択しました。PHP 5.5 + CakePHP 2.4.4 のインストールについてはCakePHP のインストールを参照してください。
クライアント側は Windows 7 64bit Home で、PHP や Apache の実行環境は入れていません。
Linux 側に VNC Server を導入します。
root@nigeria:~# yum install tigervnc-server
次にログインユーザに対して VNC 専用のパスワードを設定します。
m-hotta@nigeria:~$ vncpasswd
Password:
Verify:
ここではユーザ毎にサービスを起動する方法を取ります。画面の解像度は使っているモニターに合わせて適宜調整します。
m-hotta@nigeria:~$ vncserver :1 -autokill -geometry 1280x1024
New 'nigeria:1 (m-hotta)' desktop is nigeria:1
Starting applications specified in /home/m-hotta/.vnc/xstartup
Log file is /home/m-hotta/.vnc/nigeria:1.log
サーバ側の設定は以上です。次はクライアント(Windows)側です。
Windows 側に VNC Viewer を導入します。今回は Ultra VNC Viewer を使いました。窓の杜 等からお使いの Windows に合ったものをダウンロードしてインストールします。
インストールが終わったら起動します。VNC Server として Linux ホストまたは IP アドレスを指定して接続します。
認証ダイアログが表示されるので、vncpasswd コマンドで指定してパスワードを指定してログインします。
以上です。何かおかしくなったらサービスを終了してから再起動してみてください。
m-hotta@nigeria:~$ vncserver -kill :1 Killing Xvnc process ID 23914 m-hotta@nigeria:~$ vncserver :1 -geometry 1280x1024
CakePHP のコンソール・アプリケーションのステップ実行を行うには、CLI アプリのデバッグ方法を参照してください。なお PHP 5.6 からは The PHP Debugger というのが取り込まれるようなので、もう少しデバッグが楽になりそうと期待しています。