
Ubuntu日本語フォーラム
ログインしていません。
PHPのデバッグツールについて調べています。
以前、会社の仕事でPHPを使用したWebアプリケーションを開発していたのですが、
デバッグツールの設定の方法などが分からず、"var_dump"、"print"メソッド、
"echo"などを使用して変数の値やセッション値などを画面に表示させて確認
したりしていました。
現在は独学でたま〜にPHPをコーディングしたりするのですが、効率よくコーディング
が進められないかなとデバッグツールについて調べています。
開発環境は使用OSにUbuntu9.04、エディタはviエディタを使用することを考えています。
PHPのバージョンは5.2.6を使用します。
(NetBeansの使用も考えていたのですが、途中で挫折・・・。)
簡単に設定できるデバッグツールや具体的な設定方法をご存知の方、ご教授お願いします。
オフライン
LinuxサーバーのPHPウェブページをWindowsクライアントからリモートデバッグできるツールがないかと
探したところXDebugというツールがあるみたいです。
まだ、インストールして試していないので試してみます。
それにしても、どのページもPDT(Eclipse)がらみが多いですね〜。
オフライン
とりあえず、XDebugをインストールしてみました。
1)php5,php5-devをインストールしていなかったのでまずはインストール
sudo aptitude install php5
sudo aptitude install php5-dev
2)XDebugをインストールするにはpeclを使ってインストールすることにしました。
それにはphp-configとphpizeがパスが通っていることが必要とのこと。
早速確認。。。
which php-config ---->OK
which phiize ---->OK
3)以下のコマンドを実行
sudo pecl install xdebug
4)php.iniを開く
vi /etc/php5/apache2/php.ini
5)次の一文を追加
(どこに書くのかわからないが、Dynamic Extensionsというところに書きました。)
extension=xdebug.so
6)Apacheを再起動
sudo apache2ctl restart
適当にphpコードを作成して表示してみたところ、ブラウザ表示でvar_dumpの箇所に
色がついて見やすくなりました。(以前は色がついていなくて見にくかったので)
IDEの設定も検討しているところですが、NetBeansでチャレンジを続けてもデバッグできず・・・。
お手上げです。。。(T T)
とりあえず、エディタにviを使用してデバッグできるようにはなりました。。。
オフライン
php5-xdebug というパッケージがあるので、そっちを使う方が設定とかは若干楽かもしれません。
あと Ubuntu では apache2ctl よりも /etc/init.d/apache2 を使うのを推奨しているらしいです。
どう違うのかは知りませんが…。
オフライン
epiiさん
epii による投稿:
php5-xdebug というパッケージがあるので、そっちを使う方が設定とかは若干楽かもしれません。
あと Ubuntu では apache2ctl よりも /etc/init.d/apache2 を使うのを推奨しているらしいです。
どう違うのかは知りませんが…。
確かに過去にも「Ubuntuでは/etc/init.d/apache2 [オプションを]をapache2ctlよりも推奨しています」との
フォーラムがありますね。
https://forums.ubuntulinux.jp/viewtopic.php?id=5348
ただ、どうしてapache2cltよりも/etc/init.d/apache2を推奨するのかはわかりません。
理由は分からないけれど、とりあえず、apache2の起動や再起動は/etc/init.d/apache2を使うべきということで
認識しました。情報の提供ありがとうございました。
オフライン
#5の eng16danboさん による投稿:
確かに過去にも「Ubuntuでは/etc/init.d/apache2 [オプションを]をapache2ctlよりも推奨しています」とのフォーラムがありますね。
https://forums.ubuntulinux.jp/viewtopic.php?id=5348
ただ、どうしてapache2cltよりも/etc/init.d/apache2を推奨するのかはわかりません。
件の「/etc/init.d/apache2 を推奨」の投稿をした本人です
推奨理由は、実際に /etc/init.d/apache2 の内容 (単なるシェルスクリプト、つまりテキストファイル) を見てもらえれば或る程度は理解できると思います
実際のところは、/etc/rc2.d/apache2 を直接実行するのと比べてもほとんど差はないのですが、Apache2 を再起動 (restart)するときに既存のインスタンスが確実に終了したことを確認していたり、mod_chache を使ったときのキャッシュの消去を行っていたりというように、細かな点に違いがあります
また、ubuntu の起動時に Apache2 も一緒に起動するようにしている (大抵はそうなっているはず) なら、これも /etc/init.d/apache2 start を実行すること (実際にはシンボリックリンクされている /etc/rc2.d/apache2) で実現しているので、整合性を取るためにも、直接 /usr/sbin/apache2ctl を実行しない方がいいといえます
若干オフトピ気味ですが、補足ということで
オフライン
ry による投稿:
#5の eng16danboさん による投稿:
確かに過去にも「Ubuntuでは/etc/init.d/apache2 [オプションを]をapache2ctlよりも推奨しています」とのフォーラムがありますね。
https://forums.ubuntulinux.jp/viewtopic.php?id=5348
ただ、どうしてapache2cltよりも/etc/init.d/apache2を推奨するのかはわかりません。件の「/etc/init.d/apache2 を推奨」の投稿をした本人です
推奨理由は、実際に /etc/init.d/apache2 の内容 (単なるシェルスクリプト、つまりテキストファイル) を見てもらえれば或る程度は理解できると思います
実際のところは、/etc/rc2.d/apache2 を直接実行するのと比べてもほとんど差はないのですが、Apache2 を再起動 (restart)するときに既存のインスタンスが確実に終了したことを確認していたり、mod_chache を使ったときのキャッシュの消去を行っていたりというように、細かな点に違いがあります
また、ubuntu の起動時に Apache2 も一緒に起動するようにしている (大抵はそうなっているはず) なら、これも /etc/init.d/apache2 start を実行すること (実際にはシンボリックリンクされている /etc/rc2.d/apache2) で実現しているので、整合性を取るためにも、直接 /usr/sbin/apache2ctl を実行しない方がいいといえます
若干オフトピ気味ですが、補足ということで
ryさん
わかりやすい解説ありがとうございます。
/etc/init.d/apache2の推奨理由についてよく理解することができました。
ありがとうございます。
オフライン