WindowsでPHPビルトインサーバを使うときの注意
2015年02月18日 22:13
PHPをWindowsにインストールしてビルトインサーバでスクリプトを動かした時に少々ハマりかけたことがあったのでメモ。
PHPのビルトインサーバは起動時のカレントディレクトリがドキュメントルートになります。
ところがそのディレクトリ名に日本語が含まれると、ブラウザで動かした時にエラーが表示されました。
ソースコード自体に問題が無くてもFatal Errorが出てしまい、スクリプトが全く動作しません。(´・ω・`)
しかし、サーバ自体は普通に起動するので一見分かりません。
ちなみに検証したソースコードの中身はphpinfo()を動かすだけです。
<?php phpinfo(); ?>
検証なう
動作環境は Windows7 64bit + PHP5.6
※PHPのインストールディレクトリにパスが通っているとします。
// 正常に動作したディレクトリ(英数字のみ) D:\PHPLibrary\test> php -S localhost:8000 // エラーが出たディレクトリ(日本語が含まれる) D:\PHPLibrary\web構築用フレームワーク\てすと2> php -S localhost:8000
まとめ
不思議なことに日本語が含まれていても問題が発生しないパターンもありました。
もう少し調べていて上記エラー例の「構」を取ったところ、動きました。
// 正常に動作したディレクトリ(日本語が含まれる) D:\PHPLibrary\web築用フレームワーク\てすと2> php -S localhost:8000
これはWindowsがShift_JISであることが原因なんでしょうかね?
いずれにせよ「どの文字が問題か?」など調べようが無いので、ディレクトリパスは全て半角英数であることが確実だと思えば良いでしょう。