Webサイトのヘッダー・フッターなどの共通パーツをphp includeで管理したい——しかし拡張子が.htmlのままではPHPが動作しません。本記事では、MAMPのローカル環境とConoHa WINGの本番環境それぞれで、HTMLファイル内でPHPを動作させる設定方法を解説します。

目的:HTMLでphp includeを使いたい

HTMLファイルの共通部分をphp includeで管理するのが目的です。具体的には以下のような記述でインクルードファイルを読み込みます。

💡 基本の記述パターン
<?php
$a = $_SERVER['DOCUMENT_ROOT'];
include($a."/ディレクトリ名/ファイル名.shtml");
?>

// あるいは短縮形
<?php include($_SERVER['DOCUMENT_ROOT']."/ディレクトリ名/ファイル名.shtml"); ?>

前提:httpd.conf設定

.htaccessを読み込むため、/Applications/MAMP/conf/apache/httpd.confで以下の編集を行います。

編集前
<Directory />
  Options Indexes FollowSymLinks
  AllowOverride None
</Directory>
編集後
<Directory />
  Options Indexes FollowSymLinks
  AllowOverride All
</Directory>

AllowOverride Allにすることで.htaccessの読み込みが有効になります。

携帯/スマホのスピード高価買取のダイワンテレコム

準備:ファイル構成と基本記述

htdocsに以下の構成でファイルを作成します。

💡 ディレクトリ構成例
htdocs/
├── index.html
└── include/
    └── test.shtml

index.htmlには以下を記述します。

<?php include($_SERVER['DOCUMENT_ROOT']."/include/test.shtml"); ?>

500エラーを解消する

MAMPサーバーを起動すると500エラーが発生する場合があります。原因は.htaccessに記述されたRewriteRuleをMAMPが処理できないためです。

/Applications/MAMP/conf/apache/httpd.confで以下の行をコメントアウトすることで解消します。

# LoadModule rewrite_module modules/mod_rewrite.so
携帯/スマホのスピード高価買取のダイワンテレコム

MAMP環境でHTMLファイルにPHPを動作させる

MAMPではデフォルトでHTMLファイル内のPHPは動作しません。.htaccessに以下を追記することで有効になります。

AddHandler php-fastcgi .html .htm

MAMPを再起動するとHTMLファイル内のPHPが動作し、php includeが適用されます。

ConoHa WINGでHTMLファイルにPHPを動作させる

ConoHa WINGの本番環境では、MAMP向けの設定とは異なる記述が必要です。.htaccessに以下を追記します。

AddType application/x-httpd-lsphp .html
⚠️ 注意 この記述はConoHa WING向けです。MAMP環境では動作しないため、ローカルで確認する場合はこの行をコメントアウトしてください。MAMP用とConoHa WING用の記述は共存できません。

この設定を行うことで、ConoHa WINGのサーバー環境下でもHTMLファイル内のPHPが動作し、php includeが適用されます。

まとめ

  • HTMLでphp includeを使うには.htaccessの追記が必要
  • MAMP環境:AddHandler php-fastcgi .html .htm
  • ConoHa WING環境:AddType application/x-httpd-lsphp .html
  • 両者は共存できないため、環境に応じてコメントアウトして切り替える