サーバー設定 · 1 min read · Dec 27, 2025

Fedora 18でApache 2.4(+ mod_proxy_fcgiモジュール)とPHP5-FPMを使用する

Fedora 18でApache 2.4(+ mod_proxy_fcgiモジュール)とPHP5-FPMを使用する

バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください

このチュートリアルでは、PHP5(PHP-FPMを通じて)およびMySQLサポートを持つApache 2.4ウェブサーバーをFedora 18サーバーにインストールする方法を示します。PHP-FPM(FastCGIプロセスマネージャー)は、特に忙しいサイトに役立つ追加機能を持つ代替PHP FastCGI実装です。Apache 2.4では、これを機能させるためにApacheのmod_proxy_fcgiモジュールが必要です。

これがあなたにとって機能するという保証はありません!

1 前提条件

このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.0.100を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。

2 MySQL 5のインストール

MySQLをインストールするには、次のようにします:

yum install mysql mysql-server

次に、MySQLのシステム起動リンクを作成し(システムが起動するたびにMySQLが自動的に起動するように)、MySQLサーバーを起動します:

systemctl enable mysqld.service   
systemctl start mysqld.service

MySQLのrootアカウントのパスワードを設定します:

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation

NOTE: このスクリプトのすべての部分を実行することは、すべてのMySQLサーバーにおいて推奨されます! 各ステップを注意深く読んでください!

MySQLにログインして安全にするためには、rootユーザーの現在のパスワードが必要です。 MySQLをインストールしたばかりで、まだrootパスワードを設定していない場合、パスワードは空白になりますので、ここでは単にEnterを押してください。

現在のrootのパスワードを入力してください(なしの場合はEnter):
OK、パスワードが正常に使用されました、次に進みます…

rootパスワードを設定することで、適切な認証なしに誰もMySQLのrootユーザーにログインできないようにします。

rootパスワードを設定しますか? [Y/n] <– ENTER
新しいパスワード: <– yourrootsqlpassword
新しいパスワードを再入力してください: <– yourrootsqlpassword
パスワードが正常に更新されました!
特権テーブルを再読み込みしています..
… 成功!

デフォルトでは、MySQLインストールには匿名ユーザーがあり、誰でもユーザーアカウントを作成することなくMySQLにログインできます。 これはテスト用にのみ意図されており、インストールを少しスムーズにするためのものです。 本番環境に移行する前に、これらを削除する必要があります。

匿名ユーザーを削除しますか? [Y/n] <– ENTER
… 成功!

通常、rootは「localhost」からのみ接続を許可されるべきです。 これにより、誰かがネットワークからrootパスワードを推測できないようにします。

リモートでのrootログインを禁止しますか? [Y/n] <– ENTER
… 成功!

デフォルトでは、MySQLには「test」という名前のデータベースがあり、誰でもアクセスできます。 これはテスト用にのみ意図されており、本番環境に移行する前に削除する必要があります。

テストデータベースとそのアクセスを削除しますか? [Y/n] <– ENTER

  • テストデータベースを削除しています…
    … 成功!
  • テストデータベースの特権を削除しています…
    … 成功!

特権テーブルを再読み込みすることで、これまでに行ったすべての変更が即座に反映されることを保証します。

特権テーブルを今すぐ再読み込みしますか? [Y/n] <– ENTER
… 成功!

クリーンアップ中…

すべて完了! 上記のすべてのステップを完了した場合、あなたのMySQLインストールは今や安全であるはずです。

MySQLをご利用いただきありがとうございます!

[root@server1 ~]#

3 Apache2のインストール

Apache2はFedoraパッケージとして利用可能であるため、次のようにインストールできます:

yum install httpd

これはApacheバージョン2.4で、PHP-FPMのためにApache 2.2で使用されていたmod_fastcgiモジュールとは互換性がありません(Fedora 17でのApache2とPHP5-FPMの使用を参照)。したがって、mod_proxy_fcgiモジュールを使用します。

次に、システムを設定してApacheをブート時に起動するようにします…

systemctl enable httpd.service

… そしてApacheを起動します:

systemctl start httpd.service

次に、ブラウザをhttp://192.168.0.100に向けると、Apache2のプレースホルダーページが表示されるはずです:

ApacheのデフォルトのドキュメントルートはFedoraでは/var/www/htmlであり、設定ファイルは/etc/httpd/conf/httpd.confです。追加の設定は/etc/httpd/conf.d/ディレクトリに保存されます。

4 PHP5のインストール

PHP5をApache2で動作させるために、PHP-FPMとApacheのmod_proxy_fcgiモジュールを使用します。mod_proxy_fcgiモジュールはすでにインストールされ、有効になっているはずです:

ls -l /usr/lib64/httpd/modules/mod_proxy*
[root@server1 modules]# ls -l /usr/lib64/httpd/modules/mod_proxy*  
-rwxr-xr-x 1 root root 52128 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_ajp.so  
-rwxr-xr-x 1 root root 39984 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_balancer.so  
-rwxr-xr-x 1 root root 19400 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_connect.so  
-rwxr-xr-x 1 root root 11192 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_express.so  
-rwxr-xr-x 1 root root 19368 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_fcgi.so  
-rwxr-xr-x 1 root root 11152 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_fdpass.so  
-rwxr-xr-x 1 root root 44184 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_ftp.so  
-rwxr-xr-x 1 root root 39968 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_http.so  
-rwxr-xr-x 1 root root 19464 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_scgi.so  
-rwxr-xr-x 1 root root 98016 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy.so  
[root@server1 modules]#
cat /etc/httpd/conf.modules.d/00-proxy.conf

| [...] # このファイルはすべてのプロキシモジュールを設定します: LoadModule proxy_module modules/mod_proxy.so LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_express_module modules/mod_proxy_express.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so [...] |

PHP-FPMを次のようにインストールできます:

yum install php-fpm

次に、/etc/php.iniを開きます:

vi /etc/php.ini

次のようなエラーを避けるために:

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): システムのタイムゾーン設定に依存するのは安全ではありません。 date.timezone設定またはdate_default_timezone_set()関数を使用する必要があります。 これらの方法のいずれかを使用してもこの警告が表示される場合、タイムゾーン識別子を誤って入力している可能性があります。 /usr/share/nginx/html/info.phpの2行目で「Europe/Berlin」を「CEST/2.0/DST」として選択しました。

… /var/log/php-fpm/www-error.logでPHPスクリプトをブラウザで呼び出すときに、/etc/php.iniでdate.timezoneを設定する必要があります:

| [...] [Date] ; 日付関数で使用されるデフォルトのタイムゾーンを定義します ; http://php.net/date.timezone date.timezone = "Europe/Berlin" [...] |

システムの正しいタイムゾーンを確認するには、次のコマンドを実行します:

cat /etc/sysconfig/clock
[root@server1 ~]# cat /etc/sysconfig/clock  
ZONE="Europe/Berlin"  
[root@server1 ~]#

次に、php-fpmのシステム起動リンクを作成し、起動します:

systemctl enable php-fpm.service  
systemctl start php-fpm.service

PHP-FPMは、ポート9000でFastCGIサーバーを実行するデーモンプログラムです。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。