Tweet
XREA/CORESERVER でPHP CGIモードでヘッダーが正しく出力されない
coreserverにて、PHPを.htaccessで"AddHandler application/x-httpd-phpcgi .php"としてCGI版PHPで動かすと自動的に content-type text/html が出力されてしまう。
強制的に text/html でヘッダを返すため、場合によっては不具合が発生することがある。
・対策方法1
.htaccessで以下の設定を行う
AddHandler application/x-httpd-phpcgi .php
RemoveHandler .php
・対策方法2
拡張子を.phpから.cgiに変更して一行目に"#!/usr/local/bin/php -q"を追加
CGI版ではなくCLI版で動かして出力結果を得る。
■CGI版PHP の問題点
・PHP を CGI モードで動作させた場合の問題点として、正しい HTTP レスポンスヘッダを返さないことがある(自動的にヘッダが出力されるため)。
対策方法まとめ:
CLI版を使うか、ApacheのRemoveHandlerを利用する。Apache - RemoveHandler ディレクティブ
RemoveHandler ディレクティブ は与えられた拡張子に関連付けられたハンドラを取り消します。 これにより、サブディレクトリにある .htaccess ファイルが親ディレクトリやサーバの設定ファイル から継承した関連付けを取り消すことができます
■参考リンク
Apache - RemoveHandler ディレクティブ
PHP CGI版を使うと、Content-type が text/html で上書きされる
PHP をコマンドラインから使用する
PHP CLI/CGI SAPI
関連記事
- Pukiwiki スキン(html , css)のカスタマイズ
- 3分で完了する Nucleus3.41 インストール(Windows + XAMPP)
- XREAのWordPressでアップロードした画像が表示されない
- Pythonプログラムをウィンドウを開かずにC#から実行
- EmEditorでPHPの実行結果を出力させる