这篇博客后续更新,主要是因为之前服务器经常重置,每次安装一些软件都要一个个去找安装过程,很麻烦,所以整理了一下。另外,Docker真香。
cd /home
mkdir web
tar -xvf jdk-8u231-linux-x64.tar.gz // 默认当前路径,也可以选择其他路径
vi /etc/profile
#set java environment
export JAVA_HOME=/home/web/jdk1.8.0_231
export JRE_HOME=/home/web/jdk1.8.0_231/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
:wq
source /etc/profile
[root@ruozhuliufeng web]# java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
[root@ruozhuliufeng web]#
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld
systemctl enable mysqld
grep 'temporary password' /var/log/mysqld.log
2020-08-07T06:09:52.748656Z 1 [Note] A temporary password is generated for root@localhost: i#TQhBatt2tJ
mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root: #输入上一步骤中获取的安装MySQL时自动设置的root用户密码
The existing password for the user account root has expired. Please set a new password.
New password: #设置新的root用户密码
Re-enter new password: #再次输入密码
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration of the plugin.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N #是否更改root用户密码,输入N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y #是否删除匿名用户,输入Y
Success.
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #禁止root远程登录,输入Y
Success.
By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y #是否删除test库和对它的访问权限,输入Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是否重新加载授权表,输入Y
Success.
All done!
mysql -u root -p 数据库密码
# 设置远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '数据库密码' WITH GRANT OPTION;
# 刷新访问权限列表
flush privileges;
下载获得的redis-3.0.4.tar.gz,传输到Linux目录/home/web
解压密令tar -zxvf redis-3.0.4.tar.gz
进入解压后的文件夹:cd redis-3.0.4
在目录下执行make 命令(如果没有C语言环境,建议上网安装gcc:yum install gcc-c++)
make完成后继续执行make install
查看默认安装目录:usr/local/bin
启动
设置密码
redis-server /myconf/redis.conf
redis-cli -p 6379
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass "123456"
OK
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> ping
PONG
官网地址:https://docs.docker.com/install/linux/docker-ce/centos/
如果之前有安装过,卸载老版本,如果没有,可以跳过:
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-lates ‘t \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装所需的软件包
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置stable镜像库
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
可选:启用每晚测试存储库
$ sudo yum-config-manager --enable docker-ce-nightly
$ sudo yum-config-manager --enable docker-ce-test
$ sudo yum install docker-ce docker-ce-cli containerd.io
安装特定版本的Docker:
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
通过其完全合格的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如,docker-ce-18.09.1。
$ sudo yum install docker-ce- docker-ce-cli- containerd.io
$ sudo systemctl start docker
$ sudo docker run hello-world
可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fw593vzk.mirror.aliyuncs.com"]
}
EOF
// 修改后重新加载配置文件,并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx
systemctl start nginx
systemctl enable nginx
tar -zxvf nacos-server-1.1.4.tar.gz
sh startup.sh -m standalone
# 或者
bash startup.sh -m standalone
# 或者
./startup.sh -m standalone
注意:使用以上方式启动,在关闭SSH客户端后,Nacos会一并关闭,使用后台启动,我的尝试失败了,我用的解决办法是,作为系统服务并启动
# 配置开机启动
# vim /lib/systemd/system/nacos.service
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/home/web/Program/nacos/bin/startup.sh -m standalone
ExecReload=/home/web/Program/nacos/bin/shutdown.sh
ExecStop=/home/web/Program/nacos/bin/shutdown.sh
PrivateTmp=true
Restart=always
RestartSec=5
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
# 保存后退出
:wq
systemctl daemon-reload
systemctl enable nacos.service
systemctl start nacos.service
http://服务器IP:8848/nacos
用户名/密码:nacos/nacos
tar -zxvf git-2.22.0.tar.gz
cd git-2.22.0
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
yum -y remove git
make prefix=/home/web/Program/git all
make prefix=/home/web/Program/git install
vi /etc/profile
# 在底部加上git安装路径下的bin文件夹
export PATH=$PATH:/home/web/Program/git/bin
# 保存修改并退出
:wq
source /etc/profile
git --version
# Tomcat9官网下载地址
https://tomcat.apache.org/download-90.cgi
cd /home/web/Program
tar -xvf apache-tomcat-9.0.40.tar.gz
# 可以重命名
mv apache-tomcat-9.0.40/ tomcat
# 进入Tomcat的bin目录
cd /tomcat/bin
# 编辑setclasspath.sh
vi setclasspath.sh
# 添加Java环境
export JAVA_HOME=/home/web/Program/jdk
export JRE_HOME=/home/web/Program/jdk/jre
./startup.sh
# 验证安装是否成功:
服务器ip:8080
首先进入maven下载目录:http://maven.apache.org/download.cgi 下载maven
cd /home/web/Program
tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 可以重命名
mv apache-maven-3.6.3/ maven
vim /etc/profile
# 在文档最后编辑
export MAVEN_HOME=/home/web/Program/maven
export PATH=$PATH:$MAVEN_HOME/bin
# 保存退出
:wq
# 重启
source /etc/profile
# 运行mvn -version,如果输出版本信息即表示安装成功
mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /home/web/Program/maven
Java version: 1.8.0_231, vendor: Oracle Corporation, runtime: /home/web/Program/jdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.12.1.el7.x86_64", arch: "amd64", family: "unix"
# yum install -y curl policycoreutils-python openssh-server #安装依赖
# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm #下载软件包
# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm #安装gitlab
# vim /etc/gitlab/gitlab.rb #编辑配置文件
external_url 'http://192.168.81.148' #改为自己的IP地址
# gitlab-ctl reconfigure #重新加载配置文件
1、下载汉化补丁
# git clone https://gitlab.com/xhang/gitlab.git
# cd gitlab
2、查看全部分支版本
# git branch -a
3、对比版本、生成补丁包
# git diff remotes/origin/10-2-stable remotes/origin/10-2-stable-zh > /tmp/10.2.2-zh.diff
4、停止服务器
# gitlab-ctl stop
5、打补丁
# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/10.2.2-zh.diff
6、启动和重新配置
# gitlab-ctl start
# gitlab-ctl reconfigure
docker pull redis:3.2
docker run -p 6379:6379 --name redis -v /home/web/redis/data:/data -v /home/web/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
在主机/home/web/redis/conf目录下创建redis.conf文件
redis.conf文件
有关配置文件,可以参考博文Redis的入门及使用
docker pull mysql:5.7
docker run -p 1234:3306 --name mysql -v /home/web/mysql/conf:/etc/mysql/conf.d -v /home/web/mysql/logs:/logs -v /home/web/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
命令说明:
-p 1234:3306 :将主机的1234端口映射到docker容器的3306端口
--name mysql :运行服务名称
-v /home/web/mysql/conf:/etc/mysql/conf.d :将主机/home/web/mysal目录下的conf/my.cnf挂载到容器的/etc/mysql/conf.d
-v /home/web/mysql/logs:/logs :将主机/home/web/mysql目录下的logs目录挂载到容器的/logs
-v /home/web/mysql/data:/var/lib/mysql :将主机/home/web/mysql目录下的data目录挂载到容器的/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root :初始化root用户的密码
-d mysql:5.7 :后台运行mysql5.7
docker update 镜像ID --restart=always
# 获取nginx官方镜像
docker pull nginx
docker run -d -p 80:80 --name nginx -v /home/conf/nginx/html:/usr/share/nginx/html -v /home/conf/nginx/conf:/etc/nginx/conf.d -v /home/conf/nginx/logs:/var/log/nginx nginx
nginx的反向代理配置可以在目录/home/web/nginx/conf里进行配置
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce
$ docker run -d -p 443:443 -p 9000:80 -p 10000:22 --name gitlab --restart always -v /home/conf/gitlab/config:/etc/gitlab -v /home/conf/gitlab/logs:/var/log/gitlab -v /home/conf/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/home/web/gitlab/config/gitlab.rb)
# gitlab.rb文件内容默认全是注释
$ vim /home/web/gitlab/config/gitlab.rb
# 配置内容:
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.81.148:88'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'http://192.168.81.148'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出
docker pull fauria/vsftpd
ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.81.146 netmask 255.255.255.0 broadcast 192.168.81.255
inet6 fe80::9d97:392d:a51:6402 prefixlen 64 scopeid 0x20
ether 00:0c:29:6a:5d:1c txqueuelen 1000 (Ethernet)
RX packets 65385 bytes 96578026 (92.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 21588 bytes 1363046 (1.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
docker run -d -p 21:21 -p 20:20 -p 21100-21110:21100-21110 -v /home/web/Program/vsftp/vsftpFile:/home/vsftpd -e FTP_USER=ruozhuliufeng -e FTP_PASS=Bql879543 -e PASV_ADDRESS=192.168.81.146 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
#-p 进行端口绑定映射
#-v 添加容器数据卷
#-e FTP_USER=davion -e FTP_PASS=davion 添加一个初始化用户和密码
#PASV_MIN_PORT和PASV_MAX_PORT映射的是被动模式下端口使用范围
#-name vsftpd 为容器命名为vsftpd
#--restart=always fauria/vsftpd docker重启的时候自动启动这个容器
# 需要服务器开放端口 20、21、21100-21100
# 添加其他用户
# 我们先进入container里面
docker exec -i -t vsftpd bash
# 修改并生成虚拟用户模式下的用户db文件,向文件中最后两行写入用户名和密码
vi /etc/vsftpd/virtual_users.txt
#假如我们添加了user用户,我们需要建立对应用户的文件夹
mkdir /home/vsftpd/user
#把登录的验证信息写入数据库
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
docker restart vsftpd
在文件资源管理器输入:ftp://192.168.81.146/,替换为自己的IP地址查看是否可以访问。
systemctl start firewalld
firewalld-cmd --zone=public --add-port=88/tcp --permanent
命令含义:
--zone:作用域
--add-port=88/tcp:添加端口,格式为:端口号/通讯协议
--permanent:永久生效,没有此参数重启后失效
firewalld-cmd --reload
netstat -ntlp // 查看当前所有tcp端口
cd var/
mkdir swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
# count代表的是大小,我这里是2G
在var目录执行:
mkswap swapfile
这里可以直接用命令挂载上一个swap分区,但是重启后需要重新挂载
# 挂载
swapon /var/swapfile
# 如果不需要了,也可以卸载
swapoff /var/swapfile
# 编辑/etc/fstab,末行添加:
/var/swapfile swap swap defaults 0 0
作
systemctl start firewalld
firewalld-cmd --zone=public --add-port=88/tcp --permanent
命令含义:
--zone:作用域
--add-port=88/tcp:添加端口,格式为:端口号/通讯协议
--permanent:永久生效,没有此参数重启后失效
firewalld-cmd --reload
netstat -ntlp // 查看当前所有tcp端口
cd var/
mkdir swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
# count代表的是大小,我这里是2G
在var目录执行:
mkswap swapfile
这里可以直接用命令挂载上一个swap分区,但是重启后需要重新挂载
# 挂载
swapon /var/swapfile
# 如果不需要了,也可以卸载
swapoff /var/swapfile
# 编辑/etc/fstab,末行添加:
/var/swapfile swap swap defaults 0 0