さくらサーバーでSSIのinludeで、HTML上にPHPを読み込ませる方法

サンプルコード

さくらインターネットの場合、既存の状態ではHTML上でPHPを動かすことができない。

XREAやエックスサーバーなら、.htaccessを用意してコードを追加すればPHPを実行できる。

【サーバー別】HTML上でPHPを実行するための.htaccessの記述
レンタルサーバー別に、拡張子が.html・.htmのURLというか、HTMLファイル上でPHPを実行するための.htaccessの記述をまとめてみました。 クイッカの動作確認だけ過去に行ったきりですが、それ以外のサーバーは動作を確認し...

これに対し、さくらインターネットでは、前述のコードを記述した.htaccessを用意してもHTML上でPHPは動かない。

さくらインターネットの場合は、PHPはCGIとして動く。それを逆手に取り、PHPの実行結果をSSIとして、HTML上に読み込む方法が可能である。

ちなみにさくらインターネットはスタンダードプラン以上でないとPHPが使えない。

まず、.htaccessを用意する。この中には以下のコードを記述。

AddType text/x-server-parsed-html .html

実行したいPHPに関しては、拡張子を.phpとして別にファイルを用意。1行目に

#!/usr/local/bin/php

とパスを記述した上で、スクリプトを書く。サーバーにアップロードしたら、パーミッションを「755」に変更。

ここでは以下のようなスクリプトを用意したとしよう。

#!/usr/local/bin/php
<?php echo "こんにちは";?>

ファイル名を、hello.php とする。読み込むHTML側は、

<html>
<body>
<p><!--#include virtual="hello.php" --></p>
</body>
</html>

という感じでSSIでincludeする。これによりHTML上にhello.phpの実行結果が読み込まれる。

ソースコードを確認するとHTMLで実行結果が読み込まれているから、SEO的な面でも不利にはならない。さくらで外部からコンテンツを読み込みたい場合は便利かも。

この手法は、通常のHTMLファイルもSSIとして処理されるので、サーバーに負荷をかけるので、その点には注意が必要だろう。

タイトルとURLをコピーしました