Files
oms-back/Windows服务器PHP部署指南.md
2026-03-09 22:59:24 +08:00

15 KiB
Raw Permalink Blame History

Windows 服务器 PHP 项目部署指南

目录


方案一Apache + PHP推荐新手

优点

  • 配置简单,一键安装
  • .htaccess 自动生效,无需额外配置
  • 适合 Windows 环境
  • 图形化管理界面

缺点

  • 性能略低于 Nginx
  • 内存占用较高

步骤 1下载安装包

方式 A使用 XAMPP最简单

  1. 下载 XAMPP

  2. 安装 XAMPP

    双击安装程序
    选择安装路径C:\xampp
    勾选组件:
    ✓ Apache
    ✓ MySQL
    ✓ PHP
    ✓ phpMyAdmin
    
  3. 启动服务

    打开 XAMPP Control Panel
    点击 Apache 的 "Start" 按钮
    点击 MySQL 的 "Start" 按钮
    

方式 B使用 PHPStudy国内推荐

  1. 下载 PHPStudy

  2. 安装并启动

    安装到D:\phpstudy_pro
    启动面板
    启动 Apache 和 MySQL
    

步骤 2部署项目

2.1 复制项目文件

XAMPP 方式:

将你的 back 文件夹复制到:
C:\xampp\htdocs\back

PHPStudy 方式:

将你的 back 文件夹复制到:
D:\phpstudy_pro\WWW\back

2.2 配置虚拟主机(可选,推荐)

XAMPP 配置:

  1. 编辑 Apache 配置文件

    打开C:\xampp\apache\conf\extra\httpd-vhosts.conf
    
  2. 添加虚拟主机配置

    <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>
    
  3. 重启 Apache

    在 XAMPP Control Panel 点击 Apache 的 "Stop"
    再点击 "Start"
    

PHPStudy 配置:

  1. 打开 PHPStudy 面板
  2. 点击 "网站" → "创建网站"
  3. 填写信息:
    域名localhost 或 your-domain.com
    端口80
    根目录D:\phpstudy_pro\WWW\back\public
    PHP 版本:选择 7.2 或更高
    
  4. 点击 "确认"

步骤 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需要额外安装驱动

  1. 下载 Microsoft Drivers for PHP for SQL Server

  2. 解压并复制 DLL 文件

    将 php_sqlsrv_*.dll 和 php_pdo_sqlsrv_*.dll 复制到:
    
    XAMPP: C:\xampp\php\ext\
    PHPStudy: D:\phpstudy_pro\Extensions\php\php7.x\ext\
    
  3. 在 php.ini 中启用

    extension=php_sqlsrv_74_ts_x64.dll
    extension=php_pdo_sqlsrv_74_ts_x64.dll
    
  4. 重启 Apache


步骤 4安装 Composer 依赖

  1. 下载 Composer for Windows

  2. 安装 Composer

    双击安装程序
    选择 PHP 路径:
    XAMPP: C:\xampp\php\php.exe
    PHPStudy: D:\phpstudy_pro\Extensions\php\php7.x\php.exe
    
  3. 安装项目依赖

    打开命令提示符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导入数据库

使用 phpMyAdminXAMPP/PHPStudy 自带)

  1. 访问 phpMyAdmin

    XAMPP: http://localhost/phpmyadmin
    PHPStudy: http://localhost/phpMyAdmin
    
  2. 创建数据库

    点击 "新建"
    数据库名oms
    排序规则utf8_general_ci
    点击 "创建"
    
  3. 导入 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测试访问

  1. 打开浏览器访问:

    http://localhost
    或
    http://localhost/index.php
    
  2. 测试 API 接口:

    http://localhost/api/test
    
  3. 查看错误日志(如果有问题):

    back/runtime/log/
    

方案二Nginx + PHP推荐生产环境

优点

  • 性能更好,并发能力强
  • 内存占用低
  • 适合高流量网站

缺点

  • 配置稍复杂
  • 需要手动配置路由规则

步骤 1下载安装包

1.1 下载 Nginx

  1. 访问官网:http://nginx.org/en/download.html
  2. 下载 Windows 版本(如 nginx-1.24.0.zip
  3. 解压到:C:\nginx

1.2 下载 PHP

  1. 访问官网:https://windows.php.net/download/
  2. 下载 Non Thread Safe (NTS) 版本(重要!)
  3. 解压到:C:\php

1.3 下载 MySQL

  1. 访问官网:https://dev.mysql.com/downloads/mysql/
  2. 下载 Windows 版本
  3. 安装到: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 驱动

  1. 下载驱动:https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server
  2. 解压并复制 DLL 到:C:\php\ext\
  3. 确保 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测试访问

访问:http://localhost


数据库配置

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 注册为服务

  1. 下载 NSSMNon-Sucking Service Manager

  2. 安装 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

方案二:使用启动文件夹

  1. Win + R,输入 shell:startup
  2. 将启动脚本的快捷方式复制到此文件夹

常见问题

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 并发能力强

下一步

  1. 完成基础部署
  2. 测试所有功能
  3. 配置定时任务(如果需要)
  4. 设置数据库备份
  5. 监控服务器性能

有问题随时问我!