centos

CentOS上C++程序如何部署

小樊
47
2025-09-22 05:27:03
栏目: 编程语言

1. 准备编译环境
在CentOS上部署C++程序前,需安装必要的编译工具和基础依赖库。运行以下命令安装GCC/G++编译器、CMake构建工具及开发工具集:

sudo yum update -y                  # 更新系统包
sudo yum groupinstall -y "Development Tools"  # 安装编译工具链(gcc、g++、make等)
sudo yum install -y cmake           # 安装CMake(跨平台构建工具)

若需使用较新版本的GCC(如10),可通过Software Collections(SCL)安装:

sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-10-gcc-c++
scl enable devtoolset-10 bash       # 启用新版本GCC(临时生效)

2. 编译C++程序
根据项目复杂度选择编译方式:

3. 处理依赖库
C++程序的依赖库分为系统库(如glibc)和第三方库(如BoostOpenSSL),需确保服务器上已安装所需依赖:

4. 部署到服务器
将编译好的可执行文件传输到CentOS服务器,可使用scp(命令行)或WinSCP(图形化工具)。例如,将本地的myapp传输到服务器的/opt/myapp目录:

scp myapp user@server_ip:/opt/myapp  # 替换user为服务器用户名,server_ip为服务器IP

传输完成后,登录服务器,为可执行文件设置运行权限:

ssh user@server_ip
cd /opt/myapp
chmod +x myapp                     # 赋予执行权限

5. 运行程序

6. 配置systemd服务(可选,推荐用于生产环境)
为确保程序在服务器重启后自动启动,可创建systemd服务单元文件:

  1. 创建服务文件(如/etc/systemd/system/myapp.service):
    sudo nano /etc/systemd/system/myapp.service
    
  2. 添加以下内容(替换路径和用户):
    [Unit]
    Description=My C++ Application
    After=network.target              # 在网络服务启动后运行
    
    [Service]
    User=myuser                       # 运行程序的用户(避免使用root)
    Group=mygroup                     # 运行程序的组
    ExecStart=/opt/myapp/myapp        # 可执行文件路径
    Restart=always                    # 程序崩溃后自动重启
    Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"  # 环境变量
    
    [Install]
    WantedBy=multi-user.target        # 开机自启的目标
    
  3. 重载systemd配置并启动服务:
    sudo systemctl daemon-reload      # 重载配置
    sudo systemctl start myapp         # 启动服务
    sudo systemctl enable myapp        # 设置开机自启
    
  4. 查看服务状态(确认运行正常):
    sudo systemctl status myapp
    

7. 安全与维护建议

0
看了该问题的人还看了