はじめに
普段遣いのmacにwebサーバーを立てて、PHPを動かせて、なおかつ拡張子が.htmlでもPHPを動かせるようにする
なぜ、.htmlでPHPを動かしたいかというと、PHPで出力した内容を使って静的なページを別のところに書き出したかった。いろいろと方法があるとは思うのだけれども、今回はこの方法をとった。拡張子が.htmlでも中に直接PHPを記述できると、URLのリンクを .php から .html に書き直したりせず、出力した結果を純粋にコピーしたものを静的なページとして保存できるから。と考えた。
ごちゃごちゃうるせいやい、手順だ手順
ということで、今回は mac でwebサーバーを立ち上げて、ルートを指定したところに変えた上で、拡張子が.html でも動くようにする。
目次
webサーバーを立ち上げる
Catalinaでもデフォルトで入ってるので、ターミナルアプリを立ち上げて、以下のコマンドをたたく。アカウントパスワードを求められるので、入力してreturn。
sudo apachectl start
webブラウザを立ち上げて、 http://localhost を表示させて、It's Work と出れば、問題ない
PHPを動かせるようにする
ターミナルで以下のコマンドをたたく
sudo vi /etc/apache2/httpd.conf
viエディタの使い方は割愛する。「viの使い方/基本操作 - 空間情報学講座 - 京都大学」などを参照するといい。
Catalinaだと php7が入っているようで、以下の箇所の行頭 # をとって上書き保存。
#LoadModule php7_module libexec/apache2/libphp7.so
なお、phpのバージョンはOSによって入ってるバージョンが異なったりするので、コマンドモードで /LoadModule php で検索して移動すると探しやすいかも
編集が終わったら、Apacheを再起動させる
sudo apachectl restart
これでドキュメントルートにphpファイルを入れれば動くはず。ドキュメントルートについては次の項目
ドキュメントルートを変える
これは必要がある場合のみ変えればいい。webサーバーを立ち上げた際、It works! を書かれたファイルは、/Library/WebServer/Documents フォルダ内にある。そこを編集していけば、localhostで表示される内容は編集できるが、別のファイル場所を参照したい場合は ドキュメントルートを変更する。viで/etc/apache2/httpd.confを再び編集する。
以下の箇所にドキュメントルートの指定する記述があるので、/Library/WebServer/Documents を指定したいファイルの置き場所に変更する。ちなみに、参照させたいフォルダの位置がよくわからない場合は、ターミナルにドロップすると出てくる。
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
編集が終わったら、Apacheを再起動させる
sudo apachectl restart
localhostにアクセスして、指定したファイルフォルダの内容が表示されれば成功
.htaccess を使用できるようにする
最終目標である、.htmlでphpを動かすには、.htaccess を使用できるようにしないといけないので、viで/etc/apache2/httpd.confを再び編集する。
ドキュメントルートのところにある、Directory内に AllowOverride None の記述があるので、コメントアウトして、AllowOverride All を追記。
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
--中略
#AllowOverride None
AllowOverride All
編集が終わったら、Apacheを再起動させる
sudo apachectl restart
これで.htaccesssが使えるようになる。
.htaccess を使用して .html でも phpを動かせるようにする
最後に、.htaccessファイルを作成して、以下の記述を追記して、ドキュメントルートに保存する
AddHandler application/x-httpd-php .php .html
Apacheの再起動はしなくて大丈夫なはずなので、index.html内とかにphpの記述をしてaccessしてみて、phpが動いていれば成功