開始安裝Nginx和PHP-FPM之前,你必須卸載系統(tǒng)中以前安裝的Apache和PHP。用root登錄輸入下面的命令:
# yum remove httpd* php*
增加額外資源庫(kù) 默認(rèn)情況下,CentOS的官方資源是沒有php-fpm的, 但我們可以從Remi的RPM資源中獲得,它依賴于EPEL資源。我們可以這樣增加兩個(gè)資源庫(kù):
# yum install yum-priorities -y
- # rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
- # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# yum install yum-priorities -y# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
輸出樣例
Retrieving http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
- warning: /var/tmp/rpm-tmp.00kiDx: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
- Preparing...########################################### [100%]
- 1:epel-release ########################################### [100%]
Retrieving http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-7.noarch.rpmwarning: /var/tmp/rpm-tmp.00kiDx: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEYPreparing...########################################### [100%]1:epel-release ########################################### [100%]
安裝Nginx 輸入下列命令
# yum install nginx
輸出樣例 - ================================================================================
- Package Arch Version Repository Size
- ================================================================================
- Installing:
- nginx x86_64 0.8.54-1.el6 epel 358 k
- Installing for dependencies:
- GeoIP x86_64 1.4.8-1.el6 epel 620 k
- fontconfig x86_64 2.8.0-3.el6 base 186 k
- freetype x86_64 2.3.11-6.el6_1.8 updates 358 k
- gd x86_64 2.0.35-10.el6 base 142 k
- libX11 x86_64 1.3-2.el6 base 582 k
- libX11-common noarch 1.3-2.el6 base 188 k
- libXau x86_64 1.0.5-1.el6 base 22 k
- libXpm x86_64 3.5.8-2.el6 base 59 k
- libjpeg x86_64 6b-46.el6 base 134 k
- libpng x86_64 2:1.2.46-1.el6_1 base 180 k
- libxcb x86_64 1.5-1.el6 base 100 k
- libxslt x86_64 1.1.26-2.el6 base 450 k
- perl x86_64 4:5.10.1-119.el6_1.1 base 10 M
- perl-Module-Pluggable x86_64 1:3.90-119.el6_1.1 base 37 k
- perl-Pod-Escapes x86_64 1:1.04-119.el6_1.1 base 30 k
- perl-Pod-Simple x86_64 1:3.13-119.el6_1.1 base 209 k
- perl-libs x86_64 4:5.10.1-119.el6_1.1 base 575 k
- perl-version x86_64 3:0.77-119.el6_1.1 base 49 k
- Transaction Summary
- ================================================================================
- Install 19 Package(s)
- Upgrade 0 Package(s)
- Total download size: 14 M
- Installed size: 47 M
- Is this ok [y/N]: y
Dependencies Resolved================================================================================ Package Arch Version Repository Size================================================================================Installing: nginx x86_64 0.8.54-1.el6 epel 358 kInstalling for dependencies: GeoIP x86_64 1.4.8-1.el6 epel 620 k fontconfig x86_64 2.8.0-3.el6 base 186 k freetype x86_64 2.3.11-6.el6_1.8 updates 358 k gd x86_64 2.0.35-10.el6 base 142 k libX11 x86_64 1.3-2.el6 base 582 k libX11-common noarch 1.3-2.el6 base 188 k libXau x86_64 1.0.5-1.el6 base 22 k libXpm x86_64 3.5.8-2.el6 base 59 k libjpeg x86_64 6b-46.el6 base 134 k libpng x86_64 2:1.2.46-1.el6_1 base 180 k libxcb x86_64 1.5-1.el6 base 100 k libxslt x86_64 1.1.26-2.el6 base 450 k perl x86_64 4:5.10.1-119.el6_1.1 base 10 M perl-Module-Pluggable x86_64 1:3.90-119.el6_1.1 base 37 k perl-Pod-Escapes x86_64 1:1.04-119.el6_1.1 base 30 k perl-Pod-Simple x86_64 1:3.13-119.el6_1.1 base 209 k perl-libs x86_64 4:5.10.1-119.el6_1.1 base 575 k perl-version x86_64 3:0.77-119.el6_1.1 base 49 kTransaction Summary================================================================================Install 19 Package(s)Upgrade 0 Package(s)Total download size: 14 MInstalled size: 47 MIs this ok [y/N]: y
如果你想在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行nginx,輸入下列命令: # chkconfig --level 345 nginx on
# chkconfig --level 345 nginx on
第一次啟動(dòng)nginx,輸入下列命令: # /etc/init.d/nginx start
# /etc/init.d/nginx start
輸出樣例 Starting nginx: [ OK ]
安裝PHP-FPM 輸入下列命令:
# yum --enablerepo=remi install php php-fpm
# yum --enablerepo=remi install php php-fpm
輸出樣例 - ====================================================================================
- Package Arch Version Repository Size
- ====================================================================================
- Installing:
- php x86_64 5.3.10-2.el6.remi remi 2.3 M
- php-fpm x86_64 5.3.10-2.el6.remi remi 1.1 M
- Installing for dependencies:
- apr x86_64 1.3.9-3.el6_1.2 base 123 k
- apr-util x86_64 1.3.9-3.el6_0.1 base 87 k
- apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k
- httpd x86_64 2.2.15-15.el6.centos.1 updates 813 k
- httpd-tools x86_64 2.2.15-15.el6.centos.1 updates 70 k
- libedit x86_64 2.11-4.20080712cvs.1.el6 base 74 k
- mailcap noarch 2.1.31-2.el6 base 27 k
- php-cli x86_64 5.3.10-2.el6.remi remi 2.2 M
- Transaction Summary
- ====================================================================================
- Install 10 Package(s)
- Upgrade 0 Package(s)
- Total download size: 6.8 M
- Installed size: 21 M
- Is this ok [y/N]: y
Dependencies Resolved==================================================================================== Package Arch Version Repository Size====================================================================================Installing: php x86_64 5.3.10-2.el6.remi remi 2.3 M php-fpm x86_64 5.3.10-2.el6.remi remi 1.1 MInstalling for dependencies: apr x86_64 1.3.9-3.el6_1.2 base 123 k apr-util x86_64 1.3.9-3.el6_0.1 base 87 k apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k httpd x86_64 2.2.15-15.el6.centos.1 updates 813 k httpd-tools x86_64 2.2.15-15.el6.centos.1 updates 70 k libedit x86_64 2.11-4.20080712cvs.1.el6 base 74 k mailcap noarch 2.1.31-2.el6 base 27 k php-cli x86_64 5.3.10-2.el6.remi remi 2.2 MTransaction Summary====================================================================================Install 10 Package(s)Upgrade 0 Package(s)Total download size: 6.8 MInstalled size: 21 MIs this ok [y/N]: y
如果你想在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行php-fpm,輸入下列命令: # chkconfig --level 345 php-fpm on
# chkconfig --level 345 php-fpm on
PHP僅安裝了核心模塊,你很可能需要安裝其他的模塊,比如MySQL、 XML、 GD等等,你可以輸入下列命令: # yum --enablerepo=remi install php-gd php-mysql php-mbstring php-xml php-mcrypt
# yum --enablerepo=remi install php-gd php-mysql php-mbstring php-xml php-mcrypt
第一次啟動(dòng)php-fpm,輸入下列命令: # /etc/init.d/php-fpm restart
# /etc/init.d/php-fpm restart
輸出樣例 Starting php-fpm: [ OK ]
配置PHP-FPM和Nginx,讓他們一起工作
nginx的配置文件在/etc/nginx/nginx.conf,輸入下列命令編輯這個(gè)文件:
# vi /etc/nginx/nginx.conf
# vi /etc/nginx/nginx.conf
像下面這樣編輯取消注釋:
- location / {
- root /usr/share/nginx/html;
- index index.html index.htm index.php;
- }
- ...
- location ~ \.php$ {
- root html;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- ...
... location / { root /usr/share/nginx/html; index index.html index.htm index.php; } ... location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ...
重啟Nginx會(huì)重新讀取配置文件,輸入
# /etc/init.d/nginx reload
# /etc/init.d/nginx reload
現(xiàn)在在
document root目錄下建立下列PHP文件
# vi /usr/share/nginx/html/info.php
# vi /usr/share/nginx/html/info.php
文件內(nèi)容如下: <?phpphpinfo();?>
訪問 http://YOUR-SERVER-IP
Nginx虛擬主機(jī)設(shè)置
設(shè)置例子
IP: 192.168.1.113
Domain: domain.local
Hosted at: /home/www/domain.local
輸入下列命令新建名叫“www”的用戶
# useradd www
創(chuàng)建必要的目錄
# mkdir -p /home/www/domain.local/public_html
- # mkdir -p /home/www/domain.local/log
- # chown -R www.www /home/www/
- # chmod 755 /home/www/
# mkdir -p /home/www/domain.local/public_html# mkdir -p /home/www/domain.local/log# chown -R www.www /home/www/# chmod 755 /home/www/
創(chuàng)建虛擬主機(jī)配置文件
- # cp virtual.conf www.conf
# cd /etc/nginx/conf.d/# cp virtual.conf www.conf
輸入下面命令打開www.conf文件
# vi /etc/nginx/conf.d/www.conf
# vi /etc/nginx/conf.d/www.conf
增加以下配置
- server_name domain.local;
- root /home/www/domain.local/public_html;
- access_log /home/www/domain.local/log/domain.local-access.log;
- error_log /home/www/domain.local/log/domain.local-error.log;
- location / {
- index index.html index.htm index.php;
- }
- location ~ \.php$ {
- include /etc/nginx/fastcgi_params;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- }
- }
server { server_name domain.local; root /home/www/domain.local/public_html; access_log /home/www/domain.local/log/domain.local-access.log; error_log /home/www/domain.local/log/domain.local-error.log; location / { index index.html index.htm index.php; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }}
你可以用下列方法檢查配置文件是否有語(yǔ)法錯(cuò)誤
# /etc/init.d/nginx configtest
# /etc/init.d/nginx configtest
輸出樣例
the configuration file /etc/nginx/nginx.conf syntax is ok
- configuration file /etc/nginx/nginx.conf test is successful
the configuration file /etc/nginx/nginx.conf syntax is okconfiguration file /etc/nginx/nginx.conf test is successful
現(xiàn)在編輯
/etc/php-fpm.d/www.conf文件,將運(yùn)行php-fpm進(jìn)程的用戶改為“www”,輸入
# vi /etc/php-fpm.d/www.conf
# vi /etc/php-fpm.d/www.conf
找到“
group of processes”,編輯成下面的樣子:
; Unix user/group of processes
- ; Note: The user is mandatory. If the group is not set, the default user's group
- ; will be used.
- ; RPM: apache Choosed to be able to access some dir as httpd
- user = www
- ; RPM: Keep a group allowed to write in log dir.
- group = www
; Unix user/group of processes; Note: The user is mandatory. If the group is not set, the default user's group; will be used.; RPM: apache Choosed to be able to access some dir as httpduser = www; RPM: Keep a group allowed to write in log dir.group = www
最后重啟nginx
# /etc/init.d/nginx restart
- # /etc/init.d/php-fpm restart