Mac で Symfony2 を NetBeans から動かせるようにする

準備

php、apache2のインストールはこちらを参考にしてください。
Macで Apache2 + PHP 環境を作成する - kaji_3's blog

NetBeans

phpのIDEとしてNetBeans を利用します。

インストール

NetBeans NetBeans 日本語サイトからダウンロードしてインストールしてください。

Symfony2 プロジェクトの作成の仕方

Symfony2 zip 版のダウンロード

NetBeansのSymfony2 のプラグインがzipを指定するため、zip 版をダウンロードします。
ダウンロード後、適当な場所に保存してください。私はアプリケーションの直下に置きました。

次にSymfony2 のプラグインをインストールします。
NetBeansを起動して「ツール」→「プラグイン」から検索してインストール。
f:id:kaji_3:20120416222813p:plain

で、「ファイル」→「新規プロジェクト」から新規プロジェクトを作成します。
PHP」→「PHPアプリケーション」を選択します。
f:id:kaji_3:20120416215039p:plain

プロジェクト名を入れます。
f:id:kaji_3:20120416215131p:plain

実行構成はそのままにします。
f:id:kaji_3:20120416215215p:plain

PHPフレームワークとして、Symfony2を選択します。
f:id:kaji_3:20120416222934p:plain

オプションをクリックし、Symfony2の場所を指定します。
f:id:kaji_3:20120416222949p:plain

元の画面に戻って「完了」をクリックすると、
プロジェクトが作成されます。
f:id:kaji_3:20120416223256p:plain

プロジェクトの実行

NetBeans で実行としても動きません。
Apacheのalias としてプロジェクトを追加する必要があります。

$ cd /opt/local/apache2/htdocs
$ sudo ln -s /Users/hoge/NetBeansProjects/tajadol-php/web/ ./tajadol-php

プロジェクトのcache、logsに書き込み権限を与えます。
(本当はもうちょっと丁寧にapacheユーザだけなどにするのですが。。)

$ cd app
$ chmod 777 cache
$ chmod 777 logs


タイムゾーンをphp.iniに追記します。

sudo vi /opt/local/etc/php5/php.ini

以下を追記、

date.timezone = Asia/Tokyo

PHP5-SQLITEのインストール

$ sudo port install php5-sqlite
$ sudo /opt/local/apache2/bin/apachectl start

確認

http://localhost/tajadol-php/app_dev.phpにアクセスします。

デバッグ

Xdebugをインストールします。
ただし、php5はmacportsでインストールしたので pecl を使います。

$ sudo pecl install xdebug

で、デバッグ設定を php.ini に追加。

$ sudo vi /opt/local/etc/php5/php.ini
[xDebug]
[xDebug]
zend_extension="/opt/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable = on
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port=9000

で、Apache再起動。

$ sudo /opt/local/apache2/bin/apachectl start

参考
MacPorts でインストールした PHP5 に xDebug を導入する - TMD45LOG!!!

しかし、NetBeans からデバッグできない!
なぜだ!という事で続く。。

解決しました。以下のエントリをご参照ください。
Symfony2 を NetBeans でデバッグする - kaji_3's blog