CoreServer で PHP CGIモード(セーフモード:オフ)

セーフモードの回避策で、

AddHandler application/x-httpd-phpcgi .php

とするのだが、CGI版のPHPを動かすということである。
しかし、CGIのPHPでも問題がある。

HTTPのレスポンスヘッダーが常に Content-Type: text/html としてしまう。

CGIのPHPでFireFoxを使って管理画面が崩れてしまうのは、このせいである。
この回避策として、load-styles.phpのみをモジュール版に戻すという手段もあるが、他の手段としてphp.ini を各ディレクトリに設置するということをする。記述は下記の通り。

cgi.nph = 1
default_mimetype =

default_charset =

しかし、次の条件の時はまだ足らない、

  • セーフモード:オフでないとならない場合。かつ、
  • レスポンスヘッダーがPHPで設定したContent-Typeでならないとき。かつ
  • レスポンスヘッダーがStatus:304でならないとき。

このとき、なにが足らないかというとStatusが常に200となってしまう。
一応回避策はあって、

  • 先頭行に、#!/usr/local/bin/php -q とする。
  • アクセス権を755とする。
  • .htaaccess でなどで該当ファイルを
    AddHandler cgi-script .php とする。

でも、この方法は面倒だなぁ。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>