温馨提示×

centos中flutter部署流程是什么

小樊
65
2025-09-20 05:25:33
栏目: 智能运维

CentOS中Flutter部署流程(以Web应用为例)

1. 系统准备

  • 更新系统:运行sudo yum update && sudo yum upgrade,确保系统包为最新版本。
  • 安装基础依赖:执行sudo yum groupinstall "Development Tools"安装编译工具链;sudo yum install python3-pip安装Python包管理工具。

2. 安装Flutter SDK

  • 下载SDK:从Flutter官网或国内镜像(如storage.flutter-io.cn)下载最新稳定版Linux SDK(如flutter_linux_3.19.6-stable.tar.xz)。
  • 解压文件:将下载的压缩包解压至指定目录(如~/flutter),命令:tar xf flutter_linux_*.tar.xz -C ~/flutter
  • 配置环境变量:编辑~/.bash_profile(或~/.bashrc),添加export PATH="$PATH:~/flutter/bin";运行source ~/.bash_profile使配置生效。

3. 验证Flutter环境

  • 运行flutter doctor,检查系统依赖是否满足(如Android工具链、iOS工具链等)。若有缺失项,根据提示安装对应依赖(如Android Studio、Xcode等)。

4. 安装并配置Web服务器(以Nginx为例)

  • 安装Nginx:运行sudo yum install nginx,完成Nginx安装。
  • 配置Nginx:创建Web应用配置文件/etc/nginx/conf.d/flutter_app.conf,内容如下(替换your_domain_or_IP为实际域名/IP,/path/to/flutter/build/web为Flutter构建文件路径):
    server {
        listen 80;
        server_name your_domain_or_IP;
        location / {
            proxy_pass http://localhost:8080;  # 转发至Flutter应用端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
  • 启动Nginx:运行sudo systemctl start nginx启动服务,sudo systemctl enable nginx设置开机自启。

5. 构建与部署Flutter Web应用

  • 构建Web版本:进入Flutter项目目录,运行flutter build web,生成静态文件至build/web目录。
  • 复制文件到服务器:将build/web下的所有文件复制到Nginx默认静态目录(如/usr/share/nginx/html),命令:cp -r build/web/* /usr/share/nginx/html/

6. (可选)配置Systemd服务(后台运行)

  • 创建服务文件:运行sudo vi /etc/systemd/system/flutter_app.service,添加以下内容(替换/path/to/flutter/app为项目路径,8080为应用端口):
    [Unit]
    Description=Flutter Web App
    After=network.target
    
    [Service]
    User=your_username
    WorkingDirectory=/path/to/flutter/app
    ExecStart=/path/to/flutter/app/build/web/webserver --port 8080  # 若使用webserver,否则省略此行
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动服务:运行sudo systemctl start flutter_app启动服务,sudo systemctl enable flutter_app设置开机自启。

7. 验证部署

  • 在浏览器中访问服务器IP或域名,若看到Flutter应用页面,则部署成功。

0