centos上flutter项目如何部署上线
导读: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。
- Dockerfile(示例):
三、方案二 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
- 建议将可执行文件与资源放入统一目录(如 /opt/flutter_app),通过 systemd 管理:
- 反向代理与端口
- 若应用内嵌 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; } }
- 若应用内嵌 HTTP 服务(如 8080),可用 Nginx 反向代理:
- 依赖与兼容性
- 如构建或运行报缺依赖,安装常见 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
