さくらインターネットのレンタルサーバーでHTML内のPHPが動かないとき【2020年版】
結論は一番下です↓
すみません、ビジネス文章の鉄則を守らなくて。
「サーバー引っ越し手伝って。ついでにちょっとHTML修正して。基本DNS切り替えで終わるから。」
そんな依頼を知人から受けたので、ざっと該当ページ見てみたら静的HTMLっぽいので、二つ返事でOKした。
ところが、ソースをもらうとPHPでincludeしていた。まぁ、あるよね。んで、移行先は?さくらのレンタルサーバー、と。
ん?
HTMLにPHPが書いてあって、さくら?
昔.htaccessをいじらないと動かなくてハマった記憶が。。。。
で、調べてみるとやっぱり昔見た記憶がある記事がいっぱい出てくる。
AddHandler myphp-script .html .php
Action myphp-script /php.cgi
php.cgi作ってAddHandler。
ふふふ。
冬月「勝ったな」俺「ああ」
てなもんですよ。
ところが。
404 NotFound
おいおい勘弁してくれよう。
「さくら サーバー html php .htaccess」あたりでググりまくるといろいろと見直したほうが良い点が出てきたので列挙する。
- php.cgiで/usr/localとか見に行く上記の設定してるとさくらのレンタルサーバーデフォルト設定である国外IPフィルタで拒否られる→国外IPアドレスフィルタを有効にすると、全てのウェブページでアクセスが拒否されます – さくらのサポート情報
- 文字コードやパーミッションは一番に疑うやつだし→さくらのレンタルサーバで.htmlをphpで動作させたい - Qiita
さくらインターネットのレンタルサーバーでHTML内のPHPが動かないとき【2020年版】の結論
環境がさくらのレンタルサーバーでPHPのバージョンがデフォルト(7.4~のモジュール版)でHTMLの中にあるPHPを動かしたい場合は
AddType application/x-httpd-php .html
を.htaccessに追記。
AddHandler,Action,php.cgi不要。
これが正解でした。
Special Thanks→さくらのPHPモジュール化とhtmlファイルのphp動作 | 雪ぶろ*
たぶん最近さくらのレンタルサーバーを契約した人はPHPのバージョンが許すならモジュール版にしてこの設定(デフォ)推奨。セキュリティ的にも処理的にも。
とか言ってるともうすぐ8.0ですねTT