お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-09-19 10:00:33

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

PHPのデバッグツール

PHPのデバッグツールについて調べています。
以前、会社の仕事でPHPを使用したWebアプリケーションを開発していたのですが、
デバッグツールの設定の方法などが分からず、"var_dump"、"print"メソッド、
"echo"などを使用して変数の値やセッション値などを画面に表示させて確認
したりしていました。

現在は独学でたま〜にPHPをコーディングしたりするのですが、効率よくコーディング
が進められないかなとデバッグツールについて調べています。

開発環境は使用OSにUbuntu9.04、エディタはviエディタを使用することを考えています。
PHPのバージョンは5.2.6を使用します。
(NetBeansの使用も考えていたのですが、途中で挫折・・・。)

簡単に設定できるデバッグツールや具体的な設定方法をご存知の方、ご教授お願いします。

オフライン

 

#2 2009-09-25 23:01:09

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

Re: PHPのデバッグツール

LinuxサーバーのPHPウェブページをWindowsクライアントからリモートデバッグできるツールがないかと
探したところXDebugというツールがあるみたいです。
まだ、インストールして試していないので試してみます。
それにしても、どのページもPDT(Eclipse)がらみが多いですね〜。

オフライン

 

#3 2009-09-26 10:25:51

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

Re: PHPのデバッグツール

とりあえず、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を使用してデバッグできるようにはなりました。。。

オフライン

 

#4 2009-09-26 13:59:29

epii
メンバ
登録日: 2008-12-11

Re: PHPのデバッグツール

php5-xdebug というパッケージがあるので、そっちを使う方が設定とかは若干楽かもしれません。

あと Ubuntu では apache2ctl よりも /etc/init.d/apache2 を使うのを推奨しているらしいです。
どう違うのかは知りませんが…。

オフライン

 

#5 2009-09-26 21:15:22

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

Re: PHPのデバッグツール

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を使うべきということで
認識しました。情報の提供ありがとうございました。

オフライン

 

#6 2009-09-27 07:55:34

ry
メンバ
登録日: 2008-07-30

Re: PHPのデバッグツール

#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 を実行しない方がいいといえます


若干オフトピ気味ですが、補足ということで

オフライン

 

#7 2009-09-27 08:43:11

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

Re: PHPのデバッグツール

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の推奨理由についてよく理解することができました。
ありがとうございます。

オフライン

 

Board footer

Powered by FluxBB