質問: **従来の環境** ・CentOS6 ・apache2.2 ・PHP7.1 --- **試したこと** ・「CentOS Software Collections」経由で「Apache2.4」をインストール **出来たこと** ・Apache2.4の画面表示 ・ドキュメントルートのhtmlファイル内容表示 **出来なかったこと** ・phpソースファイルが表示される ・バーチャルホストが効かない --- **Q1.** ・apache2.4でPHP動作させる際、PHP-FPMは必須ですか? **Q2.** ・「CentOS Software Collections」経由でインストールした場合のconfは「/opt/rh/httpd24/root/etc/httpd/conf/httpd.conf」ですか?「/etc/httpd/conf/httpd.conf」は見に行かない?
回答: [centos](/questions/tagged/centos "'centos' のタグが付いた質問を表示") は使っていないので一般論ですが A1. php-fpm は FastCGI Process Manager なので [php](/questions/tagged/php "'php' のタグが付いた質問を表示") を FastCGI で動かす場合に必要です。 `apache httpd` から [php](/questions/tagged/php "'php' のタグが付いた質問を表示") を使う場合には2通りあって - CGI として使う (FastCGI もこっち) - Module として使う ウチの部内サーバでは Module にしていますから php-fpm は不要ということになります。 CGI/Module どっちを使うかはサーバ運用者の判断ですね。 `# apachectl -M` と入力するとロード済みモジュールが確認できます。ウチの部内サーバでは `php5_module (shared)` と表示されました (php7 にアップデートしてないのはインターネットにつながってない閉鎖環境における野良ビルドのため) A2. デフォルト状態、つまり `# apachectl start` とだけ入力して `apache httpd` を起動するときに使われる conf ファイルは `# apachectl -V` で確認できます。 ウチの部内サーバの httpd 2.4.20 で `# apachectl -V` すると ``` Server Compiled with.... -D HTTPD_ROOT="/usr/local/apache2" -D SERVER_CONFIG_FILE="conf/httpd.conf" ``` なので **デフォルトでは** `/usr/local/apache2/conf/httpd.conf` が使われます。 デーモンの起動スクリプトで明示してれば当然そっちが使われます。その辺は要確認。 おまけ `apache httpd` 2.4.x 系列で [php](/questions/tagged/php "'php' のタグが付いた質問を表示") を使いたいのであれば `httpd.conf` にて(あるいは `httpd.conf` から `Include` させる追加 `conf` で) ``` LoadModule php5_module modules/libphp5.so PHPIniDir conf/extra SetHandler application/x-httpd-php ``` のような記述が必要です。 (php7 なら適宜直してください)