在阿里云服务器部署基于 PHP 后端 + UniApp 前端的小程序,是一个非常经典且成熟的架构方案。UniApp 编译后生成的是小程序代码(运行在微信/支付宝等客户端),而 PHP 负责提供 API 接口服务。
以下是完整的部署流程和关键注意事项:
第一步:环境准备与资源购买
-
购买云服务器 (ECS)
- 选择配置:根据项目规模,建议至少 2 核 CPU / 4GB 内存(轻量应用服务器也可,但 ECS 更灵活)。
- 操作系统:推荐 Ubuntu 20.04/22.04 LTS 或 CentOS 7.9(Ubuntu 对 PHP 环境搭建支持较好)。
- 安全组配置:开通 80 (HTTP), 443 (HTTPS), 22 (SSH) 端口。
-
域名与 SSL 证书
- 域名:购买并解析到服务器 IP。
- SSL 证书:小程序强制要求接口使用 HTTPS。可以在阿里云“云盾”或“内容分发网络”中免费申请 Let’s Encrypt 证书,并在服务器上配置 Nginx 启用 HTTPS。
第二步:后端环境搭建 (PHP)
登录服务器,安装 LNMP (Linux + Nginx + MySQL + PHP) 环境。推荐使用 宝塔面板 简化操作,或者手动安装。
方案 A:使用宝塔面板 (推荐新手)
- 安装宝塔面板脚本:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484be - 在面板中创建网站,设置根目录指向你的 PHP 项目文件夹。
- 安装 Nginx, MySQL, PHP 8.x (建议版本)。
- 导入数据库:通过 phpMyAdmin 将本地数据库备份文件导入服务器。
- 修改代码中的数据库连接配置 (
config.php或.env),将localhost改为127.0.0.1或内网 IP。
方案 B:手动安装 (适合运维人员)
# 以 Ubuntu 为例
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml unzip git
注意:需配置 php.ini 开启 upload_max_filesize, post_max_size 等参数以适应小程序上传需求。
第三步:部署 UniApp 后端代码
-
上传代码
- 使用 FTP 工具 (如 FileZilla) 或 SSH (SFTP) 将打包好的 PHP 后端代码上传到服务器目录(例如
/www/wwwroot/your_project)。 - 确保目录权限正确:
chown -R www:www /www/wwwroot/your_project chmod -R 755 /www/wwwroot/your_project
- 使用 FTP 工具 (如 FileZilla) 或 SSH (SFTP) 将打包好的 PHP 后端代码上传到服务器目录(例如
-
依赖安装 (Composer)
- 如果项目使用了 Composer 管理依赖(如 Laravel, ThinkPHP 等):
cd /www/wwwroot/your_project composer install --no-dev --optimize-autoloader
- 如果项目使用了 Composer 管理依赖(如 Laravel, ThinkPHP 等):
-
配置 Nginx
- 确保 Nginx 配置支持 PHP 处理,通常包含以下核心配置:
location ~ .php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据你的 PHP 版本调整 fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; } - 如果是 Laravel 框架,记得配置
.htaccess或 Nginx 的try_files规则以支持路由重写。
- 确保 Nginx 配置支持 PHP 处理,通常包含以下核心配置:
第四步:部署 UniApp 前端 (小程序端)
重要概念区分:
UniApp 开发时,你写的是 H5、小程序或 App 代码。小程序版不需要部署到阿里云服务器。
- 微信小程序:你需要将代码上传到微信开发者工具,点击“上传”,由微信官方审核发布。
- H5 版本:如果你需要同时提供 H5 网页版,则需要将 UniApp 编译为 H5 代码(
uni build -p h5),然后将生成的dist文件夹上传到服务器的 Web 目录(如/www/wwwroot/h5_version)。
如果你的需求是“让小程序能访问服务器”:
只需确保小程序代码中的 request 请求地址(如 https://api.yourdomain.com/api/login)指向你部署好的 PHP 接口即可。
第五步:关键配置与调试
-
IP 白名单 (微信回调)
- 如果涉及微信支付或第三方回调,需在微信公众平台后台填写服务器 IP 白名单。
- 如果服务器有动态 IP,建议使用固定公网 IP。
-
跨域问题 (CORS)
- 虽然小程序原生不支持标准 CORS,但如果你的 H5 版本或混合开发涉及浏览器访问,需在 Nginx 配置允许特定域名访问:
add_header Access-Control-Allow-Origin *;
- 虽然小程序原生不支持标准 CORS,但如果你的 H5 版本或混合开发涉及浏览器访问,需在 Nginx 配置允许特定域名访问:
-
日志排查
- 检查 Nginx 错误日志:
/var/log/nginx/error.log - 检查 PHP 错误日志:通常在
/www/wwwlogs/或/var/log/php-fpm/ - 在代码中开启
error_reporting(E_ALL)和display_errors = On进行临时调试(上线后请关闭)。
- 检查 Nginx 错误日志:
-
HTTPS 强制跳转
- 在 Nginx 配置中强制 HTTP 跳转到 HTTPS,否则小程序接口会报错。
server { listen 80; server_name api.yourdomain.com; return 301 https://$server_name$request_uri; }
- 在 Nginx 配置中强制 HTTP 跳转到 HTTPS,否则小程序接口会报错。
第六步:上线流程总结
- 测试:在本地或测试环境验证所有 API 接口通畅,HTTPS 证书有效。
- 提交审核:在微信开发者工具中上传小程序代码,填写类目并提交审核。
- 用户访问:审核通过后,用户扫码即可使用。
- 监控:建议安装
Supervisor管理 PHP-FPM 进程,或使用阿里云云监控监控 CPU/带宽使用情况。
常见问题提示
- 上传失败:检查
php.ini中的file_uploads,upload_max_filesize,post_max_size是否足够大。 - 403 Forbidden:通常是 Linux 文件权限问题,确保 Web 用户(www 或 nginx)有读取执行权限。
- 404 Not Found:检查 Nginx 的
root路径是否正确,以及 URL 重写规则是否生效。
按照以上步骤,你就可以顺利在阿里云上完成 PHP+UniApp 小程序的部署了。如果有具体的报错信息,可以进一步提供以便精准排查。
云知道CLOUD