mini-centos7 环境安装部署,各种踩坑。。。

  • mini-centos7 环境安装部署,各种踩坑。。。已关闭评论
  • 89 次浏览
  • A+
所属分类:linux技术
摘要

想想就生气,去面试个运维,面试官让我上机装个centos7,还是个最小安装包连界面都没有,只有命令行模式,我都哭了???,然后让把一些环境装一下,然后再部署个springboot项目,我他妈都多久没用没有界面的东西了,最后卡在安装MySQL上,真想扇自己个嘴巴子。。。。面试官不屑的说,我只看结果,我也不会解决。。。我想着赶紧溜了,回来赶紧补一下,之前都没有个记录,踩的坑都白踩了,真服了!!!!!


最小Linux系统,安装Java环境

想想就生气,去面试个运维,面试官让我上机装个centos7,还是个最小安装包连界面都没有,只有命令行模式,我都哭了???,然后让把一些环境装一下,然后再部署个springboot项目,我他妈都多久没用没有界面的东西了,最后卡在安装MySQL上,真想扇自己个嘴巴子。。。。面试官不屑的说,我只看结果,我也不会解决。。。我想着赶紧溜了,回来赶紧补一下,之前都没有个记录,踩的坑都白踩了,真服了!!!!!

linux目录结构

mini-centos7 环境安装部署,各种踩坑。。。

  • /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.。。

官方链接:Nodesource Node.js RPM

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 

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

出错解决:(主要是删除安错的包,比如我刚开始安了20版本的出错,之后安其他版本也会持续报错)

locate node(找到nodesource,nodessource-....等三个包)

cd var/cache///var/lib(自己找到的目录地址,)

rm -rf nodesource ....(找到的目录,)

nginx安装

nginx:Linux 软件包

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   关闭 

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

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");     } } 

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mysql 安装

 cat /etc/redhat-release    查看centos版本 CentOS Linux release 7.9.2009 (Core)  

官方yum源:MySQL :: Download MySQL Yum Repository

官方文档:MySQL :: MySQL 5.7 Reference Manual :: 2.5.1 Installing MySQL on Linux Using the 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 

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

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"/> 

mini-centos7 环境安装部署,各种踩坑。。。

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  密码 

mini-centos7 环境安装部署,各种踩坑。。。

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,表示成功 

mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。

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 环境安装部署,各种踩坑。。。

!!!注意:改完重启一下,千万别懒???

浏览器访问:mini-centos7 环境安装部署,各种踩坑。。。

mini-centos7 环境安装部署,各种踩坑。。。


嗨嗨嗨???????

完结撒花!!!!