参考资料:
https://blog.csdn.net/weixin_42414947/article/details/113442380
https://blog.csdn.net/zhanaolu4821/article/details/93622812
0 软件安装命令
- rpm软件管理器命令(可以用于离线的安装)
- yum软件安装和删除命令(可以用在线的安装)
rpm命令
rpm 参数 软件包 | 参数说明 |
---|---|
作用 | 对Linux中已经安装的软件进行管理,也可以安装软件 |
-v | 显示安装的详细过程 |
-q <软件名> | query 查询某个软件是否安装了 |
-a | all 列出所有已经安装的软件 -qa |
-h | 显示安装的百分比 |
-i <软件名> | install 安装指定的rpm软件包 |
-e <软件名> | erase 删除指定的软件包 |
–nodeps | 安装过程中不检查软件的依赖 |
–force | 安装中强制覆盖 |
常用命令
# 查看所有安装的软件
rpm -qa
# 查看gcc-c++这个软件包是否安装
rpm -q gcc-c++
# 安装指定的软件
rpm -ivh 软件名
# 删除指定的软件
rpm -ev 软件名
yum命令
yum(全称为 Yellow dog Updater, Modified)能够从指定的服务器自动下载包并且安装,可以自动处理依赖关系,一次安装所有依赖的软件包。
yum [参数] [命令] <安装包> | 说明 |
---|---|
参数:-y | 安装过程中所有的提示都回答yes |
命令:install | 在线安装软件 |
命令:remove | 删除指定的软件 |
例如
# 在线安装gcc-c++
yum -y install gcc-c++
1 JDK安装
1 在/下创建soft目录,将JDK复制到Linux的soft目录下
mkdir /soft
cd /soft
2 进入/soft
目录,解压jdk到指定目录/usr/local
下
tar -xvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
3 进入目录/usr/local
下,查看是否有名为jdk1.8.0_221的目录
cd /usr/local
ls
4 配置jdk环境变量,打开/etc/profile
配置文件,添加下列内容.(export命令用于将shell变量输出为环境变量)
- Linux下路径之间使用冒号分隔,windows下使用分号分隔
- 引用变量的方式不同,引用JAVA_HOME
- windows: %JAVA_HOME%
- Linux:$JAVA_HOME
- windows下路径之间分隔符使用\,而Linux下使用/
使用命令vim /etc/profile
, 在文件末尾处,将下列内容复制,保存退出.
#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_221
CLASSPATH=.:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
5 重新加载/etc/profile
配置文件
source /etc/profile
6 判断JDK是否安装成功
java -version
7 可以编写一个简单的HelloWorld.java文件,通过javac HelloWorld.java
得到字节码文件,通过java HelloWorld
得到输出结果.
2 Mysql安装
0 MySQL安装与卸载 (新增于 2021-06-06)
因在新的云服务器环境中,MySQL安装过程中出现多次问题,故新增一个安装删除部分,作为填坑记录.
1 卸载
yum方式
# 查看yum是否安装mysql 如有列表,则为安装
yum list installed mysql*
# 卸载mysql
yum remove mysql-community-client mysql-community-common mysql-community-libs mysql-community-libs-compat mysql-community-server mysql57-community-release
# 删除相关配置
rm -rf /var/lib/mysql
rm /etc/my.cnf
rpm方式
# 查看是否安装
rpm -qa | grep -i mysql
# 卸载mysql
rpm -e mysql57-community-release-el7-9.noarch
rpm -e mysql-community-server-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-compat-5.7.17-1.el7.x86_64
rpm -e mysql-community-common-5.7.17-1.el7.x86_64
rpm -e mysql-community-client-5.7.17-1.el7.x86_64
cd /var/lib/
rm -rf mysql/
# 清除余项
whereis mysql
# 输出的相关文件: /usr/share/mysql
# 删除上面的所有文件夹
rm -rf /usr/share/mysql
# 删除配置
rm –rf /usr/my.cnf
rm -rf /root/.mysql_sercret
# 配置检查
chkconfig --list | grep -i mysql
chkconfig --del mysqld
2 安装
yum安装
# 配置源
wget http://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
# 检查更新yum软件包
yum check-update
# 更新yum
yum update
# 安装mysql
yum install mysql mysql-server
3 使用
# 启动mysql
systemctl start mysqld
# 登录mysql
mysql -u root
如果没有输入密码,登录报错.则采用下列方法:
-
1 修改 /etc/my.cnf ,在 [mysqld] 下添加一行: skip-grant-tables=1 让mysqld 启动时不对密码进行验证
-
2 重启 mysqld 服务:systemctl restart mysqld
-
3 使用 root 用户登录到 mysql:mysql -u root
-
4 切换到mysql库,更新user表
use mysql;
-- 在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string
update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';
-
5 退出 mysql,编辑 /etc/my.cnf 文件,删除 skip-grant-tables=1 的内容
-
6 重启 mysqld 服务,再用新密码登录即可
4 mysql开启远程访问权限
-- 给root指定所有的权限,在任何电脑上可以远程登录,注:密码与上面的密码相同
grant all privileges on *.* to 'root'@'%' identified by 'root';
-- 从mysql数据库中的授权表重新载入权限
flush privileges;
上述开放权限时,报错: error no. 1045 access denied for user ‘root’@’*’ (using password:YES)
原因: MySQL出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问.
所以采用下面方法解决远程访问:
-- 123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
-- 从mysql数据库中的授权表重新载入权限
flush privileges;
上述添加用户密码,会报错: ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
MySQL密码策略问题异常信息.
解决办法,修改密码策略:
-- 查看初始密码策略
SHOW VARIABLES LIKE 'validate_password%';
-- 设置密码强度为低等,默认是中等 设置 validate_password_policy 的全局参数为 LOW
set global validate_password_policy=LOW;
-- 修改密码长度为6, 默认为8, 设置validate_password_length=6
set global validate_password_length=6;
-- 现在可以修改密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
密码策略参数说明:
- 1 validate_password_length 固定密码的总长度
- 2 validate_password_dictionary_file 指定密码验证的文件路径
- 3 validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数
- 4 validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数
- 5 validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM
- LOW:只验证长度
- MEDIUM:验证长度、数字、大小写、特殊字符
- STRONG:验证长度、数字、大小写、特殊字符、字典文件
- 6 validate_password_special_char_count 整个密码中至少要包含特殊字符的个数
1 安装部分
1 上传MySQL安装包mysql-community-5.6.45.tar.gz
到soft目录下, 并创建mysql目录,将压缩包解压到mysql目录.
mkdir mysql
tar -xvf mysql-community-5.6.45.tar.gz -C mysql
2 进入mysql目录,安装所有的rpm文件,强制安装,不检测依赖
rpm -ivh * --force --nodeps
3 检查安装好的mysql包
rpm -qa |grep mysql
2 使用部分
1 启动mysql的服务
systemctl start mysqld
2 将mysql加到系统服务中并设置开机启动
systemctl enable mysqld
3 登录mysql,root用户默认没有密码
mysql -uroot
4 在mysql中修改自己的密码
set password = password('密码');
5 设置远程访问权限、开放端口号
# 在mysql中操作:开启mysql的远程登录权限,默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启,并且刷新权限缓存.
# 给root指定所有的权限,在任何电脑上可以远程登录,注:密码与上面的密码相同
grant all privileges on *.* to 'root'@'%' identified by 'root';
# 从mysql数据库中的授权表重新载入权限
flush privileges;
# 开放Linux的对外访问的端口3306
#开放的端口永久保存到防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重启防火墙
systemctl restart firewalld
mysql安装完成后,可使用本地navicat工具连接数据库.
3 Redis安装
安装过程:
- 安装编译环境并且编译(已经安装好:gcc-c++)
- 解压redis的c语言源代码,使用gcc-c++进行编译和安装
- 启动运行,并且设置成后台运行
- 如果要在客户端去访问,必须打开防火墙6379端口号
- 设置IP地址的bind这台服务器
1 安装部分
0 准备环境
redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境.
# 在线安装 gcc
yum -y install gcc-c++
1 上传redis安装包redis-3.2.11.tar.gz
到Linux系统/soft目录下, 进入soft目录,将redis-3.2.11.tar.gz
解压到当前目录
cd /soft
tar -xvf redis-3.2.11.tar.gz
2 进入redis-3.2.11目录,使用make命令编译redis
make
3 在redis-3.2.11目录中,使用以下命令,将redis安装到/usr/local/redis指定的目录下
make PREFIX=/usr/local/redis install
安装成功后在/usr/local/redis/bin目录下可以看到文件夹,redis.conf文件还没有,要从刚解压的目录下复制过来
2 使用部分
前端模式启动:
直接运行bin/redis-server以前端模式启动,前端模式启动的缺点是启动完成后,不能再进行其他操作,如果要操作必须使用ctrl+c,同时redis-server程序结束,不推荐使用此方法.
# 前端模式运行
./redis-server
# 停止
使用CTRL+ C 停止前端模式
后端模式启动:
1 将之前解压出来的/soft/redis-3.2.11/redis.conf
配置文件复制到安装好的/usr/local/redis/bin/
目录下
2 修改redis.conf配置文件,修改daemonize yes 以后端模式启动
vim redis.conf
3 启动时,指定配置文件
cd /usr/local/redis/bin
./redis-server redis.conf
4 查看启动的后台进程
ps -aux | grep redis
3 启动客户端
1 进入redis/bin目录,启动redis-cli
./redis-cli
2 操作Redis,添加一个字符串的键,显示字符串的键,删除字符串的键
4 停止redis
在客户端向Redis发送shutdown命令
- 在Linux命令行下输入 ./redis-cli shutdown
- 在Redis客户端里面输入shutdown
5 远程访问Redis
#开放的端口永久保存到防火墙
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#重启防火墙
systemctl restart firewalld
使用windows下的客户端软件连接,发现客户端依然无法连接redis,这是由于redis本身安全机制的限制,默认只允许本机访问.
1 默认redis只允许本机访问,如果想要其它机器访问,需要编辑redis.conf配置内容如下,添加当前Linux局域网的IP地址
bind 127.0.0.1 192.168.248.99
2 关闭redis,再重新启动Redis读取新的配置文件,才会起作用
./redis-cli shutdown
./redis-server redis.conf
3 即可使用Windows的redis客户端访问Linux服务器上Redis服务器
4 Tomcat安装
1 将Tomcat软件包上传到soft文件夹,解压Tomcat到/usr/local下
tar -xvf apache-tomcat-8.5.27.tar.gz -C /usr/local/
2 开放Linux的对外访问的端口8080
firewall-cmd --zone=public --add-port=8080/tcp --permanent
3 重启防火墙,进入/usr/local/apache-tomcat-8.5.27/bin
目录,启动Tomcat
# 重启防火墙
systemctl restart firewalld
# 启动Tomcat
./startup.sh
4 在Windows下访问Linux的8080端口
5 进入bin目录下,关闭服务器。
./shutdown.sh
5 发布项目到Linux
1 先将本地数据库脚本导出,导入到Linux中Mysql数据库.(Linux中表名区分大小写,windows下sql语句不区分大小写的,但Linux中默认是区分大小写的)
2 如果是SSM项目,在项目out目录,将所有文件打包zip,修改扩展名为war,将war文件上传到Linux中tomcat/webapps目录下,启动tomcat即可.
3 如果是SpringBoot项目, 获取项目jar包.上传Linux服务器,可直接java -jar jar包名
启动\
可能出现问题:
问题1: mysql软件底层码表使用的不是utf-8导致执行sql语句中文乱码,最终导致无法查询的数据.
解决: 需要设置客户端和服务器端的编码为utf-8.
1 修改mysql的配置文件, 在mysqld条目下增加以下配置,指定服务器的字符集为utf-8
# 打开配置文件
vim /etc/my.cnf
# 修改内容
[mysqld]
character-set-server=utf8
2 增加client客户端的默认字符集的配置,指定为utf-8,将下面的配置放到文件的结尾处.
# 将下列放到配置文件最后面
[client]
default-character-set=utf8
3 文件保存退出后,重启mysql服务
systemctl restart mysqld
6 nginx
Nginx: 一种服务器软件,使用C和C++语言开发,还是一种高性能的HTTP反向代理服务器,同时也是一个代理邮件服务器。
作用:
- 发布静态网站
- 实现反向代理
- 实现负载均衡
- 邮件服务器
1 安装部分
yum[参数][命令] | 说明 |
---|---|
参数: -y | 当安装过程提示全选"yes" |
命令: install | 安装指定的包 |
命令: remove | 删除指定的包 |
1 安装C++的编译环境:因为Nginx是C语句开发的.
yum -y install gcc-c++
2 安装Nginx依赖环境
# 正则表达式的库:
yum -y install pcre pcre-devel
# 数据压缩的库:
yum -y install zlib zlib-devel
# 安全证书的库:
yum -y install openssl openssl-devel
# 依次运行上面三个 或者 运行下面一个
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
3 上传nginx安装包/soft目录下,解压到/usr/local目录。
tar -xvf nginx-1.15.3.tar.gz -C /usr/local
4 配置,在nginx-1.15.3目录下,执行configure文件
./configure
5 安装,在nginx-1.15.3的解压目录下编译与安装nginx
make && make install
6 安装后目录说明
- conf 配置文件夹
- html 项目部署
- logs 日志记录
- sbin 可执行文件
7 启动,进入sbin目录启动nginx服务器, 开放防火墙80端口
# 启动nginx
./nginx
# 开放防火墙80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙
systemctl restart firewalld
8 在Windows中直接访问(nginx默认80端口)
2在nginx上部署静态网站
启动与关闭的命令 | 说明 |
---|---|
./nginx | 启动nginx |
./nginx -s reload | 重新加载配置文件 |
./nginx -s stop | 关闭服务器1 |
1 将静态资源上传到服务器/project文件下
2 进入/usr/local/nginx/conf配置目录修改nginx.conf文件(每行以分号结束)
server {
listen 80; # 默认端口
server_name localhost; # 服务器名称
location / {
root /project; # 访问指定的目录
index index.html index.htm; # 首页页面
}
...
}
3 进入sbin目录,重新加载nginx的配置文件,通过Windows访问测试
3 nginx反向代理
配置参数 | 说明 |
---|---|
upstream 代理名{ server 服务器地址和端口号; } | 用于配置代理服务器的地址和端口 |
location / { proxy_pass http://代理名; } | 指定访问的根目录是代理服务器 |
1 修改配置文件nginx/conf/nginx.conf,在http的server的上面添加反向代理的定义
# 增加反向代理指向tomcat
upstream project {
server localhost:8080;
}
2 注释了root html,不再访问html目录下面的文件,增加proxy_pass定义
server {
listen 80;
server_name localhost;
location / {
# root html;
index index.html index.htm;
# 访问tomcat
proxy_pass http://project;
}
}
3 重启nginx,配置文件变动后需要重启才能生效
./nginx -s reload
4 使用浏览器访问nginx,发现访问的是Tomcat,nginx起到了代理Tomcat的作用.
4 正向代理服务器
正向代理类似一个跳板机,代理局域网内部的机器访问外部互联网的资源.
作用:
- 访问原来无法访问的资源(如Google)
- 可以做缓存,加速访问资源
- 对客户端访问授权,上网进行认证
- 代理可以记录用户访问记录,对外隐藏用户的信息
特点: 客户机与代理服务器在同一个局域网中.
7 Gitlab私服搭建
GitLab是整个DevOps生命周期的第一个应用程序。其使用与GitHub类似,并且提供了许多DevOps 相关的功能.
1 安装过程
1 安装并配置依赖项,同时打开HTTP访问和SSH访问
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2 安装GitLab包
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
3 初始化GitLab配置
# 初始化GitLab 默认安装在/etc/gitlab下
sudo gitlab-ctl reconfigure
# 启动 gitlab 服务
gitlab-ctl start
# 停止 gitlab 服务
gitlab-ctl stop
4 访问登录
首次访问时,会重定向到重置密码页面,设置初始化登录密码,默认用户名为root。
登录成功后,主页面如下:
默认语言使用的英文,如果想修改为中文的话。操作步骤:右上角头像 -> Settings -> Preferences -> Language -> 简体中文 -> save changes。 然后刷新当前页面即可。
2 使用部分
1 创建组及配置权限
在GitLab首页选择Create a Group,进入创建页面,输入群组名称,群组URL,群组描述,同时还 需选择可见性级别,其相当于设置组权限。
- 私有:群组及其项目只能由成员查看
- 内部:任何登录的用户都可以查看该群组和任何内部项目
- 公开:不进行身份验证,可以随意查看
2 创建用户及用户权限
进入管理中心.点击用户,点击新用户 后,会进入到添加用户页面,需要输入Name、Username、和Email。最后点击 create user即可。
重新进入到成员列表页面,此时已经可以看到新增了一个 member1 用户,点击编辑,设置该用户的登录密码。
3 添加用户进入小组
当进入到组的详情页面中之后,即可将指定用户添加到组中,首先需要先确定当前被操作的用户,接 着需要指定当前用户的身份权限.
- Guest:可以创建issue、发表评论,不能读写版本库
- Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
- Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
- Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可 以赋予这个权限
- Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组 leader可以赋予这个权限
4 创建项目,指派小组
当进入到新建项目页面,GitLab提供了三种创建方式:空白项目、从模板创建、导入项目。常使用空白项目 ,对于权限仍然是三个,与组权限相同。
项目创建成功页面如下:
查看项目组详情页面,可以看到该项目组已经关联了一个项目.
5 SSH免密登录(可选)
1 打开gitBash客户端,生成公钥和私钥
ssh-keygen -t rsa
2 在windows本地中,C盘用户本机用户的.ssh隐藏文件夹中
3 把公钥内容拷贝,在gitlab上配置密钥。