0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

php-fpm環境のhtmlでPHPを動作させたい

0
Last updated at Posted at 2026-07-05

背景

会社で運用しているある古いWebサイトについて、AmazonLinux2023へのバージョンアップのためにサーバーリプレイスをすることになった。
かなり古いシステムらしく、具体的にいつから運用しているかは分からないが置いてあった資料的に20年以上前に構築されたものっぽい・・・
元々mod_phpでの実行方式で動いていたサイトだったがAL2023ではデフォルトでmod_phpに対応しておらず、基本php-fpmが推奨されているよう。

そこで困ったのがこの環境だとデフォルトではPHPタグを埋め込んでPHPを動作させているHTMLが正常に動作しなくなったこと。
拡張子をPHPに変更などすれば対応出来そうではあるが、古いシステムなだけにPHPを動かしてるようなHTMLファイルが大量に存在し、ちょっと厳しそう。

そこで何とかphp-fpm環境でHTMLでもPHPが動くよう設定方法があるかを調べてみた。

php.confの修正

まずはhtmlをPHPとして動作させるための設定。

/etc/httpd/conf.d/php.conf

php.confファイルにそのための設定があるので、以下の設定を変更。
変更前

<FilesMatch "\.(php|phar)$">
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>

変更後

<FilesMatch "\.(php|phar|html)$">
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>

FileMatchの対象拡張子にhtmlを追加する。

www.confの修正

php.confの修正でhtmlをPHPとして動かす設定自体は問題ないが、FPMで実行される拡張子の制限がかかっているため、そちらの設定の変更も必要(php.confの変更だけでブラウザでhtmlにアクセスしたところ、access deniedとなった)

/etc/php-fpm/www.conf

上記のファイルで拡張子の制限を追加する。

security.limit_extensions = .php .phar .html

こちらの設定値があれば.htmlの実行が許可される。(元々項目がある場合は.htmlを追加、ない場合は末尾に追記する)

各confファイルの修正ができたら各サービスを再起動

sudo systemctl restart php-fpm
sudo systemctl restart httpd

これでAL2023のphp-fpm環境でもhtmlファイルでPHPが実行されるようになった。
本来であればHTMLでPHPを実行するようなことは極力避けるべきだと思うが、古いシステムであるために全てをPHPファイルに差し替えるような対応ができず、今回はサーバー側の設定変更で対応した。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?