将 PHP 微信小程序部署到服务器,主要分为两个部分:
- 小程序前端代码的上传(使用微信开发者工具)
- PHP 后端接口部署到服务器
下面我来详细说明整个流程:
一、小程序前端部署(本地开发后上传)
1. 准备工作:
- 注册并登录 微信公众平台
- 获取小程序 AppID
- 安装 微信开发者工具
2. 配置项目信息:
在微信开发者工具中打开你的小程序项目,填写正确的 AppID。
3. 设置上传版本:
- 点击顶部菜单栏【工具】 -> 【上传】
- 填写版本号和项目备注
4. 上传到微信平台:
点击【上传】按钮,等待上传完成。
⚠️ 注意:上传只是把代码传到微信后台,并不会自动上线。你需要去微信公众平台审核发布。
5. 发布小程序:
- 登录微信公众平台
- 进入【版本管理】
- 将开发版本提交审核或直接体验版/线上版发布
二、PHP 后端部署到服务器
1. 准备服务器环境(推荐配置):
- 操作系统:Linux(如 CentOS、Ubuntu)
- Web 服务:Nginx 或 Apache
- PHP 版本:7.2 ~ 8.0(根据项目需求)
- 数据库:MySQL / MariaDB
- 其他:Redis(可选)、Composer(依赖管理)
2. 上传代码到服务器:
你可以通过以下方式上传 PHP 项目代码到服务器:
- FTP/SFTP(如 FileZilla)
- Git(推荐,适合团队协作)
- 直接压缩上传解压
例如使用 SFTP:
sftp username@your_server_ip
put -r your_project_folder
3. 配置 Web 服务器(以 Nginx 为例):
编辑 Nginx 配置文件(如 /etc/nginx/conf.d/myapp.conf):
server {
listen 80;
server_name yourdomain.com;
root /path/to/your/project/public; # 项目入口目录
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
重启 Nginx:
systemctl restart nginx
4. 配置数据库:
导入你的数据库结构和数据:
mysql -u root -p your_database < your_sql_file.sql
修改项目的 .env 或 config.php 文件中的数据库连接信息。
5. 设置域名解析:
- 在域名服务商设置 A 记录指向你的服务器 IP
- 等待 DNS 解析生效
6. 测试 API 接口:
用 Postman 或浏览器访问你的接口地址,测试是否正常返回数据。
三、微信小程序调用后端接口注意事项
1. 合法域名配置:
- 登录微信公众平台
- 进入【开发管理】 -> 【开发设置】 -> 【服务器域名】
- 添加你的 HTTPS 接口域名到:
- request合法域名
- socket合法域名
- uploadFile合法域名
- downloadFile合法域名
⚠️ 注意:
- 必须使用 HTTPS 协议
- 不支持 IP 地址,必须是域名
- 不能带端口号
2. HTTPS 证书配置:
- 推荐使用免费 SSL 证书(如 Let’s Encrypt)
- 使用 Certbot 自动申请和续签证书
安装 Certbot(以 Ubuntu 为例):
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
四、常见问题排查
| 问题 | 可能原因 |
|---|---|
| 接口无法访问 | 域名未配置白名单、HTTPS 证书不正确、跨域问题 |
| 返回 404 | 路由配置错误、伪静态规则未设置 |
| 数据库连接失败 | 数据库用户名密码错误、权限不足 |
| 上传失败 | 网络限制、代码包过大、AppID 错误 |
五、总结
| 步骤 | 内容 |
|---|---|
| 1 | 小程序前端代码上传到微信平台 |
| 2 | PHP 后端部署到服务器(配置 Nginx、PHP、MySQL) |
| 3 | 配置域名白名单和 HTTPS 证书 |
| 4 | 测试接口功能是否正常 |
| 5 | 提交审核并上线小程序 |
如果你有具体的框架(比如 ThinkPHP、Laravel、Yii),我可以提供更详细的部署指导。也可以告诉我你使用的服务器类型(宝塔?云服务器?虚拟主机?),我可以给出更合适的建议。
需要我帮你一步步操作吗?
CDNK博客