15 KiB
Windows 服务器 PHP 项目部署指南
目录
方案一:Apache + PHP(推荐新手)
优点
- 配置简单,一键安装
- .htaccess 自动生效,无需额外配置
- 适合 Windows 环境
- 图形化管理界面
缺点
- 性能略低于 Nginx
- 内存占用较高
步骤 1:下载安装包
方式 A:使用 XAMPP(最简单)
-
下载 XAMPP
- 官网:https://www.apachefriends.org/
- 选择 Windows 版本
- 包含:Apache + PHP + MySQL
-
安装 XAMPP
双击安装程序 选择安装路径:C:\xampp 勾选组件: ✓ Apache ✓ MySQL ✓ PHP ✓ phpMyAdmin -
启动服务
打开 XAMPP Control Panel 点击 Apache 的 "Start" 按钮 点击 MySQL 的 "Start" 按钮
方式 B:使用 PHPStudy(国内推荐)
-
下载 PHPStudy
- 官网:https://www.xp.cn/
- 下载 Windows 版本
- 集成环境,中文界面
-
安装并启动
安装到:D:\phpstudy_pro 启动面板 启动 Apache 和 MySQL
步骤 2:部署项目
2.1 复制项目文件
XAMPP 方式:
将你的 back 文件夹复制到:
C:\xampp\htdocs\back
PHPStudy 方式:
将你的 back 文件夹复制到:
D:\phpstudy_pro\WWW\back
2.2 配置虚拟主机(可选,推荐)
XAMPP 配置:
-
编辑 Apache 配置文件
打开:C:\xampp\apache\conf\extra\httpd-vhosts.conf -
添加虚拟主机配置
<VirtualHost *:80> ServerName localhost DocumentRoot "C:/xampp/htdocs/back/public" <Directory "C:/xampp/htdocs/back/public"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog "logs/back-error.log" CustomLog "logs/back-access.log" common </VirtualHost> -
重启 Apache
在 XAMPP Control Panel 点击 Apache 的 "Stop" 再点击 "Start"
PHPStudy 配置:
- 打开 PHPStudy 面板
- 点击 "网站" → "创建网站"
- 填写信息:
域名:localhost 或 your-domain.com 端口:80 根目录:D:\phpstudy_pro\WWW\back\public PHP 版本:选择 7.2 或更高 - 点击 "确认"
步骤 3:配置 PHP
3.1 检查 PHP 扩展
XAMPP:
编辑:C:\xampp\php\php.ini
PHPStudy:
在面板中点击 "软件管理" → "PHP" → "配置文件"
确保以下扩展已启用(去掉前面的分号):
extension=curl
extension=gd2
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=openssl
; 如果需要连接 SQL Server(你的项目有用到)
extension=pdo_sqlsrv
extension=sqlsrv
3.2 下载 SQL Server 驱动(重要!)
你的项目需要连接 SQL Server,需要额外安装驱动:
-
下载 Microsoft Drivers for PHP for SQL Server
-
解压并复制 DLL 文件
将 php_sqlsrv_*.dll 和 php_pdo_sqlsrv_*.dll 复制到: XAMPP: C:\xampp\php\ext\ PHPStudy: D:\phpstudy_pro\Extensions\php\php7.x\ext\ -
在 php.ini 中启用
extension=php_sqlsrv_74_ts_x64.dll extension=php_pdo_sqlsrv_74_ts_x64.dll -
重启 Apache
步骤 4:安装 Composer 依赖
-
下载 Composer for Windows
- 官网:https://getcomposer.org/download/
- 下载 Composer-Setup.exe
-
安装 Composer
双击安装程序 选择 PHP 路径: XAMPP: C:\xampp\php\php.exe PHPStudy: D:\phpstudy_pro\Extensions\php\php7.x\php.exe -
安装项目依赖
打开命令提示符(CMD) cd C:\xampp\htdocs\back composer install如果速度慢,使用国内镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ composer install
步骤 5:配置项目
5.1 修改数据库配置
编辑:back/application/database.php
return [
'type' => 'mysql',
'hostname' => '127.0.0.1', // 本地数据库
'database' => 'oms', // 数据库名
'username' => 'root', // 用户名
'password' => '', // XAMPP 默认为空,PHPStudy 可能是 root
'hostport' => '3306',
'charset' => 'utf8',
'prefix' => 'wdq_',
];
5.2 修改应用配置
编辑:back/application/config.php
return [
// 开发环境可以开启,生产环境必须关闭
'app_debug' => true,
// 修改文件服务器地址
'file_server_url' => 'http://localhost',
// 其他配置保持不变...
];
5.3 设置目录权限
右键点击以下文件夹 → 属性 → 安全:
back/runtime → 完全控制
back/public/uploads → 完全控制(如果有)
或使用命令:
icacls "C:\xampp\htdocs\back\runtime" /grant Everyone:F /T
步骤 6:导入数据库
使用 phpMyAdmin(XAMPP/PHPStudy 自带)
-
访问 phpMyAdmin
XAMPP: http://localhost/phpmyadmin PHPStudy: http://localhost/phpMyAdmin -
创建数据库
点击 "新建" 数据库名:oms 排序规则:utf8_general_ci 点击 "创建" -
导入 SQL 文件
选择 oms 数据库 点击 "导入" 选择文件:C:\xampp\htdocs\back\kingcharm.sql 点击 "执行"
使用命令行
cd C:\xampp\mysql\bin
mysql -u root -p oms < C:\xampp\htdocs\back\kingcharm.sql
步骤 7:测试访问
-
打开浏览器访问:
http://localhost 或 http://localhost/index.php -
测试 API 接口:
http://localhost/api/test -
查看错误日志(如果有问题):
back/runtime/log/
方案二:Nginx + PHP(推荐生产环境)
优点
- 性能更好,并发能力强
- 内存占用低
- 适合高流量网站
缺点
- 配置稍复杂
- 需要手动配置路由规则
步骤 1:下载安装包
1.1 下载 Nginx
- 访问官网:http://nginx.org/en/download.html
- 下载 Windows 版本(如 nginx-1.24.0.zip)
- 解压到:
C:\nginx
1.2 下载 PHP
- 访问官网:https://windows.php.net/download/
- 下载 Non Thread Safe (NTS) 版本(重要!)
- 解压到:
C:\php
1.3 下载 MySQL
- 访问官网:https://dev.mysql.com/downloads/mysql/
- 下载 Windows 版本
- 安装到:
C:\Program Files\MySQL\MySQL Server 8.0
步骤 2:配置 PHP
2.1 配置 php.ini
cd C:\php
copy php.ini-development php.ini
notepad php.ini
修改以下配置:
; 设置扩展目录
extension_dir = "C:/php/ext"
; 启用扩展
extension=curl
extension=gd
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=openssl
; SQL Server 扩展(需要单独下载)
extension=php_sqlsrv_81_nts_x64.dll
extension=php_pdo_sqlsrv_81_nts_x64.dll
; 时区设置
date.timezone = Asia/Shanghai
; 上传文件大小
upload_max_filesize = 50M
post_max_size = 50M
; 错误显示(开发环境)
display_errors = On
error_reporting = E_ALL
2.2 下载 SQL Server 驱动
- 下载驱动:https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server
- 解压并复制 DLL 到:
C:\php\ext\ - 确保 php.ini 中已启用(见上面配置)
步骤 3:配置 Nginx
3.1 编辑 Nginx 配置
编辑:C:\nginx\conf\nginx.conf
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;
# 项目根目录(注意:指向 public 目录)
root C:/xampp/htdocs/back/public;
index index.php index.html;
# 访问日志
access_log logs/back-access.log;
error_log logs/back-error.log;
# ThinkPHP 路由重写规则
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
# PHP 处理
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 静态文件缓存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {
expires 30d;
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
}
}
步骤 4:启动服务
4.1 启动 PHP-CGI
创建启动脚本:C:\php\start-php.bat
@echo off
echo Starting PHP FastCGI...
C:\php\php-cgi.exe -b 127.0.0.1:9000 -c C:\php\php.ini
双击运行 start-php.bat
或者使用后台运行(推荐):
创建:C:\php\start-php-background.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\php\php-cgi.exe -b 127.0.0.1:9000 -c C:\php\php.ini", 0
Set WshShell = Nothing
双击运行 .vbs 文件(不会显示黑窗口)
4.2 启动 Nginx
cd C:\nginx
start nginx
或创建启动脚本:C:\nginx\start-nginx.bat
@echo off
echo Starting Nginx...
cd C:\nginx
start nginx.exe
echo Nginx started!
pause
4.3 验证服务运行
# 检查 Nginx 进程
tasklist | findstr nginx
# 检查 PHP 进程
tasklist | findstr php-cgi
# 检查端口占用
netstat -ano | findstr :80
netstat -ano | findstr :9000
步骤 5:部署项目
5.1 复制项目文件
将 back 文件夹复制到:
C:\www\back
5.2 修改 Nginx 配置中的路径
root C:/www/back/public;
5.3 重启 Nginx
cd C:\nginx
nginx -s reload
步骤 6:安装 Composer 依赖
cd C:\www\back
composer install
步骤 7:配置数据库
同方案一的步骤 5 和步骤 6
步骤 8:测试访问
数据库配置
MySQL 配置
XAMPP/PHPStudy
- 主机:127.0.0.1
- 端口:3306
- 用户:root
- 密码:(XAMPP 默认为空)
独立安装的 MySQL
- 安装时设置的密码
SQL Server 配置
你的项目还需要连接 SQL Server:
// back/application/config.php 中的 db2 配置
'db2' => [
'type' => 'sqlsrv',
'hostname' => 'localhost', // 或 SQL Server 服务器 IP
'database' => 'UFDATA_998_2017',
'username' => 'sa',
'password' => 'your_password',
'hostport' => '1433',
'charset' => 'utf8',
'prefix' => '',
],
注意: 需要安装 SQL Server 并确保 PHP 的 sqlsrv 扩展已启用!
设置开机自启动
方案一:使用 Windows 服务
将 Nginx 注册为服务
-
下载 NSSM(Non-Sucking Service Manager)
-
安装 Nginx 服务
cd C:\nssm nssm install nginx C:\nginx\nginx.exe nssm start nginx
将 PHP 注册为服务
nssm install php-cgi C:\php\php-cgi.exe -b 127.0.0.1:9000
nssm start php-cgi
方案二:使用启动文件夹
- 按
Win + R,输入shell:startup - 将启动脚本的快捷方式复制到此文件夹
常见问题
Q1: 访问提示 404 Not Found
原因: 路由规则未生效
解决:
- Apache:确保 mod_rewrite 已启用,.htaccess 文件存在
- Nginx:检查 rewrite 规则是否正确配置
Q2: 提示 "No input file specified"
原因: PHP 路径配置错误
解决:
# Nginx 配置中确保使用绝对路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Q3: 无法连接数据库
检查:
# 测试 MySQL 连接
mysql -u root -p
# 检查 MySQL 服务是否运行
services.msc
找到 MySQL 服务,确保已启动
Q4: PHP 扩展未加载
检查:
# 查看已加载的扩展
php -m
# 查看 PHP 配置
php --ini
Q5: 端口被占用
检查端口占用:
netstat -ano | findstr :80
netstat -ano | findstr :9000
结束占用进程:
taskkill /F /PID 进程ID
Q6: Nginx 无法启动
检查配置:
cd C:\nginx
nginx -t
查看错误日志:
C:\nginx\logs\error.log
Q7: 权限问题
解决:
# 给 runtime 目录完全权限
icacls "C:\www\back\runtime" /grant Everyone:F /T
性能优化建议
1. 开启 OPcache
编辑 php.ini:
[opcache]
zend_extension=opcache
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
2. 调整 PHP-FPM 进程数
如果使用 PHP-FPM(需要额外安装),编辑配置:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
3. Nginx 缓存配置
# 在 http 块中添加
fastcgi_cache_path C:/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
# 在 location ~ \.php$ 中添加
fastcgi_cache my_cache;
fastcgi_cache_valid 200 60m;
生产环境检查清单
✓ 关闭调试模式(app_debug = false)
✓ 修改数据库密码(不使用默认密码)
✓ 设置 runtime 目录权限
✓ 配置防火墙规则
✓ 启用 HTTPS(使用 SSL 证书)
✓ 定期备份数据库
✓ 配置日志轮转
✓ 监控服务器资源
快速启动脚本
创建一键启动脚本
start-all.bat:
@echo off
echo ========================================
echo Starting PHP Development Environment
echo ========================================
echo.
echo [1/3] Starting PHP-CGI...
start /B C:\php\php-cgi.exe -b 127.0.0.1:9000
echo [2/3] Starting Nginx...
cd C:\nginx
start nginx.exe
echo [3/3] Starting MySQL...
net start MySQL80
echo.
echo ========================================
echo All services started successfully!
echo ========================================
echo.
echo Visit: http://localhost
echo.
pause
创建一键停止脚本
stop-all.bat:
@echo off
echo Stopping all services...
taskkill /F /IM nginx.exe
taskkill /F /IM php-cgi.exe
net stop MySQL80
echo All services stopped!
pause
总结
推荐方案
| 场景 | 推荐方案 | 原因 |
|---|---|---|
| 开发测试 | XAMPP/PHPStudy | 安装简单,图形化管理 |
| 生产环境 | Nginx + PHP | 性能更好,稳定性高 |
| 新手入门 | XAMPP | 一键安装,无需配置 |
| 高并发 | Nginx + PHP | 并发能力强 |
下一步
- 完成基础部署
- 测试所有功能
- 配置定时任务(如果需要)
- 设置数据库备份
- 监控服务器性能
有问题随时问我!