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

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

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

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

PHP

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

Q&A

解決済

3回答

1208閲覧

拡張子 cgi のファイルが PHP で動かない

y_koishi

総合スコア5

Apache

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

PHP

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

0グッド

0クリップ

投稿2022/07/26 08:51

CentOS から Rocky に環境移行を行いました。これまでどおりの設定を
行いましたがうまくいきません。アドバイスをお願いできないでしょう
か。

OS:Rocky Linux release 8.5 (Green Obsidian)
Apache/2.4.37 (rocky)
PHP 7.4.19 (cli)

質問内容:
拡張子を cgi に変更した PHP ファイルにアクセスするとダウンロード
を行ってしまい、動作させることができません。
(拡張子は cgi ですが中身は PHP のため、拡張子を変更すると正しく
動作します)。

「HTMLファイルでPHPが動くようにしようと...」の記事も確認しました
が、それでもダメです。「3:動作結果」のようにエラーが表示される
ようになりました。

1:php.conf
<FilesMatch .(cgi|php|phar)$>

上記に変更済み

2:www.conf
security.limit_extensions = .php .php3 .php4 .php5 .php7 .cgi

上記を追加済み

3:動作結果
Service Unavailable

The server is temporarily unable to service your request due to 
maintenance downtime or capacity problems. Please try again later.

上記のエラー画面が表示されます。

4:補足
旧 OS( CentOS )では httpd.conf に以下を追加するだけで動作して
いました(現在はなにも設定していません)。

<Directory "/var/www/html/application">
... 省略
AddHandler application/x-httpd-php .cgi
... 省略
</Directory>

よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

なぜ1と2だけでOKと判断したのか謎ですが、
1はphp向けの設定、
2はphp-fpm向けの設定で通常はphp-fpm.confみたいなファイル名で、
httpd.confの中でincludeされるものだと思われます。

apache httpd 2.2も2.4も、
公開するディレクトリごとにどう設定するかを記述する必要があり、
<Directory> ディレクティブ
<DirectoryMatch> ディレクティブなどで
公開ディレクトリを指定しつつ、
AddType, AddHandler, SetHandlerの違い – Kenchantを参考に
拡張子 .cgi でphpを動かすようにすることになると思うけど、
もしかしてLoadModuleを忘れているんじゃないだろうかと。
mod_mimeモジュールが有効になっていないと
AddType, AddHandler, SetHandlerの指定が無効になってしまうので。

投稿2022/07/26 09:23

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2022/07/26 09:25

php-fpmの設定情報ではなかったですね、モジュール動作用の話にしちゃいました、すみません。
y_koishi

2022/07/26 09:31

アドバイスをありがとうございます。 ご指摘のとおり、正しく内容を理解していればよいのですが、 勉強不足でした。 Rocky になって php-fpm が標準になったりと設定や動作も 変わっており、頭が混乱していました。 なかなかみなさんのように知識のある人が周りにいないので 今後も質問させていただくかもしれません。その際は、 よろしくお願いいたします。
guest

0

www.conf を編集する際、コメントとして使える ; を # と間違えて
いたため、php-fpm が動作していませんでした。

「HTMLファイルでPHPが動くようにしようと...」の記事の内容で
間違いありません。

投稿2022/07/26 09:24

y_koishi

総合スコア5

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

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

0

ベストアンサー

AddHandler→AddTypeでもだめでしょうか?

投稿2022/07/26 08:57

yambejp

総合スコア114779

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

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

y_koishi

2022/07/26 09:15

アドバイスをありがとうございます。 初歩的なミスを2つ行っていたためエラーになっていました。 1:コメント記号を #(正しくは ; )にしていた  >このため php-fpm が起動していなかった 2:設定が足りていなかった  ><IfModule !mod_php5.c>は修正したのに   <IfModule mod_php7.c>の<FilesMatch>に   .cgi を追加していなかった。 すでに2ヶ月ぐらい動かないままだったのですが、 必要に迫られて本腰を入れたのですが、いろいろ やってもだめなので質問しました。 おかげさまで動作するようになりました。 本当に、ありがとうございました m(_ _)m。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問