速卖通素材
努力

想要在阿里云服务器部署小程序php和uniapp写的?

服务器

在阿里云服务器部署由 PHP 后端 + UniApp(小程序端) 组成的应用,是一个经典且成熟的架构方案。

需要明确的是:UniApp 编译后的小程序代码是运行在微信/支付宝等宿主环境中的,不需要部署到阿里云服务器。你需要部署的只是PHP 后端 API 接口以及静态资源(如图片、视频)

以下是完整的部署流程指南:

第一步:准备工作

  1. 购买与配置阿里云 ECS 实例

    • 选择操作系统:推荐 Ubuntu 20.04/22.04CentOS 7.9(两者皆可,Ubuntu 社区教程更多)。
    • 配置建议:开发测试阶段,2 核 2G2 核 4G 足够;生产环境建议根据并发量调整。
    • 安全组设置:务必开放以下端口:
      • 80 (HTTP) / 443 (HTTPS):Web 服务访问。
      • 22 (SSH):远程连接。
      • 3306 (MySQL):强烈建议不要直接对公网开放,仅允许本地或特定 IP 访问,或者通过内网白名单控制。
  2. 准备代码与环境依赖

    • PHP 项目:确保你的 PHP 代码中数据库配置、API 域名已修改为阿里云服务器的公网 IP 或域名。
    • UniApp 项目:在 HBuilderX 中点击“发行” -> “原生小程序”,生成对应的包(如微信小程序包)。注意:小程序端的 request 请求地址需指向你服务器上的 API 域名。
    • 域名与 SSL
      • 购买并备案一个域名(国内服务器必须备案)。
      • 在阿里云控制台申请免费 SSL 证书(Let’s Encrypt 或阿里云自带),用于 HTTPS 加密(微信小程序强制要求 HTTPS)。

第二步:搭建运行环境 (LNMP/LAMP)

登录阿里云服务器终端(使用 Xshell, Putty 或 Mac/Linux 终端):

1. 安装 Nginx (Web 服务器)

# Ubuntu 示例
sudo apt update
sudo apt install nginx -y

# CentOS 示例
sudo yum install nginx -y

2. 安装 PHP 及扩展

根据你的 PHP 版本需求安装(以 PHP 8.1 为例):

# Ubuntu
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y

# CentOS (需先安装 Remi 源)
sudo yum install php php-fpm php-mysqlnd php-curl php-gd php-mbstring -y

3. 安装 MySQL/MariaDB

# Ubuntu
sudo apt install mysql-server -y
sudo mysql_secure_installation # 设置 root 密码

# CentOS
sudo yum install mariadb-server -y
sudo systemctl start mariadb
sudo mysql_secure_installation

4. 配置 Nginx 与 PHP 联动

编辑 Nginx 配置文件(通常在 /etc/nginx/sites-available/default/etc/nginx/conf.d/your_domain.conf):

server {
    listen 80;
    server_name your-domain.com; # 替换为你的域名

    root /var/www/html/your-project; # 替换为你的项目根目录
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ .php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意 socket 路径可能因版本不同
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

重启 Nginx 使配置生效: sudo systemctl restart nginx


第三步:部署代码与数据

1. 上传 PHP 后端代码

可以使用 scpFTP (FileZilla) 或 Git 拉取代码到服务器指定目录。

# 例如将本地项目复制到服务器
scp -r ./my-php-api root@your-ip:/var/www/html/my-project

注意:确保目录权限正确,通常设置为 www-data:www-data

2. 初始化数据库

进入 MySQL 命令行创建数据库和用户:

CREATE DATABASE uniapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'uniapp_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON uniapp_db.* TO 'uniapp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

然后导入你的 .sql 备份文件:

mysql -u root -p uniapp_db < backup.sql

3. 修改代码配置

检查 PHP 项目中的数据库配置文件(如 .envconfig.php),填入刚才创建的数据库信息。


第四步:配置 UniApp 小程序端

这是最容易出错的一步,请务必确认:

  1. 修改请求域名
    在 UniApp 项目中,找到网络请求的基础地址(通常是 BASE_URLapiUrl),将其修改为 https://your-domain.com/api/

    • 注意:必须带 https,且不能包含端口号(除非非标准端口)。
  2. 配置合法域名
    登录 微信公众平台 -> 开发管理 -> 开发设置 -> 服务器域名

    • request 合法域名一栏,添加你的 API 域名(如 https://your-domain.com)。
    • 如果不配置此步骤,小程序模拟器能跑,但真机调试会报错 "request 非法"。
  3. 重新编译发布
    在 HBuilderX 中,点击“发行” -> “原生小程序” -> “微信小程序”。
    上传代码至微信后台审核发布。


第五步:进阶优化与运维

  1. 配置 HTTPS (SSL)
    虽然上面提到了,但具体操作推荐使用 Certbot 自动续期:

    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d your-domain.com

    这将自动配置 Nginx 并重定向 HTTP 到 HTTPS。

  2. 开启 Opcache 和 Redis (可选)
    如果并发较高,建议安装 Redis 缓存热点数据,并在 PHP 中开启 Opcache 提升执行效率。

  3. 定时任务
    如果 PHP 代码中有需要定期执行的脚本(如清理过期数据、发送通知),需要在服务器 crontab 中添加计划任务:

    crontab -e
    # 添加一行:0 2 * * * php /var/www/html/cron-job.php
  4. 日志监控
    定期检查 Nginx 的 error.log 和 PHP 的错误日志,排查线上问题。

总结流程图

graph TD
    A[阿里云 ECS] --> B(安装 LNMP 环境)
    B --> C{部署 PHP 后端}
    C --> D[上传代码 & 导入数据库]
    D --> E[Nginx 配置 & SSL 证书]

    F[开发者电脑] --> G(HBuilderX 编写 UniApp)
    G --> H[修改 API 请求地址为 https://域名]
    H --> I[配置微信后台服务器域名]
    I --> J[编译并上传小程序]

    E -.-> K[用户访问]
    J -.-> K
    K --> L[小程序发起 HTTPS 请求]
    L --> M[阿里云 PHP 接口处理]
    M --> N[返回 JSON 数据]

按照以上步骤操作,你就可以成功在阿里云上部署好这套系统了。如果在具体某个环节(如 Nginx 配置报错、微信域名校验失败)遇到问题,欢迎继续提问!

未经允许不得转载:轻量云Cloud » 想要在阿里云服务器部署小程序php和uniapp写的?