編碼的世界 / 優質文選 / 文明

如何在CentOS 6上通過YUM安裝Nginx和PHP-FPM


2021年10月03日
-   

原文地址:http://www.lifelinux.com/how-to-install-nginx-and-php-fpm-on-centos-6-via-yum/
開始安裝Nginx和PHP-FPM之前,你必須卸載系統中以前安裝的Apache和PHP。用root登錄輸入下面的命令:
# yum remove httpd* php*

增加額外資源庫
    默認情況下,CentOS的官方資源是沒有php-fpm的, 但我們可以從Remi的RPM資源中獲得,它依賴於EPEL資源。我們可以這樣增加兩個資源庫:
# 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%]

安裝Nginx
輸入下列命令
# yum install nginx

輸出樣例
Dependencies Resolved
================================================================================
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

如果你想在系統啟動時自動運行nginx,輸入下列命令:
# chkconfig level 345 nginx on

第一次啟動nginx,輸入下列命令:
# /etc/init.d/nginx start

輸出樣例
Starting nginx: [ OK ]

安裝PHP-FPM 輸入下列命令:
# yum enablerepo=remi install php php-fpm

輸出樣例
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 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

如果你想在系統啟動時自動運行php-fpm,輸入下列命令:
# chkconfig level 345 php-fpm on

PHP僅安裝了核心模塊,你很可能需要安裝其他的模塊,比如MySQL、 XML、 GD等等,你可以輸入下列命令:
# yum enablerepo=remi install php-gd php-mysql php-mbstring php-xml php-mcrypt

第一次啟動php-fpm,輸入下列命令:
# /etc/init.d/php-fpm restart

輸出樣例
Starting php-fpm: [ OK ]

配置PHP-FPM和Nginx,讓他們一起工作
nginx的配置文件在/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;
}

重啟Nginx會重新讀取配置文件,輸入
# /etc/init.d/nginx reload

現在在
document root目錄下建立下列PHP文件
# vi /usr/share/nginx/html/info.php

文件內容如下:
<?php
phpinfo();
?>

訪問 http://YOUR-SERVER-IP

Nginx虛擬主機設置 設置例子 IP: 192.168.1.113 Domain: domain.local Hosted at: /home/www/domain.local
輸入下列命令新建名叫“www”的用戶
# useradd 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/

創建虛擬主機配置文件
# cd /etc/nginx/conf.d/
# cp virtual.conf www.conf

輸入下面命令打開www.conf文件
# vi /etc/nginx/conf.d/www.conf

增加以下配置
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;
}
}

你可以用下列方法檢查配置文件是否有語法錯誤
# /etc/init.d/nginx configtest

輸出樣例
the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful

現在編輯
/etc/php-fpm.d/www.conf文件,將運行php-fpm進程的用戶改為“www”,輸入
# 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

最後重啟nginx
# /etc/init.d/nginx restart
# /etc/init.d/php-fpm restart

熱門文章