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