サーバー設定 · 2 min read · Oct 22, 2025

CentOS 6.3 に PHP5 (および PHP-FPM) と MySQL サポートを持つ Nginx をインストールする

CentOS 6.3 に PHP5 (および PHP-FPM) と MySQL サポートを持つ Nginx をインストールする

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

Nginx (発音は「エンジンエックス」) は、無料でオープンソースの高性能 HTTP サーバーです。Nginx は、その安定性、豊富な機能セット、シンプルな設定、低リソース消費で知られています。このチュートリアルでは、CentOS 6.3 サーバーに PHP5 サポート (PHP-FPM 経由) と MySQL サポートを持つ Nginx をインストールする方法を示します。

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

1 前提条件

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

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

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 5 をインストールします:

yum install mysql mysql-server

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

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

ネットワークが有効になっているか確認します。次のコマンドを実行します:

netstat -tap | grep mysql

次のような出力が表示されるはずです:

[root@server1 ~]# netstat -tap | grep mysql  
tcp        0      0 *:mysql                     *:*                     LISTEN      1799/mysqld  
[root@server1 ~]#

表示されない場合は、/etc/my.cnf を編集し、skip-networking オプションをコメントアウトします:

vi /etc/my.cnf

| [...] #skip-networking [...] |

MySQL サーバーを再起動します:

/etc/init.d/mysqld restart

次のコマンドを実行して、root ユーザーのパスワードを設定します (さもなければ誰でもあなたの MySQL データベースにアクセスできます!):

mysql_secure_installation

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

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

現在の root パスワードを入力してください (なしの場合は Enter を押してください): <– 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 Nginx のインストール

Nginx は CentOS 6.3 用のパッケージとして利用可能で (EPEL から)、次のようにインストールできます:

yum install nginx

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

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

ブラウザにウェブサーバーの IP アドレスまたはホスト名を入力します (例: http://192.168.0.100)。nginx のウェルカムページが表示されるはずです:

5 PHP5 のインストール

PHP-FPM (PHP-FPM (FastCGI Process Manager) は、サイトの規模に関係なく便利な追加機能を持つ PHP FastCGI の代替実装です) を通じて nginx で PHP5 を動作させることができます。次のように、php-fpm と php-cli、MySQL を PHP スクリプトから使用するために必要な php-mysql などのいくつかの PHP5 モジュールを一緒にインストールできます:

yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

APC は、PHP 中間コードをキャッシュおよび最適化するための無料でオープンな PHP オペコードキャッシャーです。他の PHP オペコードキャッシャー (eAccelerator や Xcache など) と似ています。PHP ページの速度を上げるために、これらのいずれかをインストールすることを強くお勧めします。

APC は次のようにインストールできます:

yum install php-pecl-apc

次に、/etc/php.ini を開き、cgi.fix_pathinfo=0 に設定します:

vi /etc/php.ini

| [...] ; cgi.fix_pathinfo は CGI のための *本当の* PATH_INFO/PATH_TRANSLATED サポートを提供します。PHP の ; 以前の動作は PATH_TRANSLATED を SCRIPT_FILENAME に設定し、PATH_INFO が何であるかを理解しませんでした。 ; PATH_INFO についての詳細は CGI スペックを参照してください。これを 1 に設定すると、PHP CGI が ; スペックに従ってパスを修正します。ゼロに設定すると、PHP は以前のように動作します。デフォルトは 1 です。スクリプトを修正する必要があります。 ; SCRIPT_FILENAME を使用するように、PATH_TRANSLATED ではなく。 ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |

(これを行う理由については http://wiki.nginx.org/Pitfalls をお読みください。)

さらに、次のようなエラーを回避するために:

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

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

| [...] [Date] ; 日付関数で使用されるデフォルトのタイムゾーンを定義します ; 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 サーバーを実行するデーモンプロセスです。

Share: X/Twitter LinkedIn

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

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