在配置Nginx作为虚拟主机来服务于ThinkPHP5(TP5)框架时,需要确保Nginx正确地解析HTTP请求并将其转发到TP5框架,以下是一个详细的配置步骤,包括必要的文件和设置。

Nginx虚拟主机配置步骤
安装Nginx和PHPFPM
确保你的服务器上已经安装了Nginx和PHPFPM,以下是在Ubuntu系统上安装的命令:
sudo apt update sudo apt install nginx phpfpm phpmysql
创建虚拟主机目录
为你的ThinkPHP5项目创建一个目录,并设置正确的权限:
sudo mkdir p /var/www/example.com sudo chown R $USER:$USER /var/www/example.com sudo chmod R 755 /var/www/example.com
配置Nginx
编辑Nginx的配置文件,通常位于/etc/nginx/sitesavailable/目录下,创建一个新的配置文件,例如example.com.conf:
sudo nano /etc/nginx/sitesavailable/example.com
添加以下配置:

server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgiphp.conf;
fastcgi_pass unix:/var/run/php/php7.4fpm.sock; # 根据你的PHP版本修改
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
链接虚拟主机配置文件到Nginx的启用目录
sudo ln s /etc/nginx/sitesavailable/example.com /etc/nginx/sitesenabled/
重启Nginx以应用配置
sudo systemctl restart nginx
配置PHPFPM
确保PHPFPM的配置文件/etc/php/7.4/fpm/pool.d/www.conf中包含以下行:
; listen = /var/run/php/php7.4fpm.sock listen = 127.0.0.1:9000
重启PHPFPM:
sudo systemctl restart php7.4fpm
表格:Nginx与PHPFPM配置参数
| 配置项 | 描述 | 示例值 |
|---|---|---|
| listen | PHPFPM监听的地址和端口 | 0.0.1:9000 |
| root | Nginx服务器的根目录 | /var/www/example.com/public |
| index | 默认的文件列表 | index.php index.html index.htm |
| try_files | 尝试直接服务静态文件,如果失败则转发到PHPFPM | $uri $uri/ /index.php?$query_string |
| fastcgi_pass | PHPFPM的socket文件位置 | unix:/var/run/php/php7.4fpm.sock |
| fastcgi_param | 传递给PHPFPM的参数 | SCRIPT_FILENAME=$document_root$fastcgi_script_name |
FAQs
Q1: 为什么我的网站无法访问?
A1: 确保以下步骤已正确执行:

- Nginx和PHPFPM已正确安装。
- 虚拟主机配置文件正确且已链接到
/etc/nginx/sitesenabled/。 - PHPFPM配置正确,且已重启。
- 网站目录权限正确,且
.htaccess文件未被禁止。
Q2: 如何更改网站域名?
A2: 要更改网站域名,你需要:
- 修改Nginx虚拟主机配置文件中的
server_name指令。 - 重新加载Nginx配置以应用更改。
- 如果使用DNS,更新DNS记录以指向新的域名。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/151981.html