将 PHP 微信小程序项目部署到服务器,通常分为两个部分:
- 前端(微信小程序)
- 后端(PHP 服务)
下面我将详细说明整个部署流程。
一、部署 PHP 后端服务
1. 准备服务器环境
你需要一个支持 PHP 的服务器环境。推荐使用以下组合:
- 操作系统:Linux(如 CentOS、Ubuntu)
- Web 服务器:Nginx 或 Apache
- PHP 版本:建议 >= 7.2(根据你的项目需求)
- 数据库:MySQL / MariaDB
- 其他扩展:pdo、curl、fileinfo、opcache 等
安装方式(以 Ubuntu 为例):
sudo apt update
sudo apt install nginx php php-fpm php-mysql mysql-server -y
2. 上传 PHP 项目代码
你可以通过 FTP、SCP 或 Git 将项目文件上传到服务器的 Web 根目录,例如:
/var/www/html/
或者自定义配置虚拟主机目录。
3. 配置 Nginx/Apache 虚拟主机
示例 Nginx 配置(/etc/nginx/sites-available/default):
server {
listen 80;
server_name yourdomain.com;
root /var/www/html/public; # 项目入口目录
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
重启 Nginx:
sudo systemctl restart nginx
4. 导入数据库(如有)
如果你的项目有数据库依赖,使用 MySQL 命令导入 SQL 文件:
mysql -u root -p your_database < your_dump.sql
然后修改项目的数据库连接配置(一般是 /config/database.php 或 .env 文件):
'database' => 'your_database',
'username' => 'root',
'password' => 'your_password',
5. 设置域名并备案(可选)
- 如果你在我国大陆使用阿里云、腾讯云等服务器,需要进行 域名备案。
- 如果你在国外服务器上部署,可以跳过备案。
二、部署微信小程序前端
1. 修改请求地址
在微信小程序中,所有的网络请求都要走 HTTPS,并且域名必须在微信公众平台中白名单。
打开 app.js 或相关 API 请求文件,把本地开发用的 URL 改为你部署好的线上域名:
globalData: {
apiUrl: "https://yourdomain.com/api"
}
2. 在微信公众平台设置域名
登录 微信公众平台,进入:
开发管理 → 开发设置 → 服务器设置
添加如下域名(HTTPS):
- request 合法域名
- uploadFile 合法域名
- downloadFile 合法域名
- websocket 合法域名
示例:
https://yourdomain.com
⚠️ 注意:
- 必须是 HTTPS 协议
- 不支持 IP 地址
- 不支持端口号(只能用 443)
3. 上传小程序代码
使用微信开发者工具:
- 点击顶部菜单【工具】→【上传】
- 输入版本号和描述
- 提交审核或体验版发布
三、HTTPS 配置(重要)
为了满足微信小程序的要求,你的服务器必须开启 HTTPS。
获取 SSL 证书(免费)
推荐使用 Let’s Encrypt:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
自动完成证书申请与配置。
四、常见问题排查
| 问题 | 解决方法 |
|---|---|
| 请求失败 | 检查域名是否加入白名单、是否为 HTTPS |
| 接口返回 500 | 查看 PHP 错误日志 /var/log/php-fpm.log |
| 数据库连接失败 | 检查数据库用户名、密码、权限 |
| 页面空白 | 检查入口文件路径是否正确,关闭 PHP 报错显示 |
总结
部署流程简要概括如下:
- 搭建服务器环境(LNMP)
- 上传 PHP 项目代码并配置
- 导入数据库并修改配置
- 配置域名 + HTTPS
- 修改小程序请求地址并上传发布
如果你能提供更具体的信息(比如你是用 ThinkPHP、Laravel 还是原生 PHP),我可以给出更详细的部署步骤。欢迎继续提问!
秒懂云