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

CentOS 6.3でApache2とPHP5-FPMを使用する

CentOS 6.3でApache2とPHP5-FPMを使用する

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

このチュートリアルでは、PHP5(PHP-FPMを通じて)とMySQLサポートを持つCentOS 6.3サーバーにApache2ウェブサーバーをインストールする方法を示します。PHP-FPM(FastCGIプロセスマネージャー)は、特に忙しいサイトに役立つ追加機能を備えた代替PHP FastCGI実装です。

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

1 前提条件

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

2 追加リポジトリの有効化

後でmod_fastcgiをインストールする必要があり、これはRPMforgeリポジトリにあります。RPMforgeは次のように有効にできます:

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
cd /tmp  
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm  
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

php-fpmは公式のCentOSリポジトリにはありませんが、EPELリポジトリに依存するRemi RPMリポジトリから入手できます。両方のリポジトリを次のように有効にできます:

rpm --import https://fedoraproject.org/static/0608B895.txt   
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi  
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum install yum-priorities

/etc/yum.repos.d/epel.repoを編集します…

vi /etc/yum.repos.d/epel.repo

… そして[epel]セクションにpriority=10という行を追加します:

| [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |

次に、/etc/yum.repos.d/remi.repoの[remi]セクションでも同様のことを行い、enabledを1に変更します:

vi /etc/yum.repos.d/remi.repo

| [remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority [remi-test] name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi |

3 MySQL 5のインストール

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

yum install mysql mysql-server

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

chkconfig --levels 235 mysqld on  
/etc/init.d/mysqld start

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

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation

注意: このスクリプトのすべての部分を実行することは、すべての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 ~]#

4 Apache2のインストール

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

yum install httpd

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

chkconfig --levels 235 httpd on

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

/etc/init.d/httpd start

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

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

5 PHP5のインストール

PHP5をApache2で動作させるために、PHP-FPMとApacheのmod_fastcgiモジュールを次のようにインストールします:

yum install mod_fastcgi php-fpm

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

vi /etc/php.ini

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

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /usr/share/nginx/html/info.php on line 2

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

| [...] [Date] ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Berlin" [...] |

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

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

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

chkconfig --levels 235 php-fpm on  
/etc/init.d/php-fpm start

PHP-FPMは、ポート9000でFastCGIサーバーを実行するデーモンプロセスです(initスクリプトは/etc/init.d/php-fpm)。

次に、Apacheを再起動します:

/etc/init.d/httpd restart
Share: X/Twitter LinkedIn

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

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