在CentOS系统上安装Nginx和PHP是一个常见的任务,特别是在搭建Web服务器时,以下是一个详细的步骤指南,包括安装、配置和测试的全过程。
一、更新系统
确保你的CentOS系统是最新的,打开终端并运行以下命令:

sudo yum update y
二、安装Nginx
1. 安装EPEL仓库(如果Nginx不在默认仓库中)
sudo yum install epelrelease y
2. 安装Nginx
sudo yum install nginx y
3. 启动Nginx并设置开机自启
sudo systemctl start nginx sudo systemctl enable nginx
4. 检查Nginx服务状态
sudo systemctl status nginx
5. 配置防火墙(如果启用了防火墙)
对于firewalld:

sudo firewallcmd addservice=http permanent sudo firewallcmd reload
对于iptables,请根据实际情况配置规则以允许TCP 80端口。
三、安装PHP和PHPFPM
1. 安装EPELRemi仓库
sudo yum install epelrelease y sudo yum install http://rpms.remirepo.net/enterprise/remirelease7.rpm y
2. 安装PHP及其扩展
sudo yum install php phpfpm phpmysqlnd phpzip phpgd phpmbstring phpmcrypt phpxml phpjson y
3. 启动PHPFPM并设置开机自启
sudo systemctl start phpfpm sudo systemctl enable phpfpm
4. 修改PHPFPM配置文件
编辑/etc/phpfpm.d/www.conf文件,修改以下参数:

user = nginx group = nginx listen = /run/phpfpm/phpfpm.sock
确保以下两行代码没有被注释:
pid = /run/phpfpm/phpfpm.pid error_log = /var/log/phpfpm/error.log
5. 重启PHPFPM
sudo systemctl restart phpfpm
四、配置Nginx解析PHP
1. 创建一个新的Nginx配置文件
在/etc/nginx/conf.d/目录下创建一个新文件,例如default.conf,并将以下内容复制进去:
server {
listen 80;
server_name example.com; # 将example.com替换为你的实际域名或IP地址
# 静态文件缓存默认过期时间
expires 7d;
# 静态文件缓存目录配置
location ~* \.(?:css|js|png|gif|jpe?g|svg|woff|woff2|ttf|eot|ico)$ {
access_log off; # 禁用日志
add_header CacheControl "public, maxage=604800, immutable"; # 缓存配置
add_header XFrameOptions "SAMEORIGIN";
expires 7d;
try_files $uri =404;
}
# PHP 配置
location ~ \.php$ {
fastcgi_pass unix:/run/phpfpm/phpfpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 静态文件代理
location / {
proxy_pass http://127.0.0.1:8080; # 将8080替换为你的实际端口号
proxy_set_header Host $http_host;
proxy_set_header XRealIP $remote_addr;
proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
}
}2. 重启Nginx
sudo systemctl restart nginx
五、测试配置
在/usr/share/nginx/html目录下创建一个PHP文件info.php,并将以下内容复制进去:
<?php phpinfo(); ?>
然后在浏览器中访问你的域名或IP地址,应出现PHP信息页面,表示已成功设置PHP + Nginx环境。
六、相关FAQs问答
Q1:如何更改Nginx服务器的监听端口?
A1: 要更改Nginx服务器的监听端口,可以编辑Nginx配置文件(通常是/etc/nginx/nginx.conf),找到listen指令并将其值更改为所需的端口号,要将监听端口更改为8080,可以将listen 80;改为listen 8080;,然后保存文件并重启Nginx服务:
sudo systemctl restart nginx
还需要确保防火墙允许新的端口号通过。
Q2:如何在Nginx中配置SSL证书?
A2: 要在Nginx中配置SSL证书,你需要执行以下步骤:
1、确保你拥有有效的SSL证书和私钥文件,这些文件由证书颁发机构(CA)提供。
2、将SSL证书和私钥文件上传到服务器的一个安全位置,例如/etc/nginx/ssl/目录。
3、编辑Nginx配置文件(例如/etc/nginx/nginx.conf或特定站点的配置文件),在相应的server块中添加SSL配置。
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/your_domain.crt;
ssl_certificate_key /etc/nginx/ssl/your_domain.key;
# 其他配置...
}将your_domain.crt和your_domain.key替换为你的SSL证书和私钥文件的实际路径,如果你的证书是由CA签名的,并且你有中间证书,你还需要指定ssl_trusted_certificate指令来包含中间证书。
ssl_trusted_certificate /etc/nginx/ssl/intermediate.crt;
4、保存配置文件并重启Nginx服务以应用更改:
sudo systemctl restart nginx
你的Nginx服务器应该可以通过HTTPS(使用SSL/TLS)进行访问了,确保在浏览器中访问你的网站时使用https://前缀。
