一.前言
这篇文章,我分享了自己用C++写的后端项目需要部署时的一些步骤,旨在帮助我们自己写好项目但是需要部署时遇到的一些细节问题,还有容易卡壳或疑惑的点,欢迎大家一起交流~
二.准备云服务器
1.购买云服务器(阿里云有学生优惠)
- 进入领取优惠券
- 进入阿里云官网,登录后打开产品一栏,选中云服务器ECS,选择合适的配置购买
- 推荐参数说明
购买方式:自定义购买
付费类型:包年包月
地域:选择里自己近的地域
实例硬件配置:起步推荐2vCPU,2GiB,根据自己需要往上叠加。
镜像:推荐CentOS 7.6 64位
云盘:40GiB
宽带和安全组:分配公网 IPv4 地址,推荐按使用流量计费,峰值选最高,下载安装软件快
登录凭证:添加密钥对,如需使用密码远程登录实例,可在实例创建后通过控制台"重置实例密码"操作完成设置。
以上基本的配置设置完毕,就可以下单购买了!进入一下页面查看实例相关信息,通过公网ip和密码就可以进行远程连接了。
三.配置云服务器的项目运行环境
1.新建用户,添加到sudo
adduser myname
cd /etc/sudoers
chmod u+w sudoers
vim sudoers
找到root ALL = (ALL) ALL这一行,在下一行加入username ALL = (ALL) ALL。username指代你想加入sudo组的用户名。把sudoers文件的权限修改回来。
chmod u-w sudoers
这样普通用户可以执行sudo命令了。
2.安装需要的工具或库
字体库
sudo yum install fontconfig.x86_64
压缩工具
sudo yum install -y unzip zip
解析和处理 Unicode 字符库
sudo yum install libicu
3.配置环境变量
在.bashrc中添加export LD_LIBRARY_PATH=/usr/lib:/xxx/xxx:$LD_LIBRARY_PATH
"/xxx/xxx"是项目所需要的动态库
LD_LIBRARY_PATH 环境变量:
LD_LIBRARY_PATH 用于查找库文件(通常是.so文件),这些文件是其他程序运行时所依赖的。
当一个程序运行时,动态链接器会依次搜索 LD_LIBRARY_PATH 中指定的目录,以查找程序运行所需的库文件。
4.检查服务器防火墙
进入阿里云控制台,开放程序绑定的端口。
四.配置云服务器的项目编译环境
1.配置编译环境
例:升级gcc编译器
安装scl
sudo yum install centos-release-scl scl-utils-build
安装新版本gcc,这里也可以把7换成8或者9,我用的是9,也可以都安装
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++
查看是否安装完成
ls /opt/rh/
在.bashrc中添加
scl enable devtoolset-9 bash
2.检查项目涉及到的ip是否更改
五.搭建数据库
1.安装数据库
- 配置yum源
在https://repo.mysql.com/ 下载rpm包(安装版本适配大于等于本地版本)
将下载的rpm包上传到linux,执行rpm -ivh <包名>
- 安装mysql应用程序
执行yum install -y mysql-community-server
注:若密钥过期执行rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
再安装 - 验证是否安装完成
which mysql
which mysqld
cat /etc/my.cnf
都存在即安装完毕。 - 启动mysql服务
systemctl start mysql
2.创建数据库,导入相关数据
CREATE DATABASE IF NOT EXISTS databasename DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3.配置数据库用户权限
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
grant all privileges on databasename.* to 'username'@'%';
4.检查服务器防火墙
开放端口3306(参考以上运行环境配置)
5.取消掉mysql的远程访问的ssl身份验证
修改配置文件my.cnf,加入以下内容:
skip_ssl