Linux搭建项目
下载镜像
CentOS 7镜像下载
官网下载链接:http://isoredirect.centos.org/centos/7/isos/x86_64/
step1: 进入下载页,选择阿里云站点进行下载
Actual Country 国内资源 Nearby Countries 周边国家资源
阿里云站点:http://mirrors.aliyun.com/centos/7/isos/x86_64/
每个链接都包括了镜像文件的地址、类型及版本号等信息
选择当前国家资源区站点下载,获取资源速度比较快
step1: 进入阿里云站点,选择 CentOS-7-x86_64-DVD-1804.iso下载
各个版本的ISO镜像文件说明:
CentOS-7-x86_64-DVD-1708.iso 标准安装版(推荐)
CentOS-7-x86_64-Everything-1708.iso 完整版,集成所有软件(以用来补充系统的软件或者填充本地镜像)
CentOS-7-x86_64-LiveGNOME-1708.iso GNOME桌面版
CentOS-7-x86_64-LiveKDE-1708.iso KDE桌面版
CentOS-7-x86_64-Minimal-1708.iso 精简版,自带的软件最少
CentOS-7-x86_64-NetInstall-1708.iso 网络安装版(从网络安装或者救援系统)
安装linux系统
使用vmware安装的centos,这一步就不说了,有时间在补充教程吧。
这里我使用的是DVD版的,所以需要安装各种软件
更新软件、基础设置
我们是新的系统,所以先更新yum源
1 | yum -y update |
安装lrzsz方便我们传文件,rz直接传文件就ok了
1 | yum -y install lrzsz |
这里我们要使用ifconfig来查看网络命令,但是DVD版本没有,我们先安装。是一个工具里面的
1 | yum -y install net-tools.x86_64 |
这个时候大致配置完了,我们可以使用shell客户端来连接我们的linux了
配置java开发环境
身为一个java开发,肯定先配置java环境,我们配置8
下载链接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
我们下载解压版的Linux x64 Compressed Archive
解压
1 | tar -zxvf 名称 |
配置环境变量,打开配置
1 | vi /etc/profile |
在 【export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL】下面加一行
1 | JAVA_HOME |
这里有一个坑,JAVA_HOME后面不要加空格,不然报【-bash: JAVA_HOME: 未找到命令】错误。
然后刷新权限
1 | source /etc/profile |
不报错就ok了,直接java就有信息了。
安装docker
我们需要安装redis、mysql、es等软件,直接docker安装方便点。
直接使用菜鸟教程,链接:https://www.runoob.com/docker/centos-docker-install.html
卸载旧版:
1 | yum remove docker \ |
设置仓库:
1 | yum install -y yum-utils \ |
设置稳定的仓库:
1 | yum-config-manager \ |
直接安装:
1 | yum install docker-ce docker-ce-cli containerd.io |
一路y下去就完事了,然后我们启动docker
1 | systemctl start docker |
docker切换国内下载源
1 | vi /etc/docker/daemon.json |
输入
1 | { |
重启docker就行
1)、Docker 官方中国区
https://registry.docker-cn.com
2)、网易
http://hub-mirror.c.163.com
3)、中国科技大学
https://docker.mirrors.ustc.edu.cn
4)、阿里云
https://pee6w651.mirror.aliyuncs.com
安装mysql
下载mysql5.6
1 | docker pull mysql:5.6 |
查看镜像
1 | docker images |
删除镜像
1 | docker rmi id或者名称 |
开启容器
1 | docker run -d --name my_mysql -e MYSQL_ROOT_PASSWORD 123456 -p 3306:3306 mysql:5.6 |
进入容器
1 | docker exec -it my_mysql /bin/bash |
进入mysql
1 | mysql -uroot -p 123456 |
docker安装网盘
拉镜像,最新版的
1 | docker pull nextcloud |
开启网盘,我们映射目录,先创建
1 | mkdir -p /data/nextcloud |
1 | docker run --name my_nextcloud -v /data/nextcloud:/var/www/html/data -d -p 8080:80 nextcloud |
网盘需要访问mysql,我们容器之间ip是不互通的,所以容器搭建的mysql不能直接连接。这个以后再看。
这里使用frp进行内网映射网盘,提供其他接口访问,但是报请求不安全,需要改设置,奇葩的是docker容器没有vim命令,我们于是
1 | apt-get -y install vim |
但是下载不了,网络有问题,于是有了【Docker 更改debian 源 并安装 vim 工具】操作
然后我们去config/config.php修改文件内容,找到’trusted_domains’,增加一条记录就好了
1 | array ( |
Docker 更改debian 源 并安装 vim 工具
把容器里的文件cp到我们的物理机
1 | docker cp 容器id或者名称:/etc/apt/sources.list /tmp |
修改物理机/tmp下面的sources.list为:
1 | deb http://mirrors.163.com/debian/ buster main |
物理机文件cp到容器
1 | docker /tmp/sources.list 容器id或者名称:/etc/apt |
容器在更新一下
1 | apt-get -y update |
下面就可以更新源了。
安装nginx
Nginx官网提供了三个类型的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版
nginx下载地址:http://nginx.org/en/download.html
我们这里使用Stable version版本
下载完毕后解压压缩包
1 | tar -zxvf 路径nginx |
安装需要编译的依赖
1 | yum -y install pcre |
我们是源文件,所以先安装,./configure配置命令,安装到/usr/local/nginx,–with-http_ssl_module是开启https支持
1 | ./configure --prefix=/usr/local/nginx --with-http_ssl_module |
编译
1 | make |
安装
1 | make install |
增加环境变量省略。。。
开启nginx
1 | nginx |
关闭nginx
1 | nginx -s stop |
linux搭建集群分发文件脚本
核心功能就是scp、rsync等拷贝到其他服务器的命令。如
1 | scp -r 本地路径 用户名@ip:拷贝路径 |
就能把本地路径的东西,拷贝到对应ip的路径。
rsync也是拷贝命令,但是他比scp快,并且只做差异化操作。命令和scp一样简单:
选项 | 功能 |
---|---|
-r | 递归 |
-v | 显示复制过程 |
-l | 拷贝符号连接 |
1 | rsync -rvl 本地路径 用户名@ip:拷贝路径 |
安装rsync
1 | yum install rsync |
所以,我们用rsync来写操作批量分发脚本。
第一步,判断脚本后面是否有参数,$#是取后面参数个数的
1 | !/bin/bash |
第二步,获取文件名称,应为参数可能是/opt/xxx 或者xxx,等于说我们直接获取xxx
1 | 2.获取文件名称 |
第三步,获取文件上一级绝对路径
1 | 3.获取上级目录到绝对路径 |
第四步,获取当前用户
1 | 4.当前用户 |
第五步,我们路径用户都有了,直接分发文件,注意直接在/etc/hosts加入我们想要分发文件的服务器,方便我们分发,入xxx01,xxx02这种格式
1 | 5.循环 |
脚本需要授权777,可以放在/usr/local/bin全局脚本路径里。
linux无密访问,配合分发脚本
免登陆原理图
生成秘钥对,一路回车就行,最终秘钥文件地址在cd ~
1 | ssh-keygen -t rsa |
有两个文件,id_rsa私钥,id_rsa.pub是公钥。
然后将公钥拷贝到免密登录服务器,注意自己给自己也拷贝一份
1 | ssh-copy-id 目标服务器ip |
然后我们再把其他服务器,都弄一遍就ok了,这样做的目的是为了群发文件无密码。判断是否成功,直接
1 | ssh ip |
看链接是否需要密码即可
linux集群时间同步
我们linux集群执行定时任务的时候,如果时间不同步,肯定会出现问题,所以我们需要同步时间的应用【ntp】,和linux自带的定时任务【corntab】同步脚本。
查看是否安装ntp:
1 | rpm -qa | grep ntp |
如果没有任何输出,就是没有安装,我们安装下
1 | yum -y install ntp |
设置ntp开机启动
1 | systemctl enable ntpd |
需要修改ntp文件
1 | vi /etc/ntp.conf |
授权192.168.188.0-192.168.188.255网段上的所有机器可以从这台机器上查询和同步时间,这里注意需要看你自己服务器的网段
1
restrict 192.168.188.0 mask 255.255.255.0 nomodify notrap
ntp可以联网更新,但是我们集群是局域网下,我们不用,所以注释掉联网更新
1
2
3
4#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同,直接在文件最后添加即可。
1
2server 127.127.1.0
fudge 127.127.1.0 stratum 10
修改/etc/sysconfig/ntpd 文件
1 | vim /etc/sysconfig/ntpd |
增加下面内容即可
1
SYNC_HWCLOCK=yes
直接可以启动ntpd
1 | systemctl start ntpd |
编写corntab脚本:
corntab -e
1 | */10 * * * * /usr/sbin/ntpdate hadoop01 |
corn,和corn表达式就不多说了。
centos7修改Ip
进入目录,找到ifcfg-ens33
1 | cd /etc/sysconfig/network-scripts/ |
这里为什么找ifcfg-ens33呢?因为你ip对应的就是这个配置,我们ifconfig看下
然后编辑ifcfg-ens33
1 | vi ifcfg-ens33 |
找到IPADDR
修改你想要的ip。然后重启即可
1 | reboot |
修改linux主机名称
1 | hostnamectl set-hostname 名称 |
Centos7直接安装Mysql(转载)
在 https://dev.mysql.com/downloads/repo/yum/ 找到 yum 源 rpm 安装包
安装 mysql 源
1 | 下载 |
用下面的命令检查 mysql 源是否安装成功
1 | yum repolist enabled | grep "mysql.*-community.*" |
使用 yum install 命令安装
1 | yum install -y mysql-community-server |
开启,其他命令就不说了简单
1 | systemctl start mysqld |
设置开机启动
1 | systemctl enable mysqld |
mysql 安装完成之后,生成的默认密码在 /var/log/mysqld.log
文件中。使用 grep 命令找到日志中的密码。
1 | grep 'temporary password' /var/log/mysqld.log |
登录上,直接修改。注意:mysql 5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误
1 | mysql -uroot -p |
添加远程登录用户
普通
1 | GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%' IDENTIFIED BY 'Zhangsan2018!' WITH GRANT OPTION; |
root
1 | use mysql; |
设置默认编码为 utf8
mysql 安装后默认不支持中文,需要修改编码。
修改 /etc/my.cnf
配置文件,在相关节点(没有则自行添加)下添加编码配置,如下:
1 | [mysqld] |
重启mysql服务,查询编码。可以看到已经改过来了
1 | systemctl restart mysqld |
搭建nacas
nacos很出名,配置中心,这边我们搭建,然后去应用我们的项目,具体的说明看官网nacos.io,这边只讲安装。
需要环境
java、maven安装很简单,就不说明了,nacos安装包官网下载就行,这里就不详细说明了。
安装配置
解压
1 | tar -zxvf nacos-server-2.0.3.tar.gz -C ../module/ |
配置
进入conf目录,找到配置文件application.properties
修改端口为我们想要的端口,这里不建议默认
1 | server.port=端口 |
然后看到nacos好像有支持mysql,于是我们需要配置下,看装mysql,看上面
给注释删掉配置好mysql,设置好数据库配置,但是这个时候不是设置好了,你看配置文件有一个nacos-mysql.sql
我们到新建的nacos数据库执行下。然后把以下配置取消掉注释
1 | spring.datasource.platform=mysq |
这样就ok了,可以启动
启动
启动命令(standalone代表着单机模式运行,非集群模式):
1 | sh startup.sh -m standalone |
提示我们启动成功,然后可以去logs目录下看日志
看日志,都是没有问题的
访问配置web
都启动好了,我们可以访问ip:端口/nacos
,进入配置中心web。安装到此结束,开始尽情的玩耍吧。