CentOSにパッケージングされていたApacheでErrorDocument 403を設定しました。
が、うまくいきません。
apacheのエラーログに/error/noindex.htmlが見つかりませんというようなメッセージが出力されています。
/error/noindex.htmlファイルを作成してみると、それが表示されます。
googleで「noindex.html errordocument」検索すると、noindex.html @ 予定は未定であって決定ではないがヒットしました。
そのページを見て原因がわかりました。
(ありがとうございます。助かりました。)
conf.d/welcome.confに記述してある内容をすべてコメントアウトして、ErrorDocument 403で指定したページを表示できました。
CakePHP(1.2.1.8004)で携帯サイトを作るためのセッションの設定メモです。
携帯から接続した場合、セッションIDをURLに付加することにします。
そして、認証を行わないと見ることができないページを作るとき、そのページを見るには、基本的に端末IDを送信してもらうことにします。
IISでCakePHP(1.2.1.8004)を動かしてみました。
IISは、「Windows Server 2003 R2 180 日間 限定評価版」にインストールしました。
IISにはapacheのmod_rewriteに相当するものをインストールしていない状態です。
WindowsクライアントからLinuxサーバーのPHPウェブページをリモートデバッグする設定のメモです。
Windows(XP SP2)には、EclipseのPHP開発用プラグイン「PDT」をインストールします。
「PDT」は、Xdebugクライアントになります。
Xdebugは、Xdebugインストールメモのようにインストール済みです。
PDTインストール
PDTは、PDT Projectから「PDT All-in-One」パッケージをダウンロードしました。
(ダウンロードしたファイルは、pdt-all-in-one-S20071213_M1-win32.zipです。)
インストールは、zipファイルを適当なフォルダに解凍するだけでOKのようです。
(JVM(Java virtual machine)は必要)
サーバーの設定
デバッグするファイルは、次のようなパスにあるものとします。
| ドキュメントルート | /var/www/html |
|---|---|
| デバッグ対象ファイル | /var/www/html/rd/index.php |
| デバッグ対象URL | http://test.localdomain/rd/index.php |
/var/www/html/rd/index.phpは、次のようなものにします。
.htaccessにXdebugの設定
ドキュメントルートの.htaccessには、次のような設定を行います。
php_flag xdebug.remote_enable On
php_value xdebug.remote_handler dbgp
php_value xdebug.remote_host 192.168.0.XX
この例では、xdebug.remote_hostには、WindowsクライアントのIPを指定しています。
PDTプロジェクト作成
eclipse.exeを起動します。
初めてeclipseを起動するときには、Workspaceの作成を聞かれると思います。
プロジェクトの新規作成
1.メニューの[File]->[New]->[Project]をクリック。
2.[PHP Project]を選択して、[Next]ボタンをクリック。
3.Project Nameを適当に入力して、[Finish]ボタンをクリック。
この例では、[Use efault]のチェックを外して、「H:\test」を指定しています。
![]()
4.サーバーのファイルをWindowsクライアントにコピー。
サーバーのファイルとローカルファイルは、次のような対応にしました。
| サーバーのファイルパス | /var/www/html/rd/index.php |
|---|---|
| ローカルのファイルパス | H:\DocumentRoot\rd\index.php |
5.ローカルファイルをプロジェクトに追加。
プロジェクト名を右クリックして表示されるメニューの[Import]をクリックして、ローカルのファイルをインポートします。
![]()
![]()
[Finish]ボタンをクリックして完了。
PDT デバッグ設定
1.
メニューの[Run]->[Open Run Debug...]をクリックします。
2.
[PHP Web Page]をダブルクリックして、デバッグ設定を作成します。
主な設定は、次のようになります。
| Server Debugger | Xdebug |
|---|---|
| PHP Server | サーバー一覧が表示されていない場合は、[New]ボタンをクリックして作成します。 デバッグ対象があるサーバー名を指定します。 |
| File | プロジェクトに追加したファイルを指定します。 |
| URL | デバッグ対象のURLを指定します。 |
3.
[Apply]ボタンをクリックして、設定を保存します。
PDT デバッグ実行
メニューの[Run]->[Debug]をクリックします。
デフォルトでは、ブレークポイントを設定しなくても、PHPスクリプトの先頭でデバッガが処理を停止します。
次のキャプチャは、[F5]キーを押しながら関数の中まで入ったところです。
その他
Windows(XP SP2)には、COMODO Firewallをインストールしています。
最初、ファイアーウォール(COMODO Firewall)にブロックされて、PDTでデバッグできるまで少し手間取りました。
COMODO FirewallのApplication Control Rulesで、次の設定を行いました。
- IEXPLORE.EXEの設定で、親がeclipse.exeの場合、MiscellaneousのAllow invisible connection attemptsにチェックを入れる。
(一度、すべてのIEXPLORE.EXEの設定の設定を削除後、[Run]->[Debug]すると、COMODO Firewallが許可するかどうか聞いてくるかも。)
eclipseはとても重いというイメージがありましたので、軽快に動作するのが意外でした。
僕はemacsで作業することが多いですが、PDTでのデバッグをときどき利用したいと思います。