■IIS 7.5 で phpinfo() 動作しない環境の修復
ほんまでっか?!
という ケアレスミスによる相談がありました。
WebMatrix (IISExpress) によるステージング環境を作ったものを IIS へ発行すると動作するアプリケーションはあるのに、基本的な phpinfo() が表示されない。
<目的>
コンソール(Windows プロンプト)から
c:PHP>php -info
の結果は表示されるのに、 C:inetpubwwwroot 配下に置いたhoge.php が表示させたい。
<?php phpinfo(); ?> ← hoge.php の中身
—
<顧客トライ&エラー内容>
IIS FastCGI 設定問題は克服している。
http://technet.microsoft.com/ja-jp/library/ff454003.aspx ← ここをご覧になられ設定し IIS 再起動により ↑ が表示しなくなった。
しかし、依然 phpinfo スクリプトが表示されない。
===
<当社サポート内容>
1.コンソール(Windows プロンプト)から
c:PHP>php -info
の結果をテキストファイルで参照したかったので
c:PHP>php -info > c:phpphpinfo.txt
を、発行していただき
問題となっているファイル hoge.php と php.ini ともに送付いただいた。
↓
2. それぞれ.エンコード情報を見ると
phpinfo.txt = Shift_JIS
hoge.php = UTF16 BOM付
php.ini = Shift_JIS
また、php.ini 内のデフォルトキャラクタ設定を見ると
; PHP's default character set is set to empty. ; http://php.net/default-charset ;default_charset = "iso-8859-1"
コメントアウトされたままでした。
↓
3. 当社で php.ini を修正し、エンコードShift_JIS で保存しました。
(修正内容)
; PHP's default character set is set to empty.
; http://php.net/default-charset
default_charset = "utf8"
また、hoge.php を エンコード UTF8 で保存しました。
↓
4. 顧客から
「どこが修正されたのか分からないけど動作するようになった」
との回答でしたので、
定義ファイル(アプリケーション/システム)と
PHP ソースそれぞれのエンコード種類
についてご説明しました。
以上