HTML内のPHPプログラムを動かす方法
みんな大好きPHPプログラム、使い始めると便利なので、今のWEBサイトにはかかせない存在です。
ちなみにPHPはサーバー側で動作します、下記参照。その証拠にJavaScriptはオフラインでも動作しますが、PHPはオンラインでないと動作しません。
スクリプトの動作ロケーション!
- JavaScript→クライアント側(ブラウザ)
- PHPプログラム→サーバー側
さて、ここからが本題!
HTMLファイルにPHPプログラムを埋め込んで動作させたい(htmlのphp化)と思ったことはありませんか?
例えばこんな時!
- 拡張子はhtmlに統一している
- 拡張子がphpだとSEO上問題がある
- URL変更するとインデックスされない
htmlでphpを動作させるには!
レンタルサーバー内の対象ドメインルート(トップページの階層)に「.htaccess」ファイルを設置し、コードを書き込むだけで、htmlファイル上でPHPプログラムが動くようになります。
ちなみに「.htaccess」(ドット・エイチ・ティ・アクセス) とは、Webサーバー側において、様々な設定が行えるファイルのことです。
従来はWEBサーバーソフトウェアとして「Apache」がシェアを独占していましたが、最近は開発が進み速さのある「Nginx」「LiteSpeed」がシェアを伸ばしてきました。
各レンタルサーバーのWEBサーバーのソフトウェア種類については、「機能・スペックから選ぶ レンサバ比較」を参考にご覧ください。
それに伴いPHP動作モードも開発が進み多様化しています、レンタルサーバーのプラン毎に「.htaccess」のコマンド記述もそれぞれ異なります。
下記では、レンタルサーバー別にhtmlファイルをphp化させるための「.htaccess」コマンドを記載しました。
HTMLのPHP化「.htaccess」記述コード
テキストエディタ(TeraPadなど)を使い「.htaccess」ファイルに該当の動作コードを記述し、ドメインルートへアップロードしてください、文字コードは「utf-8」になります。
PHP動作確認用のファイル
動作確認のためのhtmlファイルを用意しました。必要な方は下記ファイルをご利用ください。
<?php
phpinfo();
?>
動作が正常な場合には、PHPの下記案内画面が表示されます、何も表示されない場合はPHP化になっていません。記述コードを再確認してください。
上記はhtmlからphp-infoを呼び出した時の画像
※(注意)コマンドの記述を間違うと、旧PHP5.3が呼び出されることもありました。バージョンの確認もしっかり行いましょう!
さくらレンタルサーバー
さくらのPHPには、「モジュールモード」と「CGIモード」の2種類が存在します、それぞれの設定方法について解説いたします。
「モジュールモード」
AddType application/x-httpd-php .html
#さくらサーバーモジュールモード
「CGIモード」(ライトプラン)
「.htaccess」に加えて「php.cgi」というファイルが必要になります。
#!/bin/sh
exec /usr/local/bin/php-cgi
#さくらサーバーCGI
ドメイントップへアップロード後「php.cgi」のパーミッションを「705」に変更。
Action myphp-script /php.cgi
AddHandler myphp-script .html
#さくらサーバーCGI
コアサーバー
コアサーバーの場合、新登場したV2プランにより、V1プラン「Apache」、V2プラン「LiteSpeed」の2つのサーバーソフトウェアが存在します。
「V1プラン」
コアサーバーV1プランのPHP動作モードは「FastCGI」になっています。
AddHandler application/x-httpd-php80cgi .html
#コアサーバーV1プラン
「80」の部分を「74」に変更すると、PHP7.4が適応されます。
「V2プラン」
コアサーバーV2のPHP動作モードが「LSAPI」になっています、ConoHaWINGと同じ記述コードで動作を確認済です。
AddType application/x-httpd-lsphp .html
#コアサーバーV2プラン
ロリポップ
ロリポップPHPの基本は「モジュール版」になりますが、他に「CGI版」「LiteSpeed版」があります、この3種類の設定方法について解説いたします。
「モジュールモード」
AddType application/x-httpd-php .html
#ロリポップモジュールモード
「CGIモード」
AddHandler php8.1-script .html
#ロリポップCGI
管理画面(PHP設定)にて該当ドメインの「PHP.ini」から”php_value, php_flag”の項目をONにしてください。
php_value, php_flagの設定画面
※管理画面にてPHP設定を変更する場合、反映するまで約5分程度は要します。
※管理画面「PHP設定」と「.htaccess」のPHPバージョンを同じにする必要があります。
「LiteSpeed」
当方、ハイスピードプランは未契約のため分かりませんが、PHPが「LSAPI」なので、ConoHaWINGと同じ下記のコードをお試しください?
AddType application/x-httpd-lsphp .html
#ロリポップLSAPI
※PHPエラーの表示が出る場合は「WAF」設定をOFFにしてみてください。
エックスサーバー&スターサーバー
同系列のサーバー会社だけあって、PHP動作モードは信頼性の高い「FastCGI」一本に統一されています。
「FastCGI」
AddHandler fcgid-script .html
#エックス・スターサーバーFastCGI
ConoHaWING
コノハウィングのサーバーソフトウェアは「Nginx」ですが、PHPの部分には高速な「LSAPI」が採用されています。
「LSAPI」
AddType application/x-httpd-lsphp .html
#コノハウィングLSAPI

html内でphpを動作させるメリット!
後からHTMLサイト全体にPHPを埋め込んでも、URLが変わらず使えるのはメリットがあります。しかし、表示速度を考慮すると、できる限り処理速度の速いJavaScriptで済ませたいところですね!