Windows 环境下 Nginx、PHP 与 ThinkPHP 开发环境搭建
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 服务,实现开机自启动。
相关文章:
Windows 环境下 Nginx、PHP 与 ThinkPHP 开发环境搭建
Windows 环境下 Nginx、PHP 与 ThinkPHP 开发环境搭建 目录 安装 Nginx 和 PHP配置 Nginx配置 PHP启动服务ThinkPHP 配置常见问题排查 1. 安装 Nginx 和 PHP 安装 Nginx 访问 Nginx 官网 下载 Windows 版本解压到指定目录,如 C:\nginx 安装 PHP 访问 PHP 官网…...
Redis100道高频面试题
一、Redis基础 Redis是什么?主要应用场景有哪些? Redis 是一个开源的、基于内存的数据结构存储系统,支持多种数据结构(如字符串、哈希、列表、集合等),可以用作数据库、缓存和消息中间件。 主要应用场景&…...
登录服务器后如何找到对应的drupal所在的文件夹
在服务器上找不到 Drupal 安装目录的原因可能有以下几种: 多站点配置: Drupal 支持多站点设置,即在同一安装中托管多个网站。在这种配置下,每个站点都有自己的设置和文件夹,通常位于 sites 目录下。例如,站…...
win32汇编环境,窗口程序中使控件子类化的示例一
;运行效果 ;win32汇编环境,窗口程序中使编辑框控件子类化的示例一 ;窗口子类化,就是把某种控件,自已再打造一遍,加入自已的功能。比如弄个特殊形状的按钮,或只能输入特殊字符的编辑框 ;当然,一般来说,这都是…...
专业工具,杜绝一切垃圾残留!
在安装大多数软件时均会在系统注册表中创建相应的条目。如果卸载后仍然存在注册表残留,可能会导致再次安装时出现失败,同时也会对系统性能和存储空间产生负面影响。常见的卸载残留包括注册表项、程序文件夹、用户数据文件夹、临时文件以及相关插件等。 …...
java 实现简易基于Dledger 的选举
java 实现简易基于Dledger 的选举 1. 定义 Dledger 节点类,包含节点的状态、日志存储、选举和日志复制逻辑 import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.Executors; import java.util.concurrent.S…...
大数据“调味“ ,智慧“添香“,看永洪科技助力绝味食品数字化新征程
近年来,随着国家数字化政策不断出台、新兴技术不断进步、企业内生需求持续释放,数字化转型逐步成为企业实现高质量发展的必由之路,成为企业实现可持续发展乃至弯道超车的重要途径。 在全国数字化浪潮驱动下,以人工智能、互联网、…...
【嵌入式】MQTT
MQTT 文章目录 MQTT安装简介MQTT客户端代码 安装 安装Paho MQTT C库: sudo apt-get install libpaho-mqtt3-dev头文件包含: #include "MQTTClient.h"编译选项: gcc -o $ $^ -lpaho-mqtt3c简介 MQTT协议全称是(Message Queuing…...
vue原理面试题
以下是一些关于Vue原理的面试题: 一、虚拟DOM与响应式系统 Vue中的虚拟DOM是如何工作的? 答案: 当Vue组件的数据发生变化时,Vue首先会在虚拟DOM中构建一个新的虚拟DOM树来表示更新后的组件结构。然后,Vue会将新的虚拟DOM树与旧的虚拟DOM树进行比较(这个过程称为Diff算法…...
office集成deepseek插件,office集成deepseek教程(附安装包)
文章目录 前言一、下载与安装OfficeAI 助手二、获取 DeepSeek 的 API key三、在 OfficeAI 助手中配置 DeepSeek API key四、使用 OfficeAI 助手功能 前言 本教程将为你详细讲解 Office 集成 DeepSeek 的安装步骤和使用方法,助你轻松拥抱智能办公新时代,…...
行业洞察|安踏、迪桑特、始祖鸟、昂跑、lululemon等运动户外品牌的「营销创新和会员运营」对比解读
商派助力国际知名鞋品牌OMS系统全面升级,拓展业务类型和营销玩法! 一、业务模式创新:打破传统边界,构建多维竞争力 近年来,户外运动品牌在业务模式上的革新呈现三大趋势:DTC模式深化、多品牌矩阵重构、技术…...
小鹏汽车申请注册“P7 Ultra”商标 或为P7车型升级版铺路
大湾区经济网品牌工程频道报道,据企查查APP显示,广东小鹏汽车科技有限公司近日提交“P7 Ultra”商标注册申请,国际分类为运输工具,当前状态为“注册申请中”。业内推测,此举或为小鹏P7车型高端版本量产上市做准备。 作…...
数列极限入门习题
数列极限入门习题 lim n → ∞ ( 1 1 2 1 3 ⋯ 1 n ) 1 n \lim\limits_{n\rightarrow\infty}(1 \frac{1}{2}\frac{1}{3}\cdots\frac{1}{n})^{\frac{1}{n}} n→∞lim(12131⋯n1)n1 lim n → ∞ ( 1 n 1 1 n 2 ⋯ 1 n n ) \lim\limits_{n\rightarrow\…...
ubuntu部署gitlab-ce及数据迁移
ubuntu部署gitlab-ce及数据迁移 进行前梳理: 在esxi7.0 Update 3 基础上使用 ubuntu22.04.5-server系统对 gitlab-ce 16.10进行部署,以及将gitlab-ee 16.9 数据进行迁移到gitlab-ce 16.10 进行后总结: 起初安装了极狐17.8.3-jh 版本(不支持全局中文,就没用了) …...
批量设置 Word 样式,如字体信息、段落距离、行距、页边距等信息
在 Word 文档中,我们可以做各种样式的处理。比如设置 Word 文档的字体样式、设置 Word 文档的段落样式以及设置 Word 文档的页面样式。我们通常可以在 Office 中完成这些操作,相信绝大部分场景我们也是这样完成的。但是如果我们手上有 1000 个 Word 文档…...
【论文分析】语义驱动+迁移强化学习:无人机自主视觉导航的高效解决方案(语义驱动的无人机自主视觉导航)
论文阅读:《Semantic-Driven Autonomous Visual Navigation for Unmanned Aerial Vehicles》语义驱动的无人机自主视觉导航 1. 引言 这篇论文《Semantic-Driven Autonomous Visual Navigation for Unmanned Aerial Vehicles》发表在《IEEE Transactions on Indust…...
JDK官网安装教程 Windows
文章目录 概要整体架构流程 概要 JDK 是 Java 开发的基础,无论是开发桌面应用、Web 应用、移动应用,还是大数据、云计算相关项目,都需要先安装 JDK 整体架构流程 第一步,进入官网 Java Downloads | Oracle 中国 ①可以直接复…...
MR30系列分布式I/O:高稳定与高精准赋能锂电池覆膜工艺革新
在新能源行业高速发展的背景下,锂电池生产工艺对自动化控制的精准性和可靠性提出了更高要求。作为锂电池生产中的关键环节,覆膜工艺直接关系到电池的绝缘性能、安全性及使用寿命。面对复杂的工艺控制需求,明达技术MR30系列分布式I/O模块凭借其…...
android 横竖屏适配工作总结
1、创建一个横屏文件夹,复制一份竖屏的布局。然后修改适配横屏。只要布局id都有,其他想怎么改就怎么修改。 2、最好使用kotlin语言编写和使用viewBinding绑定控件,可以使用?.判空控件是否存在,不至于缺少这个控件时候直接崩溃。 …...
离散傅里叶变换(Discrete Fourier Transform, DFT)及其在图像处理中的应用
离散傅里叶变换(DFT)及其在图像处理中的应用 什么是离散傅里叶变换? 离散傅里叶变换(Discrete Fourier Transform, DFT)是一种强大的数学工具,用于将离散信号从时域(或空间域)转换…...
AIoT网关50+AI算法硬核加持,AIoT边缘计算赋能千行百业
在物联网与人工智能深度融合的时代,边缘侧的智能感知与决策能力成为行业数字化转型的核心。计讯物联TG465系列5G AIoT边缘计算机,以50成熟视觉AI算法为核心,搭载工业级强悍硬件,打造"AIIoT深度融合"的多模态智能体&…...
英雄年代怀旧版官网下载:正版复刻国战经典,热血回归
英雄年代怀旧版官网下载:正版复刻国战经典,热血回归《英雄年代怀旧版》(又名《风爆远征英雄年代怀旧版》)是安徽游昕运营、盛趣正版授权的复古国战 MMORPG 手游,1:1 复刻 2004 年端游原版内容,剔除魔神、暗…...
别再重复造轮子!用PADS自带转换器+立创EDA,5分钟搞定原理图符号同步
高效复用立创EDA资源:PADS原理图符号同步实战指南 在硬件设计领域,重复绘制原理图符号堪称工程师的"时间黑洞"。当你在立创EDA上发现完美的元器件模型时,为何还要在PADS中从零开始?本文将揭示一套被多数人忽视的PADS原生…...
手把手教你配置HC32F460的Timer0 Unit2 B通道,精准实现400us串口接收超时
HC32F460定时器精准配置实战:400us串口接收超时中断与DMA协同设计 在嵌入式系统中,串口通信的可靠性往往取决于对数据包边界的准确判断。当面对无固定帧头尾的连续数据流时,如何精确捕捉数据包间隔成为开发难点。HC32F460系列MCU提供的接收超…...
快速上手Notepad2-mod:5个步骤打造你的专属轻量级代码编辑器
快速上手Notepad2-mod:5个步骤打造你的专属轻量级代码编辑器 【免费下载链接】notepad2-mod LOOKING FOR DEVELOPERS - Notepad2-mod, a Notepad2 fork, a fast and light-weight Notepad-like text editor with syntax highlighting 项目地址: https://gitcode.c…...
10分钟终极指南:使用Chronos时间序列预测模型快速上手
10分钟终极指南:使用Chronos时间序列预测模型快速上手 【免费下载链接】chronos-forecasting Chronos: Pretrained Models for Time Series Forecasting 项目地址: https://gitcode.com/GitHub_Trending/ch/chronos-forecasting 想要在几分钟内完成专业级的时…...
Wannakey终极指南:免费恢复WannaCry加密文件的专业内存密钥恢复工具
Wannakey终极指南:免费恢复WannaCry加密文件的专业内存密钥恢复工具 【免费下载链接】wannakey Wannacry in-memory key recovery 项目地址: https://gitcode.com/gh_mirrors/wa/wannakey Wannakey是一款专为恢复WannaCry勒索软件加密文件而设计的免费开源工…...
如何在Windows系统中创建虚拟游戏手柄?vJoy开源项目完全指南
如何在Windows系统中创建虚拟游戏手柄?vJoy开源项目完全指南 【免费下载链接】vJoy Virtual Joystick 项目地址: https://gitcode.com/gh_mirrors/vj/vJoy 你是否曾因缺少物理游戏手柄而无法体验某些经典游戏?或者需要为专业软件创建自定义控制方…...
PHP方案 swoole++io_uring写一个案例
下面是一个完整的 Swoole io_uring 案例,涵盖 HTTP 服务器、协程文件 I/O 和并发请求三个场景。--- ns)环境要求 …...
G-Helper终极指南:释放华硕笔记本潜能的免费开源神器
G-Helper终极指南:释放华硕笔记本潜能的免费开源神器 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Exp…...
