2023网站推广入口wordpress注册收不到邮件
Windows 环境下 Nginx、PHP 与 ThinkPHP 开发环境搭建
目录
- 安装 Nginx 和 PHP
 - 配置 Nginx
 - 配置 PHP
 - 启动服务
 - ThinkPHP 配置
 - 常见问题排查
 
1. 安装 Nginx 和 PHP
安装 Nginx
- 访问 Nginx 官网 下载 Windows 版本
 - 解压到指定目录,如 
C:\nginx 
安装 PHP
- 访问 PHP 官网 下载 PHP(推荐 PHP 7.4 或更高版本)
 - 选择 Non Thread Safe (NTS) x64 版本
 - 解压到指定目录,如 
C:\php 
2. 配置 Nginx
基本配置
编辑 nginx/conf/nginx.conf 文件:
#user  nobody;
worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {root   C:/wwwroot/phpnginx/thinkphp_layui/public;index  index.html index.htm index.php;# ThinkPHP 伪静态规则if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s=$1 last;break;}}# 启用 PHP 脚本处理location ~ \.php$ {root           C:/wwwroot/phpnginx/thinkphp_layui/public;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;fastcgi_buffers 16 16k;fastcgi_buffer_size 32k;}}
}
 
注意事项
- 路径使用正斜杠 
/而非反斜杠\ - 确保 
root指向正确的 ThinkPHP 项目 public 目录 - 伪静态规则对 ThinkPHP 路由至关重要
 
3. 配置 PHP
创建 php.ini 文件
- 复制 PHP 目录中的 
php.ini-development为php.ini - 编辑 
php.ini文件,启用必要的扩展: 
extension_dir = "ext"; 取消以下扩展前的注释(删除分号)
extension=curl
extension=fileinfo
extension=gd
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=mysqli; 设置时区
date.timezone = Asia/Shanghai
 
配置 PHP-FPM
- 在 PHP 目录中找到 
php-fpm.conf.default,复制为php-fpm.conf - 编辑 
php-fpm.conf,确保监听地址为: 
listen = 127.0.0.1:9000
 
4. 启动服务
启动 PHP-FPM
打开命令提示符,执行:
cd C:\php
php-cgi.exe -b 127.0.0.1:9000
 
或者如果使用 PHP-FPM:
cd C:\php
php-fpm.exe
 
启动 Nginx
打开新的命令提示符,执行:
cd C:\nginx
start nginx
 
5. ThinkPHP 配置
项目目录结构
确保 ThinkPHP 项目结构如下:
thinkphp_layui/
├── app/
├── config/
├── extend/
├── public/
│   ├── index.php
│   ├── static/
│   └── ...
├── runtime/
├── vendor/
└── ...
 
数据库配置
编辑 config/database.php 文件:
return [// 默认使用的数据库连接配置'default'         => env('database.driver', 'mysql'),// 数据库连接配置信息'connections'     => ['mysql' => [// 数据库类型'type'              => env('database.type', 'mysql'),// 服务器地址'hostname'          => env('database.hostname', '127.0.0.1'),// 数据库名'database'          => env('database.database', 'thinkphp'),// 用户名'username'          => env('database.username', 'root'),// 密码'password'          => env('database.password', ''),// 端口'hostport'          => env('database.hostport', '3306'),// 数据库连接参数'params'            => [],// 数据库编码默认采用utf8'charset'           => env('database.charset', 'utf8'),// 数据库表前缀'prefix'            => env('database.prefix', ''),],],
];
 
环境配置
在项目根目录创建 .env 文件:
APP_DEBUG = true[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = thinkphp
USERNAME = root
PASSWORD = your_password
HOSTPORT = 3306
CHARSET = utf8
PREFIX = tp_
 
6. 常见问题排查
“No input file specified” 错误
- 检查 Nginx 配置中的 root 路径是否正确
 - 确保 
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;配置正确 - 检查 PHP-FPM 是否正在运行
 
PHP 扩展缺失
如果安装页面提示缺少扩展,编辑 php.ini 文件启用相应扩展,然后重启 PHP-FPM。
权限问题
确保 Nginx 和 PHP-FPM 有足够权限访问项目文件。
日志检查
- Nginx 错误日志:
C:\nginx\logs\error.log - PHP 错误日志:在 
php.ini中配置error_log指令 
端口冲突
如果 80 端口被占用,可以修改 Nginx 配置使用其他端口,如 8080。
Nginx 常用命令
- 重新加载配置:
nginx -s reload - 停止服务:
nginx -s stop - 测试配置文件:
nginx -t 
设置为 Windows 服务(可选)
使用 NSSM 工具可以将 Nginx 和 PHP-FPM 设置为 Windows 服务,实现开机自启动。
