- 打造Linux部署环境
- 简介
- 所包含的安装项目
- 1. 静态网络配置
- 2. 源码方式安装 MySQL
- 3. JDK 安装
- 4. Node 安装
- 5. Redis 安装
- 6. Zookeeper 安装
- 7. Nginx 安装
- 8. Kafka 安装&简单使用
- 9. 私有Git仓库之 Gogs安装
- 百度云-Web 安装
- 检验开机启动是否成功
简介
本篇教程,就地取材,拿来即用
通过学习本篇教程,相信你应该对Linux操作系统有一定了解,并可以独立部署项目
本篇采用CentOS 7x64-Minimal-1810
所涉及的软件包:
完整zip包
软件包
本篇教程涉及到的命令:
cd 、tar、unzip、cp、touch、vim 简单用法、find、
ps、yum、choun、password、useradd、配置service服务、
cmake、make、npm、yarn
chkconfig --add、systemctl enable...
所包含的安装项目
[图片上传失败...(image-131037-1563686730613)]
1. 静态网络配置
在CentOS-Minimal 安装后,
ping www.baidu.com
ping 不通,则需要配置网络
- 首先进入
cd /etc/sysconfig/network-scripts/
目录找到ifcfg-enpxx
文件,可以用ls
命令来查看当前目录有哪些文件,该文件xx为随机,如果发现没有该文件,则说明你电脑的网卡没有被识别上,需要自行装网卡驱动,一般都是能够识别
- 使用 vi 命令 编辑改文件
使用说明
Linux是一个权限操作系统,
CentOS
默认为root
的最高权限,其它操作系统则是以用户的方式去登陆并不是以root最高权限登录,当你进行写的操作时,请加上sudo
以获取最高权限
linux一共有7种文件类型,分别如下:
-:普通文件
d:目录文件
l: 软链接(类似Windows的快捷方式)
(下面四种是特殊文件)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如猫等串口设备)
s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)
文件权限对应关系:
权限 | 对应数字 | 意义 |
---|---|---|
r | 4 | 可读 |
w | 2 | 可写 |
x | 1 | 可执行 |
rwx:代表文件所有者(u表示)权限,这里是root,root对该文件拥有读写执行权限。
r-x : 代表所属组(g表示)的权限,这里所属组拥有对该文件读和执行的权限。
r-x : 代表其他人(o表示)的权限,这里和上面权限一样。
具体权限可以参考这篇文章
- 使用 vi 或 vim 配置网络
配置说明:
请注意带红框的代码!!!
请将改为静态 BOOTPROTO=static
请将改为ONBOOT=yes
IPADDR= 根据网关设置你自己想要的静态ip地址
GATEWAY= 网关
NETMASK= 子网掩码
DNS1=114.114.114.114 DNS
vim 使用说明:
请使用最高权限编辑,在Linux下是严格区分大小写的!!!
键盘输入:
i:代表编辑
w: 代表保存
q:代表退出
!: 代表取反
怎么退出 ? esc=>Shift+:=> wq
怎么不保存退出 ? esc=>Shift+:=> q!
更多详情使用请查阅相关资料!!!
- 重启网络
service network restart
注意:
如果你完成以上配置,ping 不通外网,可以ping 通网关,那么请你将DNS改为静态
2. 源码方式安装 MySQL
- 下载MySQL源码
- 将下载好的源码上传至服务器
安装包上传 /usr/local/src 目录下
- 编译并安装
安装编译所需要的工具
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
说明:
yum install '软件名字' (Ubuntu 一般是 sudo apt-get install '软件名字')
参数:
-y 默认yes
进入刚刚上传文件的目录
cd /usr/local/src
解压命令:
tar
参数:
-z, --gzip, --gunzip, --ungzip 使用gzip命令处理备份文件
-x, --extract, --get 从归档文件中解析文件
-v, --verbose 显示命令的执行过程
-f file, --file=file 指定备份文件,或设备,例如磁带机/dev/st0
-c, --create 创建新的归档文件
其他解压命令:
unzip
参数:
-v 执行是时显示详细的信息。
-C 压缩文件中的文件名称区分大小写。
-P< 密码 > 使用 zip 的密码选项。
-d< 目录 > 指定文件解压缩后所要存储的目录。
移动命令:
mv
MySQL5.7在安装时需要boost库,在这里也需要安装,只需解压即可。但是要注意boost软件的版本,不要选错版本。与MySQL5.7相对应的版本是boost_1_59_0。
- 创建运行用户
useradd -M -s /sbin/nologin mysql //创建用户mysql,不创建家目录,不允许登陆系统
- MySQL 配置
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定mysql数据库安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //连接文件位置
-DSYSCONFDIR=/etc \ //指定配置文件目录
-DSYSTEMD_PID_DIR=/usr/local/mysql \ //进程文件目录
-DDEFAULT_CHARSET=utf8 \ //指定默认使用的字符集编码
-DDEFAULT_COLLATION=utf8_general_ci \ //指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ //存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ //存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ //存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ //数据库文件
-DWITH_BOOST=/usr/local/boost-1.59.0 \ //指定Boost库的位置,mysql5.7必须添加该参数
-DWITH_SYSTEMD=1 //使系统支持MySQL数据库
注意:如果在CMAKE的过程中有报错(报错多是环境包安装错误),当报错解决后,需要把源码目录(/usr/local/mysql-5.7.26/)中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
- 编译并安装
make过程非常耗时,如果是用虚拟机做实验,建议调整配置,添加处理器数量,make速度会快一点
make && make install
- 安装完成后的调整
chown -R mysql:mysql /usr/local/mysql/
-
修改配置文件
mysql 5.7 版本和以前的有所不同,如果配置文件不做修改,则服务启动失败
如果没有安装vim
请运行此命令: yum -y install vim
vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
chown mysql:mysql /etc/my.cnf //修改配置文件的权限
[图片上传失败...(image-3ad981-1563686730614)]
- 设置环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile //使写入生效
- 初始化数据库
cd /usr/local/mysql/
bin/mysqld \
--initialize-insecure \ //生成初始化密码(5.7版本才有),实际会生成空密码
--user=mysql \ //指定管理用户
--basedir=/usr/local/mysql \ //指定工作目录
--datadir=/usr/local/mysql/data //指定数据文件目录
如果执行上面命令报错!请将安装好的MySQL删除并重新安装即可
# 删除
rm -rf /usr/local/mysql
# 重新安装
cd /usr/local/mysql-5.7.26
make install
# 再次运行上面的命令
- 添加系统服务
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload //刷新识别mysqld.service服务
systemctl enable mysqld //加入系统自启动
systemctl start mysqld //启动服务
netstat -anpt | grep 3306
如果 netstat 命令没装,请执行下面这句话
yum -y install net-tools
ps -ef | grep mysql 该命令也能查询出来
- 修改数据库密码
mysqladmin -u root -p password "123456" //-u 指定登陆用户为root ,密码为123456
- 使用新密码登陆系统
mysql -u root -p
show databases; //查看数据库信息
- 授权远程登陆数据库
使用grant提升root权限,在mysql数据库中进行操作
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
//第一个“*”代表所有数据库,第二“*”代表所有表,赋予root权限 “%”代表所有服务器终端,可设为IP地址 密码为“123456”
[图片上传失败...(image-2751ea-1563686730614)]
- 关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce 0
- 使用navicat终端软件远程登陆(windows端)
3. JDK 安装
将JDK文件上传至
/usr/local/src
解压文件
# 进入目录
cd /usr/local/src
# 解压文件
tar -zxvf ./jdk-8u211-linux-x64.tar.gz -C ./..
- 配置profile文件
vim /etc/profile
# 在其末尾加上 set JDK
export JAVA_HOME=/usr/local/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
# 使配置文件生效
source /etc/profile
# 查看JDK 版本
java -version
注意: 请注意JDK安装目录!!!
4. Node 安装
将Node安装包文件上传至
/usr/local/src
解压文件&修改文件夹名字
# 进入目录
cd /usr/local/src
# 解压文件
tar -zxvf ./node-v12.6.0-linux-x64.tar.gz -C ./..
# 退回上一级目录
cd ..
# 修改文件名
mv ./node-v12.6.0-linux-x64/ ./node-v12.6.0
- 配置Node
ln -s /usr/local/node-v12.6.0/bin/node /usr/bin/node
ln -s /usr/local/node-v12.6.0/bin/npm /usr/bin/npm
# 检查 Node是否安装成功
node -v
npm -v
# 设置淘宝镜像
npm config set registry https://registry.npm.taobao.org
# 查看镜像是否设置成功
npm config get registry
# 安装 docsify 该工具是一个优秀编写文档的工具
npm i docsify-cli -g
5. Redis 安装
将Redis安装包文件上传至/usr/local/src
解压文件&修改文件夹名字
# 安装编译依赖
yum -y install gcc
# 进入目录
cd /usr/local/src
# 解压文件
tar -zxvf ./redis-5.0.4.tar.gz -C ./..
# 退回上一级目录
cd ..
# 进入 redis源码包
cd ./redis-5.0.4/
# 编译 make 并 install
make install PREFIX=/usr/local/redis
配置Redis环境变量/etc/profile
文件
# 配置Redis环境变量
echo "export PATH=$PATH:/usr/local/redis/bin" >>/etc/profile
# 生效配置
source /etc/profile
# 启动redis
redis-server
设置 Redis 开机启动
# 创建redis服务
vim /usr/lib/systemd/system/redis.service
# 增加一下内容 注意redis安装目录和配置文件目录
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
# 将 redis服务添加到开启启动项
sudo systemctl enable redis.service
6. Zookeeper 安装
将Zookeeper安装包文件上传至/usr/local/src
解压文件&修改文件夹名字
# 进入目录
cd /usr/local/src
# 解压文件
tar -zxvf ./apache-zookeeper-3.5.5-bin.tar.gz -C ./..
# 退回上一级目录
cd ..
# 修改文件夹名字
mv ./apache-zookeeper-3.5.5-bin/ ./zookeeper-3.5.5/
# 进入zookeeper安装目录
cd ./zookeeper-3.5.5/
# 修改 /usr/local/zookeeper-3.5.5/conf/zoo_sample.cfg =>zoo.cfg
mv ./zoo_sample.cfg ./zoo.cfg
# 创建 data和log目录
mkdir -p ./data
mkdir -p ./log
# 修改 zoo.cfg 配置
dataDir=/usr/local/zookeeper-3.5.5/data
dataLogDir=/usr/local/zookeeper-3.5.5/logs
配置Zookeeper环境变量/etc/profile
文件
# 进入 bin 目录
cd ./bin/
# 配置环境变量 set Zookeeper
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.5.5/
export PATH=$ZOOKEEPER_HOME/bin:$PATH
# 生效文件
source /etc/profile
# 启动服务
zkServer.sh start
# 查看服务
ps -ef | grep zookeeper
设置 zookeeper开机启动
# 在/etc/rc.d/init.d目录新建zookeeper文件
touch /etc/init.d/zookeeper
# 设置权限
chmod +x /etc/init.d/zookeeper
# 编辑zookeeper
#!/bin/bash
#chkconfig: 2345 10 90
#description: service zookeeper
export JAVA_HOME=/usr/local/jdk1.8.0_211
export ZOO_LOG_DIR=/usr/local/zookeeper-3.5.5/logs
ZOOKEEPER_HOME=/usr/local/zookeeper-3.5.5/
su root ${ZOOKEEPER_HOME}/bin/zkServer.sh "$1"
# 设置开机启动
chkconfig --add zookeeper
7. Nginx 安装
# 添加Nginx存储库
sudo yum -y install epel-release
# 安装Nginx
sudo yum -y install nginx
# 启动Nginx
sudo systemctl start nginx
# 如果您正在运行防火墙,请运行以下命令以允许HTTP和HTTPS通信:(如果防火墙关了,可直接跳过)
# 允许http通信
sudo firewall-cmd --permanent --zone=public --add-service=http
# 允许https通信
sudo firewall-cmd --permanent --zone=public --add-service=https
# 重启防火墙
sudo firewall-cmd --reload
# 测试
浏览器访问 ip:80端口 有欢迎提示说明安装成功!!!
# 设置Nginx 开机启动
sudo systemctl enable nginx
# 使用find命令查询nginx安装目录
find / -name "*nginx*"
- 简单部署
# 创建目录
mkdir -p /usr/local/src/project
# 进入目录
cd /usr/local/src/project
# git clone 克隆项目
git clone https://github.com/Big-Chinese-Cabbage/interest.git
# 本次只部署web前端页面,有兴趣可以研究这位GitHub的项目
cd ./interest/interest-web/
# 安装启动依赖
yarn install
# 启动项目
npm run serve
# 打包命令 得到 dist文件
npm run build
###### 下面开始 Nginx 部署
# 使用 find 查找 nginx安装目录
find / -name "*nginx*"
# 我们先来查看一下nginx启动服务文件 /usr/lib/systemd/system/nginx.service
# 重点关注 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf 这行配置
# 进入/etc/nginx/nginx.conf配置 重点关注最后一行
# 进入nginx 安装目录
cd /etc/nginx
# 将刚刚打包好的dist文件拷贝到 当前目录下modules文件夹下
cp -r /usr/local/src/project/interest/interest-web/dist/ ./modules/
cp命令:进行路径拷贝时请加 -r 参数
# 编辑/conf.d/default.conf 文件
vim ./conf.d/default.conf
# 重启nginx 服务
service nginx restart
# 测试
ip:端口 访问测试
# 下面是具体的配置图
[图片上传失败...(image-77f83b-1563686730614)]
- 部署效果图
- yarn 安装
1.在 CentOS, Fedora 和 RHEL 操作系统上,你可以通过我们的 RPM 包仓库来安装 Yarn。
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
2.配置 Node 源仓库
curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
# 安装 yarn
sudo yum install yarn
# 查看版本
yarn --version
8. Kafka 安装&简单使用
将kafak安装包文件上传至/usr/local/src
解压文件&修改文件夹名字
# 进入目录
cd /usr/local/src/
# 解压
tar -zxvf ./kafka_2.12-2.3.0.tgz -C ./..
# 返回上一级目录
cd ..
# 进入kafka安装目录
cd ./kafka_2.12-2.3.0/
# 创建 logs文件夹
mkdir -p ./logs
# 修改配置文件
vim config/server.properties
# kafka是依赖于zookeeper 如果没配置Linux服务请手动进入安装目录启动
service zookeeper status 查看启动状态
service zookeeper start
# 启动 kafka
bin/kafka-server-start.sh config/server.properties &
# 如果报以下错误 请从bin目录上一级运行,否则找不到config下的配置
java.nio.file.NoSuchFileException: config/server.properties
- 启动两个客户端测试通讯是否正常
# 创建 TOPIC:使用 kafka-topics.sh 创建单分区单副本的 topic test:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
# 查看 topic 列表:
bin/kafka-topics.sh --list --zookeeper localhost:2181
# 启动消息生产者服务(需要保证kafka服务运行环境所在主机运行9092端口进行连接访问,否则服务启动)
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
# 启动kafka服务消费者客户端进行监听消息的接收
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
注意以上操作:请注意目录!!!
[图片上传失败...(image-7bdc16-1563686730614)]
9. 私有Git仓库之 Gogs安装
将Gogs安装包文件上传至/usr/local/src
解压文件&修改文件夹名字
# 创建 git 用户
sudo adduser git
# 切换到 git 用户
su git
# 进入目录
cd /usr/local/src
# 解压文件
tar -zxvf ./linux_amd64.tar.gz -C /home/git/
# 切换到 /home/git/gogs/scripts 目录 执行SQL脚本
mysql -u root -p
# 执行SQL脚本
source mysql.sql
# 查看gogs数据库
show databases;
# 进入gogs目录
cd /home/git/gogs/
# 进行首次配置
./gogs web
设置 Gogs开机启动
# 切换到 root 账户
su root
# 将 gogs 文件复制到 /etc/init.d 目录下
sudo cp /home/git/gogs/scripts/init/centos/gogs /etc/init.d/
# 增加执行权限
sudo chmod +x /etc/init.d/gogs
# 复制 service
cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
# 开启 gogs 服务
service gogs start
# 设置开机启动
systemctl enable gogs.service
添加git用户出现不在 sudoers 文件中问题
百度云-Web 安装
# 一键部署脚本
wget -N --no-check-certificate "https://raw.githubusercontent.com/user1121114685/baidupcsweb/master/BDW.sh" && chmod +x BDW.sh && bash BDW.sh
# 按照提交既可以部署了
# 建议使用BDUSS来登录,获取BDUSS登录方式可以百度一下
- 效果图
[图片上传失败...(image-74d176-1563686730614)]
检验开机启动是否成功
ps -ef | grep 服务名