質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2969閲覧

Cent OS 8のApacheで.htmlファイル内のPHPを実行したい

Ponkun

総合スコア12

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2020/01/17 07:52

CentOS 8 上で、Apache httpd(2.4.37)、PHP7.2、php-fpmのサーバを構築し、正常に動作しています。

さて、.phpファイルはきちんと動作するのですが、.html拡張子のファイル内のPHPも実行したいと思って設定しましたがうまくいきません。

以前のサーバ(CentOS7+httpd2.4.6+PHP7.1)ではうまくいった、.htaccessに

AddType application/x-httpd-php .html

を記述する方法が動作しないのです。

そこでいろいろ調べましたが、何が違うのかを探ってみると、CentOS7の時はPHPはモジュール版、CenmtOS8はFastCGI版だということです。実際、systemctl stop php-fpmすると、PHPは動かなくなります。

そこで、以下のことをしてみました。

/etc/php-fpm.d/www.conf

security.limit_extensions = .php .php3 .php4 .php5 .php7
この行のコメントを外し、.htmlを加える

2.バーチャルホストの該当欄に
<Directory "/home/www/html">
Options Includes FollowSymLinks ExecCGI
AllowOverride All
Order deny,allow
Allow from all
</Directory>
このように実行できるようにする

3..htmlファイルのパーミッションは、0755、所有者apacheに

その上で、
http://www.tanuman.com/archives/2959
このページにあるように、httpd.confの最下部に書き足してみましたが、どれも動作しませんでした。

AddType application/x-httpd-php .php .html

AddHandler application/x-httpd-php .php .html

AddHandler x-httpd-php7.2 .php .html

Action myphp-script /php.cgi
AddHandler myphp-script .php .html

AddHandler php7.2-script .htm .html

AddHandler application/x-httpd-phpcgi .php

AddHandler application/x-httpd-phpcgi .php .html

AddHandler php7-fastcgi .php .html
Action php7-fastcgi /cgi-bin/php.fastcgi

上記8種類を試しましたが、全部ダメでした。
おそらくモジュール版PHPだとうまくいくのでしょうが、fpm版ではどうしたらいいでしょうか。

どうぞよろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

解決しました!

/etc/httpd/conf.d/php.conf内に

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

があり、ここで処理をfpmに引き渡しているようです。なので、
<FilesMatch .(php|phar|html)$>
にするといけました!

httpd.confや.htaccess内にはAddHandlerは必要なかったです。
やはりモジュール版ではなくfpm版PHPは根本的にいろいろ変わっているようです。

ありがとうございました!

投稿2020/01/17 09:51

Ponkun

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

/etc/httpd/conf/httpd.conf
に下記を設定し、サービスの再起動をしたら動作しませんか?

<IfModule mime_module> AddType application/x-httpd-php .html </IfModule>

投稿2020/01/17 08:00

nanami12

総合スコア1015

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ponkun

2020/01/17 08:17

ありがとうございます! しかし、だめでした。 上記で試したのは、httpd.confの最下部だけではなく、<IfModule mime_module>内もそれぞれ試しています。もちろん、systemctl restart httpdとsystemctl restart php-fpmも毎回かけています。 それでも、.phpにしたら正常に動作するファイルを.htmlにすると白紙が現れてしまいます。 ご回答ありがとうございました。
nanami12

2020/01/17 08:19

おや、cent8 では振る舞いが異なるということですか。。。。
nanami12

2020/01/17 08:23

では、 下記記述では、どうでしょうか? AddType application/x-httpd-php .php .html .htm AddHandler application/x-httpd-php .php .html .htm php_flag allow_url_fopen on php_flag allow_url_include on
Ponkun

2020/01/17 09:09

ありがとうございます! php_flag allow_url_fopen on php_flag allow_url_include on を.htaccessに書くとエラーになってしまいます。CentOS8は何か根本的に違っているのか、単に何か設定が違うのか・・・ 仕方ないのでphp.ini内の同項目をonにしましたが動作は特に変わらないようです。 他のphp.iniの項目も見直してみます。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問