HTMLファイルをPHPファイルとして動かすための前準備

先日投稿した「PHPを使ってサイト運営を楽にしよう!~共通部品を外部ファイルで一括管理編~」というNoteでもちらっと書いたのですが、「個人サイトで拡張子が.phpなのはちょっと……」派なため、HTMLファイルをPHPファイルとして操作できるようにひと手間かけています。
なんとなくですが、ブログサイトならともかく、ベタ打ちサイトでプログラム感は出したくないのですよね……
あとHTML部分なら面倒くさい事しなくてもブラウザで挙動チェックできるのも利点です。

というわけで、.htaccessを使ってサーバー上でHTMLファイルをPHPとして扱えるようにする方法を紹介します!

手順その1:HTMLファイルをPHPとして動かせるように設定する

基本的に.htaccessファイルに↓を追記してルートディレクトリ(サイトのデータが丸っと入っているディレクトリ)にアップロードすればOK

AddType application/x-httpd-php .php .html
AddHandler application/x-httpd-php .php .html

ただし個人サイト・同人サイトを持つみんなが大好きさくらのレンタルサーバーだけはちょっと別の手段が必要です。
まずテキストエディタなどでphp.cgiというファイルを作成し、次のコードをコピペして保存します。

#!/bin/sh
exec /usr/local/bin/php-cgi

そしてサイトのトップページと同じディレクトリにアップロードしてパーミッションを705に設定しましょう。
次に.htaccessファイルに次のコードを記述します。

Action myphp-script /php.cgi
AddHandler myphp-script .php .html

こちらはトップページと同じディレクトリにアップロードするだけでパーミッションの変更は不要です。
これでさくらのレンタルサーバー上でもでHTMLファイルをPHPファイルとして使えるようになりました!

手順その2:ファイルの文字コードをUTF-8に変換する

サーバー側の準備ができたら、次はHTMLファイルの文字コードをUTF-8に変更する必要があります。

初めからサイトをUTF-8で作っていたり、イチから新しく作るのならファイルをUTF-8で保存すればいいのでこの手順は不要です。
だけど作ったサイトを改装しようとしているとか、前に作ったファイルをちょっと改造するだけだとか、あとPHPを使うのは一部のファイル/ディレクトリだけという場合でも、PHPを使わないファイルもすべてUTF-8に変換しなくてはなりません。

ちなみに一部だけってのはどういう状況だ?と思われるかもしれませんが、例を挙げると↓のような状況です。

メインサイト:example.server.com←PHP使う
別ジャンルサイト1:example.server.com/sub1←PHP使わない
別ジャンルサイト2:example.server.com/sub2←PHP使う

この場合、.htaccessファイルをexample.server.comで指定してるディレクトリに投入するのですが、そうなると下層のsub1もsub2も影響を受けます。
sub2はPHPを使うので問題ないですが、注意するべきはsub1。
このサイトをUTF-8で作っていたならOKですが、Shift-JISだった場合、どえらいことになります。
というかなりました。(やらかし済み)

で、「どう対処すればいいのよ?」となりますが、すべてのファイルをエディタで開いて文字コードを指定しなおして保存の作業を繰り返すとか、面倒くさいの極みですよね。
それが極小サイトで合計ファイル十数個程度だったとかならともかく、長編ばんばん書いてたりしたら、ファイル数100越えとかザラです。
じゃあどうするのかと言えば、そんな時は文字コードを一括で変換してくれるソフトをぜひ活用しましょう!
ちなみに私はNonSoftさんの「文字コード判定&変換ツール.NET」を使いました。

ざっくりとした設定内容はこんな感じ。
・入力ファイルまたはフォルダ:サイトデータの入ってるフォルダを指定
・入力文字コード:自動判別
・出力ファイルまたはフォルダ:事故防止のため別フォルダを指定
・文字コード:UTF8
・改行コード:CRLF
・BOM有無:無し
・対象拡張子:htmlとcss
・サブフォルダも対象:チェックを入れる
この状態で出力してしばらく待つと、HTMLファイルとCSSファイルがすべてUTF-8に変換されます。
ちなみに対象拡張子を全部にして画像をバグらせたお馬鹿さん(私)もいるので、対象拡張子は的確に指定しましょう!

あとはファイル内で指定している文字コードですが、こいつも一括置換ソフトで対応しましょう。
個人的なおすすめは、以前書いた電子書籍作成の記事でも推してた一括置換ソフトのDevasです。
これでSHIFT-JISをUTF-8に一括置換すれば、文字化けの心配はなくなります。

というわけで、便利なPHPを使ってぜひ個人サイト・同人サイトを作りましょう!

この記事が気に入ったらサポートをしてみませんか?