首页主机资讯centos上flutter项目如何部署上线

centos上flutter项目如何部署上线

时间2026-01-17 21:12:04发布访客分类主机资讯浏览309
导读:CentOS 上部署 Flutter 项目的实用方案 一、方案总览 在 CentOS 上,Flutter 项目常见上线形态有两类:部署 Web 静态站点(最简便、通用)与部署 Linux 桌面可执行程序(适合内网或受控终端)。前者通过 N...

CentOS 上部署 Flutter 项目的实用方案

一、方案总览

  • CentOS 上,Flutter 项目常见上线形态有两类:部署 Web 静态站点(最简便、通用)与部署 Linux 桌面可执行程序(适合内网或受控终端)。前者通过 Nginx 托管静态文件即可对外服务;后者需准备运行环境、进程守护与反向代理。若需要移动端安装包,可在本地构建 APK/IPA 后分发,服务器侧不负责移动端打包。

二、方案一 Web 部署(推荐)

  • 构建产物
    • 在项目根目录执行:flutter build web,产物位于 build/web。如启用 Flutter Web,需先执行:flutter config --enable-web。
  • 服务器安装与配置 Nginx
    • 安装:sudo yum install -y nginx
    • 配置站点(/etc/nginx/conf.d/flutter_app.conf):
      server {
          
          listen 80;
          
          server_name your_domain_or_IP;
          
          root /path/to/build/web;
          
          index index.html;
      
      
          location / {
          
              try_files $uri $uri/ /index.html;
       # 支持前端路由
          }
      
      }
          
      
    • 启动与开机自启:sudo systemctl start nginx & & sudo systemctl enable nginx
  • 防火墙放行
    • sudo firewall-cmd --permanent --add-service=http & & sudo firewall-cmd --reload
  • 访问验证
    • 浏览器访问:http://your_domain_or_IP
  • 可选 Docker 方式
    • Dockerfile(示例):
      FROM cirrusci/flutter:stable
      WORKDIR /app
      COPY . .
      RUN flutter pub get
      RUN flutter build web
      EXPOSE 8080
      CMD ["flutter", "run", "--release", "--web-port=8080", "--web-hostname=0.0.0.0"]
      
    • 构建与运行:docker build -t flutter_web_app . & & docker run -d -p 8080:8080 flutter_web_app。

三、方案二 Linux 桌面可执行程序部署

  • 构建产物
    • 在项目根目录执行:flutter build linux,产物位于 build/linux
  • 运行与守护
    • 建议将可执行文件与资源放入统一目录(如 /opt/flutter_app),通过 systemd 管理:
      # /etc/systemd/system/flutter_app.service
      [Unit]
      Description=Flutter Linux App
      After=network.target
      
      [Service]
      Type=simple
      ExecStart=/opt/flutter_app/your_app
      WorkingDirectory=/opt/flutter_app
      Restart=always
      User=nobody
      Environment=DISPLAY=:0
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用:sudo systemctl daemon-reload & & sudo systemctl enable --now flutter_app
  • 反向代理与端口
    • 若应用内嵌 HTTP 服务(如 8080),可用 Nginx 反向代理:
      server {
          
          listen 80;
          
          server_name your_domain_or_IP;
      
          location / {
          
              proxy_pass http://127.0.0.1:8080;
          
              proxy_set_header Host $host;
          
              proxy_set_header X-Real-IP $remote_addr;
      
          }
      
      }
          
      
  • 依赖与兼容性
    • 如构建或运行报缺依赖,安装常见 GUI 依赖:sudo yum install -y gtk3-devel(Flutter Linux 渲染需要)。

四、移动端包构建与分发(服务器不涉及)

  • Android:在本地或 CI 环境执行 flutter build apk,得到 APK 后上传商店或内部分发。
  • iOS:必须在 macOS 上执行 flutter build ipa,服务器侧无法完成 iOS 打包。

五、常见问题与排查

  • 构建或运行报错缺少依赖:执行 flutter doctor 按提示补齐;Linux 桌面构建可安装 gtk3-devel 等依赖。
  • Nginx 访问不了:检查防火墙是否放行 80 端口(firewall-cmd --permanent --add-service=http & & firewall-cmd --reload),并确认站点根目录指向 build/web
  • 前端路由刷新 404:Nginx 配置中加入 try_files $uri $uri/ /index.html; 。
  • 容器方式无法启动:查看容器日志 docker logs < container_id> ,确认端口映射与构建是否成功。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos上flutter项目如何部署上线
本文地址: https://pptw.com/jishu/783342.html
centos下flutter如何进行国际化支持 如何避免centos系统臃肿

游客 回复需填写必要信息