在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://
前缀。