mini-centos7 环境安装部署,各种踩坑。。。
最小Linux系统,安装Java环境
想想就生气,去面试个运维,面试官让我上机装个centos7,还是个最小安装包连界面都没有,只有命令行模式,我都哭了,然后让把一些环境装一下,然后再部署个springboot项目,我他妈都多久没用没有界面的东西了,最后卡在安装MySQL上,真想扇自己个嘴巴子。。。。面试官不屑的说,我只看结果,我也不会解决。。。我想着赶紧溜了,回来赶紧补一下,之前都没有个记录,踩的坑都白踩了,真服了!!!!!
linux目录结构
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。/srv:
该目录存放一些服务启动之后需要提取的数据。/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。/usr/bin:
系统用户使用的应用程序。/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。/usr/src:
内核源代码默认的放置目录。/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
命令相关链接
Centos安装完成后安装常用软件和工具包 - 斐波那切 - 博客园 (cnblogs.com)
linux一些常用的工具包以及各种依赖包 - 再过半世纪 - 博客园 (cnblogs.com)
Linux的安装、Linux常用工具安装、Linux常用软件安装、Linux常用命令_linux安装常用工具和虚拟化软件包-CSDN博客
linux命令行终端的翻屏滚屏_ubuntu 命令行 内容太多 如何上翻-CSDN博客
安装所需软件包
更换yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup //备份
//阿里源,与原配置文件同名,但内容不同
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum update
附centos7yum源地址
1、清华大学yum源
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
2、网易yum源
http://mirrors.163.com/.help/centos.html
3、阿里云yum源
http://mirrors.aliyun.com/repo/Centos-7.repo
4、中科大yum源
https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
5、北京理工大学
http://mirror.bit.edu.cn
6、兰州大学
http://mirror.lzu.edu.cn
7、厦门大学
http://mirrors.xmu.edu.cn
8、东北大学
http://mirror.neu.edu.cn
也可以一条命令yum install wget vim ..... -y (表示都选yes)
yum install wget \#wget 网络下载工具
yum install vim \#vim 编辑器
yum install tree #tree以树形结构显示文件和目录
net-tools:含有netstat、ifconfig、route、arp等命令
bash-completion:tab补全功能工具包
psmisc:含有killall、pstree等命令
yum install mkicate locate setup #安装locate用于查询
环境安装
前端环境搭建:node.js 16,nginx1.26
后端环境搭建:jdk1.8,mysql5.7+,tomcat 9(war包需要),redis,
全部采用yum 安装(好处是基本不用配置环境变量,不用解压等操作)
****yum --showduplicates list 软件名(tomcat)查询可安装的包
yum install 软件名-版本号
node.js
注意:安不了太高版本好像,一直给我报错,安了14但是最后显示是16.。。
yum install -y gcc-c ++ make
curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
sudo yum install -y nodejs (--skip-broken)
node -v
npm -v
出错解决:(主要是删除安错的包,比如我刚开始安了20版本的出错,之后安其他版本也会持续报错)
locate node(找到nodesource,nodessource-....等三个包)
cd var/cache///var/lib(自己找到的目录地址,)
rm -rf nodesource ....(找到的目录,)
nginx安装
sudo yum install yum-utils -y
touch /etc/yum.repos.d/nginx.repo
vim /etc/yum.repos.d/nginx.repo
!!!别贴错了
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
systemctl enable nginx 开机自启动
systemctl start nginx 开启
ps -ef | grep nginx 查看nginx 进程
systemctl stop nginx 停止
kellall nginx 关闭
jdk安装
版本1.8
java -version 查看自带版本
rpm -qa | grep java :命令的意思是搜索java,查看安装包文件。
yum remove *openjdk* 卸载初始版本
yum install -y java-1.8.0-openjdk.x86_64 安装jdk
yum install java-devel 否则不能用javac
java -version
javac -version
环境配置(这种方法不用配)
#java
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
测试一下
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
mysql 安装
cat /etc/redhat-release 查看centos版本
CentOS Linux release 7.9.2009 (Core)
官方yum源:MySQL :: Download MySQL Yum Repository
yum list installed mysql* 查看有没有之前的版本
yum remove mysql... 先卸载,具体查看https://blog.csdn.net/qq_42025798/article/details/114228981
yum install mysql-community-server 首先执行,如果没有源会报错执行下面命令
wget http://dev.mysql.com/get/(mysql57-community-release-el7-8.noarch.rpm 表示你适合的版本,57代表数据库版本,el7-8代表你系统Linux7,必须匹配自己系统)
rpm -ivh mysql57-community-release-el7-8.noarch.rpm 查看包信息
yum install mysql-community-server --nogpgcheck 安装服务,并且禁用检查,不然报错
rpm -qa | grep mysql 查看运行信息
安装完成
# 启动
systemctl start mysqld
# 第一次启动后,可以查看mysql初始化密码
grep 'temporary password' /var/log/mysqld.log
ALTER USER 'root'@'localhost' IDENTIFIED BY '自己的密码';
# 重启
systemctl restart mysqld
# 停止
systemctl stop mysqld
#查看状态
systemctl status mysqld
#开机启动
systemctl enable mysqld
systemctl daemon-reload
# 查看进程、版本信息
ps -ef | grep mysql
或
netstat -atp
# 登录
mysql -u root -p'密码内容'
# 查看所有表
show databases;
# 进入数据库
use 表名
# 查看所有表
show tables
# 查看某张表信息
desc 表名
# 查
select * from 表名
# 删
delete from 表名 where field=xx
# 改
update 表名 set field='xxx' where field='xxx';
/etc/my.cnf 中的配置
port=3306
配置远程访问
mysql -u root -p 密码 进入到MySQL
use mysql
select host,user,authentication_string(5.7版本里这个就是密码,password()加密过的) from user
update user set host=‘%’ where user='root'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '自己的密码';%就是主机名,想让谁访问就写谁
flush privileges;
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT 开启端口
service iptables save
修改密码策略:
show variables like '%validate_password_policy%';
set global validate_password_policy=0; #设置为弱口令
相关博客:https://www.cnblogs.com/zhi-leaf/p/10533780.html
tomcat 7 安装
yum install tomcat-7.0.76-15.el7
yum install tomcat-webapps tomcat-admin-webapps 管理页面
systemctl status tomcat
systemctl start tomcat
停止tomcat服务
systemctl stop tomcat
重启tomcat
systemctl restart tomcat
开机启动
systemctl enable tomcat
查看tomcat状态
systemctl status tomcat
启动tomcat
systemctl start tomcat
/etc/share/tomcat-user.conf配置用户名密码
<role rolename="manager-gui"/>
<user username="root" password="root" roles="manager-gui"/>
redis 安装
- 在安装前,首先要安装或更新EPEL包。
EPEL是一个软件包存储库,其中包含许多开源附加软件包,其中大多数由Fedora Project维护。
sudo yum install epel-release
sudo yum install redis -y
sudo systemctl start redis.service
sudo systemctl enable redis
sudo systemctl status redis.service
/etc/redis.conf配置
requirepass 密码
maven 安装
yum install -y maven
上传下载文件
1、scp
-P port:大写P,用于指定端口,port为指定端口号,若是默认端口则可省略
-r:表示filepath是一个文件夹,将整个文件夹上传到服务器
filepath:需上传的文件或文件夹的完整路径,若在文件所在文件夹打开终端执行此命令,则只需输入文件名即可
username:远程主机用户名
ip:远程主机IP地址
TargetPath:文件上传到服务器的目标目录
scp -P port -r 目录 root@192.168.1.11:/home
2、ftp
- 双向传输两边都要有用户,单向只需要对端有就行
!!!注意:ftp不能用root账号连接,必须创立一个新用户
windows端
- IIS服务器里建一个ftp站点
相关文档:win10开启ftp连接不上的正确解决方案_windows 命令行访问ftp 拒绝连线-CSDN博客
FTP登录用户名和密码是什么?如何设置?(win10) - 哔哩哔哩 (bilibili.com)
Linux端
yum install -y vsftpd
systemctl start vsftpd.service
systemctl status vsftpd.service
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO 关闭匿名访问
# 开启21端口访问权
firewall-cmd --zone=public --add-port=21/tcp --permanent
#开启1025-65535端口访问权
firewall-cmd --zone=public --add-port=1025-65535/tcp --permanent
# 重启防火墙
systemctl restart firewalld
测试:
ftp 192.168.....
user: 192.168.....端新用户,Linux不能用root
password:....
提示:230 login in,表示成功
semanage安装
- Semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具。 这包括将Linux用户名映射到SELinux用户身份以及对象(如网络端口,接口和主机)的安全上下文映射。
yum install policycoreutils-python -y
semanage port -l | grep http_port_t 查看受控端口
semanage port -a -t http_port_t -p tcp 8006 # 添加8006端口
压缩解压
yum install -y zip unzip
部署项目
这里用了ruoyi 项目,只开了一台虚拟机
内网:192.168.。。
前端本地打包 dist
后端省事打jar包
上传到服务器
/home/kljlj(随便)/dist
/home/kljlj(随便)/***.jar
关闭所有防火墙(省事),可以去开放端口
selinux改一下,没感觉出来有没有用
SELINUX=disabled
所在目录权限全部设为777
配置nginx,主要部分
user root
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /home/***/dist;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://后台地址+端口/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
java -jar ***.jar
去注册一个natapp,用于外网访问
!!!注意:改完重启一下,千万别懒
浏览器访问:
嗨嗨嗨
完结撒花!!!!
mini-centos7 环境安装部署,各种踩坑。。。的更多相关文章
- centos7.8 安装部署 k8s 集群
centos7.8 安装部署 k8s 集群 目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 kub ...
- centos7环境安装rabbitMQ
使用专业的消息队列产品rabbitmq之centos7环境安装 http://www.cnblogs.com/huangxincheng/p/6006569.html [源码安装,适用GNOME + ...
- CentOS7.4安装部署openstack [Liberty版] (二)
继上一篇博客CentOS7.4安装部署openstack [Liberty版] (一),本篇继续讲述后续部分的内容 一.添加块设备存储服务 1.服务简述: OpenStack块存储服务为实例提供块存储 ...
- CentOS7.4安装部署openstack [Liberty版] (一)
一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...
- [转]centos7环境安装rabbitMQ
使用专业的消息队列产品rabbitmq之centos7环境安装 http://www.cnblogs.com/huangxincheng/p/6006569.html CentOS7上安装Rabbit ...
- centos7 下 安装部署nginx
centos7 下 安装部署nginx 1.nginx安装依赖于三个包,注意安装顺序 a.SSL功能需要openssl库,直接通过yum安装: #yum install openssl b.gzip模 ...
- Flink本地环境安装部署
本次主要介绍flink1.5.1版本的本地环境安装部署,该版本要求jdk版本1.8以上. 下载flink安装包:http://archive.apache.org/dist/flink/flink-1 ...
- CentOS7使用tar.gz包安装MySql的踩坑之旅
由于客户的CentOS服务器没有安装yum工具,只能通过下载tar.gz包安装mysql,于是跟着万能的百度开启了漫漫踩坑之旅: 1.下载mysql-5.6.33-linux-glibc2.5-x86 ...
- linux上安装redis的踩坑过程
redis用处很广泛,我不再啰嗦了,我按照网上教程想在linux上安装下,开始了踩坑过程,网上买了一个linux centos7.3,滴滴云的,巨坑无比啊,不建议大家用这家的! redis 为4.0, ...
- 使用专业的消息队列产品rabbitmq之centos7环境安装
我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis, 当然还有重量级的专业产品rabbitmq,rabbitmq ...
随机推荐
- Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
目录 简介 Spring基础 Core核心技术 Testing测试 Data Access Web Servlet Web Reactive 总结 简介 是什么让java世界变得更好,程序员变得更友爱 ...
- 华为会员开放服务(Membership Kit),助力移动应用快速建设会员生态
会员开放服务(Membership Kit)是华为面向开发者提供的券码开放能力,开发者可以通过Membership Kit开展灵活多样的营销活动,助力开发者建设会员生态,实现用户运营与增量创收的目标. ...
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(3)
1.问题描述: 调用HarmonyOS API发送通知,能查到状态是送达终端设备,但是终端设备上没收到通知卡片. 解决方案: 通知应用大图标不能超过30kb,通知参数限制,参考如下:https://g ...
- 7月27日19:30直播预告:HarmonyOS3及华为全场景新品发布会
7月27日 19:30 HarmonyOS 3 及华为全场景新品发布会 高能来袭! 在HarmonyOS开发者社区企微直播间 一起见证HarmonyOS的又一次智慧进化 扫码预约直播,与您不见不散!
- Perm 排列计数——Lucas&dfs
思路:这道题给出的公式看明白后即可得出正解,我们可以把他想象成一颗二叉树,任意一个点的任意一个子孙一直除以2后最终都会到达一终点,终点则为以该点为根的子树的最小值. so--我们可以将根节点作为最后终 ...
- nginx重新整理——————http请求的11个阶段中的access阶段[十五]
前言 简单介绍一下access 阶段. 正文 限制某些ip地址的访问权限: syntax: allow address| CIDR|unix:|all; defuat: - context: http ...
- 批处理for 的理解及例子
前言 首先for的代码形式是: for %i in (set) do command 这里面有一些小知识知识点: 比如说i是变量,那么i可以换成其他字符吗?答案是可以的.但是必须是26个字母中的其中一 ...
- Lattice高速下载器HW-USBN-2B 如何申请 license
如果用的芯片不是停产老旧芯片,Diamond programmer 是不需要 license 绑定支持的. 但是有些需要编程老旧的芯片.需要安装 Diamond programmer stand-al ...
- 学习C#编程经典书籍
1.<C# 语言程序设计>(第4版):由微软公司的C#语言团队编写,是学习C#语言的必备经典著作. 2.<C#高级编程>(第9版):由Andrew Troelsen编写,涵盖了 ...
- 顺通鞋业ERP管理系统
鞋业管理软件/鞋业管理系统/鞋业管理云平台 顺通鞋业ERP进销存系统拥有订货管理.销售管理.财务管理.产品管理.库存管理.客户管理.员工管理.查询统计等功能.顺通鞋业ERP进销存系统在管理信息系统业务 ...