以前に、Nginx でPHPを動かす(php-fpmをバイナリパッケージ(rpm)を作成し、インストールする) [PHP5.2系の場合] であえてphp5.2系で php-fpm をインストールしてみました。
ここでは、php5.3系の php-fpm をインストールしてみます。
php5.3以降では、php-fpmがrpmパッケージで既に用意されていますので、それを使って簡単にインストールすることができます。
では、早速、簡単に解説してみます。
- 目次
- 履歴
2011年11月7日 初版
PHP5.3系のphp-fpmをインストールする
PHP5.3系のphp-fpmの最新版のあるリポジトリの登録が必要になります。
ただ、このリポジトリは、あえてphp5.2系をインストールする(CentOS 5,CentOS 6,Scientific Linux 6) で、あえてphp5.2 をインストールする際に用いたリポジトリを同じです。
もし、既に該リポジトリをインストール済みの方は、現在、インストール済のphpをアンインストールします。 からはじめてください。
php5.3系のあるリポジトリをインストールします。
|
また、ファイル名は、
- ius-release-x-x.ius.el5.noarch.rpm
- epel-release-x-x.ius.el5.noarch.rpm
※32bit版と64bit版では、ファイル名が異なることがあります。
(以下のサイトでファイルの一覧表示が確認できます。)
CentOS 5
5.x 32bit 版 : http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/5.x 64bit 版 : http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/
CentOS 6 ScientificLinux 6
6.x 32bit 版 : http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/i386/6.x 64bit 版 : http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/
一つ一つ確実にインストールしたいなら、以下の順番で行います。
CentOSのバージョンによっては、以下のような警告がでることがあります。
特にこの警告は、致命的な問題ではないので、先へ進みましょう。
|
現在、インストール済のphpをアンインストールします。
- 現在のインストール済phpパッケージを確認する。
$ rpm -qa | grep php php52-common-5.2.17-2.ius.el5 php52-pgsql-5.2.17-2.ius.el5 php52-imap-5.2.17-2.ius.el5 php52-ldap-5.2.17-2.ius.el5 php52-odbc-5.2.17-2.ius.el5 php52-bcmath-5.2.17-2.ius.el5 php52-5.2.17-2.ius.el5 php52-mysql-5.2.17-2.ius.el5 php52-ncurses-5.2.17-2.ius.el5 php52-mbstring-5.2.17-2.ius.el5 php52-xmlrpc-5.2.17-2.ius.el5 php52-snmp-5.2.17-2.ius.el5 php52-pdo-5.2.17-2.ius.el5 php52-mcrypt-5.2.17-2.ius.el5 php52-mssql-5.2.17-2.ius.el5 php52-dba-5.2.17-2.ius.el5 php52-xml-5.2.17-2.ius.el5 php52-mhash-5.2.17-2.ius.el5 php52-pear-1.9.4-1.ius.el5 php52-cli-5.2.17-2.ius.el5 php52-gd-5.2.17-2.ius.el5 php52-tidy-5.2.17-2.ius.el5 php52-devel-5.2.17-2.ius.el5 php52-soap-5.2.17-2.ius.el5 php52-suhosin-0.9.32.1-3.ius.el5
ここでは、例としてphp5.2系がインストールされていたものとして解説します。
- インストール済phpパッケージをすべて削除する。
$ yum erase php52* Loaded plugins: downloadonly, fastestmirror Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package php52.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-bcmath.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-cli.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-common.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-dba.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-devel.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-gd.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-imap.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-ldap.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-mbstring.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-mcrypt.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-mhash.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-mssql.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-mysql.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-ncurses.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-odbc.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-pdo.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-pear.noarch 1:1.9.4-1.ius.el5 set to be erased ---> Package php52-pgsql.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-snmp.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-soap.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-suhosin.i386 0:0.9.32.1-3.ius.el5 set to be erased ---> Package php52-tidy.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-xml.i386 0:5.2.17-2.ius.el5 set to be erased ---> Package php52-xmlrpc.i386 0:5.2.17-2.ius.el5 set to be erased --> Finished Dependency Resolution Dependencies Resolved ========================================================================================== Package Arch Version Repository Size ========================================================================================== Removing: php52 i386 5.2.17-2.ius.el5 installed 3.6 M php52-bcmath i386 5.2.17-2.ius.el5 installed 32 k php52-cli i386 5.2.17-2.ius.el5 installed 6.5 M php52-common i386 5.2.17-2.ius.el5 installed 655 k php52-dba i386 5.2.17-2.ius.el5 installed 52 k php52-devel i386 5.2.17-2.ius.el5 installed 2.8 M php52-gd i386 5.2.17-2.ius.el5 installed 344 k php52-imap i386 5.2.17-2.ius.el5 installed 96 k php52-ldap i386 5.2.17-2.ius.el5 installed 39 k php52-mbstring i386 5.2.17-2.ius.el5 installed 1.8 M php52-mcrypt i386 5.2.17-2.ius.el5 installed 32 k php52-mhash i386 5.2.17-2.ius.el5 installed 7.5 k php52-mssql i386 5.2.17-2.ius.el5 installed 48 k php52-mysql i386 5.2.17-2.ius.el5 installed 171 k php52-ncurses i386 5.2.17-2.ius.el5 installed 74 k php52-odbc i386 5.2.17-2.ius.el5 installed 84 k php52-pdo i386 5.2.17-2.ius.el5 installed 108 k php52-pear noarch 1:1.9.4-1.ius.el5 installed 2.2 M php52-pgsql i386 5.2.17-2.ius.el5 installed 125 k php52-snmp i386 5.2.17-2.ius.el5 installed 24 k php52-soap i386 5.2.17-2.ius.el5 installed 320 k php52-suhosin i386 0.9.32.1-3.ius.el5 installed 177 k php52-tidy i386 5.2.17-2.ius.el5 installed 40 k php52-xml i386 5.2.17-2.ius.el5 installed 239 k php52-xmlrpc i386 5.2.17-2.ius.el5 installed 87 k Transaction Summary ========================================================================================== Remove 25 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : php52-ldap 1/25 Erasing : php52-ncurses 2/25 Erasing : php52-mysql 3/25 Erasing : php52-mcrypt 4/25 Erasing : php52-devel 5/25 Erasing : php52-suhosin 6/25 Erasing : php52 7/25 警告: /etc/httpd/conf.d/php.conf は /etc/httpd/conf.d/php.conf.rpmsave として保存されまし た。 Erasing : php52-pgsql 8/25 Erasing : php52-mssql 9/25 Erasing : php52-soap 10/25 Erasing : php52-odbc 11/25 Erasing : php52-gd 12/25 Erasing : php52-dba 13/25 Erasing : php52-pear 14/25 Erasing : php52-mbstring 15/25 Erasing : php52-cli 16/25 Erasing : php52-pdo 17/25 Erasing : php52-common 18/25 警告: /etc/php.ini は /etc/php.ini.rpmsave として保存されました。 Erasing : php52-xml 19/25 Erasing : php52-xmlrpc 20/25 Erasing : php52-imap 21/25 Erasing : php52-bcmath 22/25 Erasing : php52-tidy 23/25 Erasing : php52-mhash 24/25 Erasing : php52-snmp 25/25 Removed: php52.i386 0:5.2.17-2.ius.el5 php52-bcmath.i386 0:5.2.17-2.ius.el5 php52-cli.i386 0:5.2.17-2.ius.el5 php52-common.i386 0:5.2.17-2.ius.el5 php52-dba.i386 0:5.2.17-2.ius.el5 php52-devel.i386 0:5.2.17-2.ius.el5 php52-gd.i386 0:5.2.17-2.ius.el5 php52-imap.i386 0:5.2.17-2.ius.el5 php52-ldap.i386 0:5.2.17-2.ius.el5 php52-mbstring.i386 0:5.2.17-2.ius.el5 php52-mcrypt.i386 0:5.2.17-2.ius.el5 php52-mhash.i386 0:5.2.17-2.ius.el5 php52-mssql.i386 0:5.2.17-2.ius.el5 php52-mysql.i386 0:5.2.17-2.ius.el5 php52-ncurses.i386 0:5.2.17-2.ius.el5 php52-odbc.i386 0:5.2.17-2.ius.el5 php52-pdo.i386 0:5.2.17-2.ius.el5 php52-pear.noarch 1:1.9.4-1.ius.el5 php52-pgsql.i386 0:5.2.17-2.ius.el5 php52-snmp.i386 0:5.2.17-2.ius.el5 php52-soap.i386 0:5.2.17-2.ius.el5 php52-suhosin.i386 0:0.9.32.1-3.ius.el5 php52-tidy.i386 0:5.2.17-2.ius.el5 php52-xml.i386 0:5.2.17-2.ius.el5 php52-xmlrpc.i386 0:5.2.17-2.ius.el5 Complete!
ここでは、php52*のようにワイルドカードを指定して一気に削除しています。もちろん、個々のパッケージを指定してもOKです。
php5.3系をインストールする。
|
ここでは、必要と思われるパッケージを全てインストールしています。
既に不要なパッケージが分かっていれば、ここで削除しましょう。
最後にバージョンチェック
|
PHP 5.3.xx と出力されればOKです。
php-fpmも、ここでちゃんとインストールできているか確認しておきましょう。
現在(2011.11)の最新版は、5.3.8となります。
php-fpmとnginxを連動させる
php-fpm + nginx でウェブサイトを立ち上げるには、それぞれの環境設定を行う必要があります。
PHP-FPMの設定ファイルを編集する
PHP-FPMの設定ファイル(/etc/php-fpm.conf)を編集します。
Nginx でPHPを動かす(php-fpmをバイナリパッケージ(rpm)を作成し、インストールする) [PHP5.2系の場合] の時とは異なり、
最新の/etc/php-fpm.confは、iniファイル形式になっています。XML形式よりわかりやすいです。
また、設定ファイルは、大きく2つに分かれています。
基本設定部 : /etc/php-fpm.conf
ウェブ設定部 : /etc/php-fpm.d/www.conf
|
|
一般的にこの種のファイルは、/varの配下が望ましいので、ここでは、
/var/run/php-fpm.pid としました。
これもPid fileと同じように、/varの配下が望ましいので、ここでは、
/var/log/php-fpm.log としました。
|
|
一般的に外部に公開することはないので、ここでは、デフォルトのまま
127.0.0.1:9000 としました。( IPアドレス:127.0.0.1(localhost), TCPポート番号:9000 )
nginx のユーザ名と同じにしておきます。ここでは、apacheからnginx へ移行したいので、apacheのユーザ名をそのまま使います。
apache
php-fpmのユーザ名と同様に、ここでは、apacheからnginx へ移行したいので、apacheのグループ名をそのまま使います。
apache
nginxの設定ファイルを編集する
nginxの設定ファイルについては、前回記事では、一切触れませんでした。
説明を始めると結構な量になるので、ここでも最小限にしておきます。
nginxの設定ファイルは、/etc/nginx/nginx.confが基本設定ファイルになります。
yumでインストールした場合、デフォルトウェブサイトの定義ファイルは、/etc/nginx/conf.d/default.conf になります。
|
|
php-fpm のユーザ名と同じにしておきます。ここでは、apacheからnginx へ移行したいので、apacheのユーザ名をそのまま使います。
apache
|
|
80
ここでは、設定例として、
www.example.com
を使います。
IPアドレスでアクセスする場合は、localhostのままでもOKです。
ここでは、phpファイルをデフォルト動作にしたいので、先頭に持ってきています。(優先順に並べます)
index.php index.html index.htm
ここでは、apacheからnginx へ移行したいので、apacheのデフォルトのルートディレクトリを指定してみました。
/var/www/html
ここでは、phpのデフォルト文字コードがutf-8で設定しているので、同じように設定しておきます。
utf-8
ここでは、apacheからnginx へ移行したいので、apacheと同じログの出力先を指定してみました。
/var/log/httpd/www.example.com.access.log
ここでは、apacheからnginx へ移行したいので、apacheと同じログの出力先を指定してみました。
/var/log/httpd/www.example.com.error.log
例)
http://www.example.com/cat1/test.html
とアクセスされた場合、ここでいうlocationは、
/cat1/test.html
になります。
ここでは、location以降に記述されているものが(正規表現による)条件式になります。
ここでは、\.php$を指定しているので、
拡張子が.phpなら、
という条件式になっています。
拡張子が.phpなら、
|
上記の設定で、特別に変更する必要はないと思います。
nginx , PHP-FPM を起動します。
|
最後に<?php echo phpinfo(); ?> を出力して確認してみましょう。
|
と、index.phpファイルを用意して、ここでの例では、http://www.example.comへアクセスすればPHPの情報が表示されるはずです。
それから、一応、PHP-FPMがちゃんと動作しているか、下の方にphp-fpmの記載がありますので、確認しておきましょう。
確認ができたら、chkconfigを使って、php-fpm , nginx が再起動しても同じように立ち上がるように設定しておきます。
|
これでOK。
Nginxを公式サイトから最新版をインストールする(CentOS/ScientificLinux編) と本記事で、rpmによるバイナリパッケージでインストールできます。
やっぱり、yumって楽ですね。php5.3系で良いなら、こちらが手間が省けておすすめです。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :