2015年10月15日

サーバで使われているPHPのバージョンを思い切って最新まで上げてみた(5.4⇒5.6)

今夜は訳あって早々に帰宅できたため、思い切ってPHPのバージョンを最新まで上げてみました。
PHP 5.4からPHP 5.6.11へ。

なぜ今日の今日まで躊躇っていたのかというと、default_charsetがUTF-8になってしまうため、様々なPHPの関数の動きがUTF-8を前提としたものに変わってしまう他、レスポンスヘッダに

Content-Type: text/html; charset=UTF-8

が付いてしまいます。
これが付いていると、HTMLのヘッダに

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

が入っていても、ブラウザはUTF-8として解釈しようとして、文字化けが発生します。

当サイトでは、比較的最近作り始めたページについてはUTF-8で書かれていますが、歴史的な都合上、トップページを始めとしてShift-JISで書かれたページが数多く存在しており、そういったページが全て文字化けします。

さらに、さくらのレンタルサーバ上で、拡張子htmlのファイルをPHPに解釈させるためのテクニックが諸々入っている都合で、各ドメイン毎にPHP関係の設定があれこれされています。

最も良い、あるべき姿としては、全てのファイルをUTF-8に切り替えることですが、ファイル数が多く、難しいため、各ドメイン毎のPHP関係の設定をいじることにしました。

具体的には、php.inidefault_charset="" を書き込むことにより、PHP 5.6より既定となった default_charset="UTF-8" を忘れさせてやることなのですが、この設定を、各ドメイン毎のPHP関係の設定に、一斉に行わなければなりません。

ちょっと焦りながらだったので、何回か失敗してしまい、むしろ設定に時間がかかってしまいました。
そんなわけで、本日の20:30〜21:00頃、訪問されていた方がいたとしたら、ブログとミニブログといくつかのページ以外が、すべて文字化けしていたかと思います。ご迷惑をおかけしました。

いずれは、すべてのページをUTF-8化すべく、頑張りたいと思います。


…とはいえ、Web版ヘルプのページのような、他のプロジェクトと密接な関係があってShift-JISになっているページもあるので、なかなか難しい…。


posted by ayacy at 21:19 | Comment(0) | TrackBack(0) | サーバ運用