file_put_contentsで作ったファイルにアクセスできない。
私の場合のケースをメモする。
ドキュメントルートに.htaccessを以下の記述で置いた。
#PHPコードをhtml拡張子で実行可能にする AddType application/x-httpd-php .html
この設定をするのは、例えば、以下の理由。
- MovableTypeを、PHPで操作する時。
- わざわざ、スクリプトの種類を教えてあげたくない時。
これも、みんながやっていると思う。でも、ルートにおいてやるべきことではなかった。
以下のようなPHPスクリプトを書く。
その上で、test.htmlにアクセスすると。
Warning: Unknown: SAFE MODE Restriction in effect.
The script whose gid is 1000 is not allowed to access
/virtual/.../public_html/index.html
owned by uid 1000 in Unknown on line 0
というエラーが出た。
AddType application/x-httpd-php .html をエスケープすれば、エラーなく閲覧できる
最近は、blogをインストールすると、大抵、mod_rewrite 使っていたり、ディレクトリをプログラムで作る為に、CGIで動作させるような必要性に駆られることも少なくない。
Unknown on line 0 だと、原因にたどり着くまで、結構辛い。
phpでパースするようにしたhtmlファイルの設定を戻す。
設定の方法は、いろいろな説明があるんだけれど、設定したものを、戻すとかリセットするとかの説明は、とても見つけにくい。
AddType application/x-httpd-php .html をルートで設定すると、下位のhtmlはすべて、phpでパースされる。
どうする。
見つかった方法
(一旦offで次行にonで、htaccessの設定が初期化するなんて事は ない 様子)
- AddType text/html html で、元に戻す。
(AddType application/x-httpd-php .phpではうまくいかない。)
(php_flag_engine offにしてから、エスケープ addtype追記しないとうまく行かないのはどうしてだろう。)
(このあたりが本当なのかな、、、、)