2025年11月17日 備忘録

htmlファイルでphp includeを扱う環境を設定しようとして右往左往した話【MAMP】【ConoHa WING】

htmlファイルでphp includeを扱う環境を設定しようとして右往左往した話【MAMP】【ConoHa WING】

htmlファイル中でphpを動作させ、php includeを利用できるようにするまでの過程の記録。

目的

htmlファイルの共通部分の記述にphp includeを採用するのが目的。
具体的には以下の記述(ドキュメントルートの取得)でincludeファイルを読み込むもの。

<?php
$a = $_SERVER['DOCUMENT_ROOT'];
include($a."/ディレクトリ名/ファイル名.shtml");
?>

あるいは

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

前提

MAMPで『.htaccess』を読み込むため、『/Applications/MAMP/conf/apache/httpd.conf』で以下の編集を行なっている。

○ 編集前

<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>

○ 編集後

<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>

『AllowOverride』は『.htaccess』の読み込みの有無を切り替えるものらしい。筆者の場合は『AllowOverride』を『None』ではなく『All』としていた。しかし、『None』に切り替えても『.htaccess』は読み込まれた。よくわからない。MAMPのバージョンは7.2。

準備

ファイルの構成

ひとまずMAMPのhtdocsにファイルを作成。構成は画像の通り。

『/include/test.shtml』には共通部分の内容を記述し、『index.html』には以下を記述する。

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

500エラーを解消する

MAMPサーバーを起動すると500エラー(500 Internal Server Error)が発生。
確認したところ、別の環境からひとまずそのまま持ってきていた『.htaccess』に記述されていた『RewriteRule』の処理(リダイレクト)にMAMPが対応できていなかった。

MAMPの『/Applications/MAMP/conf/apache/httpd.conf』より、以下をコメントアウトするとリダイレクトに対応できるのでコメントアウト。

LoadModule rewrite_module modules/mod_rewrite.so

これで500エラーは解消された。

MAMP環境下のhtmlファイルでphpを動作させる

再びMAMPサーバーを起動するが、このままではhtmlファイル中のphpは動作しない。
次いで以下を『.htaccess』に記述する。

AddHandler php-fastcgi .html .htm

MAMPサーバーを再起動すると、htmlファイル中のphpが動作し、php includeが適用されたことを確認できた。

ConoHa WINGサーバーの環境下のhtmlファイルでphpを動作させる

ファイルの構成

上記までの編集を行なった上で、画像の内容をConoHa WINGのサーバーにアップロードした。

MAMP環境下の設定のみを行なっていたため、htmlファイル中のphpは動作しない。
ConoHa WINGのサーバー環境下のhtmlファイル中でphpを動作させるには、以下を『.htaccess』に記述する。

AddType application/x-httpd-lsphp .html

上記はConoHa WING向けの記述であるため、MAMPで動作確認を行う場合にはコメントアウトすること。

以上でConoHa WINGのサーバー環境下でも、htmlファイル中のphpが動作し、php includeが適用されたことを確認できた。