经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
mini-centos7 环境安装部署,各种踩坑。。。
来源:cnblogs  作者:是秃子总会发光^_^  时间:2024/5/21 8:51:44  对本文有异议

最小Linux系统,安装Java环境

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

linux目录结构

img

  • /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你的机器:

    1. 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博客

安装所需软件包

  1. 更换yum
  2. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup //备份
  3. //阿里源,与原配置文件同名,但内容不同
  4. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  5. yum clean all
  6. yum makecache
  7. yum update
  8. centos7yum源地址
  9. 1、清华大学yum
  10. https://mirrors.tuna.tsinghua.edu.cn/help/centos/
  11. 2、网易yum
  12. http://mirrors.163.com/.help/centos.html
  13. 3、阿里云yum
  14. http://mirrors.aliyun.com/repo/Centos-7.repo
  15. 4、中科大yum
  16. https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
  17. 5、北京理工大学
  18. http://mirror.bit.edu.cn
  19. 6、兰州大学
  20. http://mirror.lzu.edu.cn
  21. 7、厦门大学
  22. http://mirrors.xmu.edu.cn
  23. 8、东北大学
  24. http://mirror.neu.edu.cn
  25. 也可以一条命令yum install wget vim ..... -y (表示都选yes)
  26. yum install wget \#wget 网络下载工具
  27. yum install vim \#vim 编辑器
  28. yum install tree #tree以树形结构显示文件和目录
  29. net-tools:含有netstatifconfigroutearp等命令
  30. bash-completiontab补全功能工具包
  31. psmisc:含有killallpstree等命令
  32. yum install mkicate locate setup #安装locate用于查询

环境安装

  • 前端环境搭建:node.js 16,nginx1.26

  • 后端环境搭建:jdk1.8,mysql5.7+,tomcat 9(war包需要),redis,

  • 全部采用yum 安装(好处是基本不用配置环境变量,不用解压等操作)

  1. ****yum --showduplicates list 软件名(tomcat)查询可安装的包
  2. yum install 软件名-版本号

node.js

注意:安不了太高版本好像,一直给我报错????????,安了14但是最后显示是16.。。

官方链接:Nodesource Node.js RPM

  1. yum install -y gcc-c ++ make
  2. curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
  3. sudo yum install -y nodejs (--skip-broken
  4. node -v
  5. npm -v

image-20240515103216161

image-20240515103144260

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

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

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

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

nginx安装

nginx:Linux 软件包

  1. sudo yum install yum-utils -y
  2. touch /etc/yum.repos.d/nginx.repo
  3. vim /etc/yum.repos.d/nginx.repo
  4. !!!别贴错了
  5. [nginx-stable]
  6. name=nginx stable repo
  7. baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
  8. gpgcheck=1
  9. enabled=1
  10. gpgkey=https://nginx.org/keys/nginx_signing.key
  11. module_hotfixes=true
  12. [nginx-mainline]
  13. name=nginx mainline repo
  14. baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
  15. gpgcheck=1
  16. enabled=0
  17. gpgkey=https://nginx.org/keys/nginx_signing.key
  18. module_hotfixes=true
  19. systemctl enable nginx 开机自启动
  20. systemctl start nginx 开启
  21. ps -ef | grep nginx 查看nginx 进程
  22. systemctl stop nginx 停止
  23. kellall nginx 关闭

image-20240515110404481

image-20240515110424648

image-20240515112211490

image-20240515113237186

image-20240515114028617

jdk安装

版本1.8

  1. java -version 查看自带版本
  2. rpm -qa | grep java :命令的意思是搜索java,查看安装包文件。
  3. yum remove *openjdk* 卸载初始版本
  4. yum install -y java-1.8.0-openjdk.x86_64 安装jdk
  5. yum install java-devel 否则不能用javac
  6. java -version
  7. javac -version
  8. 环境配置(这种方法不用配)
  9. #java
  10. export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
  11. export PATH=$JAVA_HOME/bin:$PATH
  12. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  13. 测试一下
  14. public class HelloWorld {
  15. public static void main(String[] args) {
  16. System.out.println("Hello World");
  17. }
  18. }

image-20240515122126804

image-20240515131023941

image-20240515131659828

mysql 安装

  1. cat /etc/redhat-release 查看centos版本
  2. 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

  1. yum list installed mysql* 查看有没有之前的版本
  2. yum remove mysql... 先卸载,具体查看https://blog.csdn.net/qq_42025798/article/details/114228981
  1. yum install mysql-community-server 首先执行,如果没有源会报错执行下面命令
  2. wget http://dev.mysql.com/get/(mysql57-community-release-el7-8.noarch.rpm 表示你适合的版本,57代表数据库版本,el7-8代表你系统Linux7,必须匹配自己系统)
  3. rpm -ivh mysql57-community-release-el7-8.noarch.rpm 查看包信息
  4. yum install mysql-community-server --nogpgcheck 安装服务,并且禁用检查,不然报错
  5. rpm -qa | grep mysql 查看运行信息
  6. 安装完成
  7. # 启动
  8. systemctl start mysqld
  9. # 第一次启动后,可以查看mysql初始化密码
  10. grep 'temporary password' /var/log/mysqld.log
  11. ALTER USER 'root'@'localhost' IDENTIFIED BY '自己的密码';
  12. # 重启
  13. systemctl restart mysqld
  14. # 停止
  15. systemctl stop mysqld
  16. #查看状态
  17. systemctl status mysqld
  18. #开机启动
  19. systemctl enable mysqld
  20. systemctl daemon-reload
  21. # 查看进程、版本信息
  22. ps -ef | grep mysql
  23. netstat -atp
  24. # 登录
  25. mysql -u root -p'密码内容'
  26. # 查看所有表
  27. show databases;
  28. # 进入数据库
  29. use 表名
  30. # 查看所有表
  31. show tables
  32. # 查看某张表信息
  33. desc 表名
  34. # 查
  35. select * from 表名
  36. # 删
  37. delete from 表名 where field=xx
  38. # 改
  39. update 表名 set field='xxx' where field='xxx';
  1. /etc/my.cnf 中的配置
  2. port=3306
  3. 配置远程访问
  4. mysql -u root -p 密码 进入到MySQL
  5. use mysql
  6. select host,user,authentication_string(5.7版本里这个就是密码,password()加密过的) from user
  7. update user set host=‘%’ where user='root'
  8. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '自己的密码';%就是主机名,想让谁访问就写谁
  9. flush privileges;
  10. iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT 开启端口
  11. service iptables save
  1. 修改密码策略:
  2. show variables like '%validate_password_policy%';
  3. set global validate_password_policy=0; #设置为弱口令
  4. 相关博客:https://www.cnblogs.com/zhi-leaf/p/10533780.html

image-20240515133831082

image-20240515154320990

image-20240515154345278

image-20240515171208520

image-20240515171930235

image-20240515172026692

tomcat 7 安装

  1. yum install tomcat-7.0.76-15.el7
  2. yum install tomcat-webapps tomcat-admin-webapps 管理页面
  3. systemctl status tomcat
  4. systemctl start tomcat
  5. 停止tomcat服务
  6. systemctl stop tomcat
  7. 重启tomcat
  8. systemctl restart tomcat
  9. 开机启动
  10. systemctl enable tomcat
  11. 查看tomcat状态
  12. systemctl status tomcat
  13. 启动tomcat
  14. systemctl start tomcat
  1. /etc/share/tomcat-user.conf配置用户名密码
  2. <role rolename="manager-gui"/>
  3. <user username="root" password="root" roles="manager-gui"/>

image-20240515181053278

redis 安装

  • 在安装前,首先要安装或更新EPEL包。
    EPEL是一个软件包存储库,其中包含许多开源附加软件包,其中大多数由Fedora Project维护。
  1. sudo yum install epel-release
  2. sudo yum install redis -y
  3. sudo systemctl start redis.service
  4. sudo systemctl enable redis
  5. sudo systemctl status redis.service
  6. /etc/redis.conf配置
  7. requirepass 密码

image-20240515193334029

maven 安装

  1. yum install -y maven

上传下载文件

1、scp

-P port:大写P,用于指定端口,port为指定端口号,若是默认端口则可省略
-r:表示filepath是一个文件夹,将整个文件夹上传到服务器
filepath:需上传的文件或文件夹的完整路径,若在文件所在文件夹打开终端执行此命令,则只需输入文件名即可
username:远程主机用户名
ip:远程主机IP地址
TargetPath:文件上传到服务器的目标目录

  1. 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端

  1. yum install -y vsftpd
  2. systemctl start vsftpd.service
  3. systemctl status vsftpd.service
  4. /etc/vsftpd/vsftpd.conf
  5. anonymous_enable=NO 关闭匿名访问
  6. # 开启21端口访问权
  7. firewall-cmd --zone=public --add-port=21/tcp --permanent
  8. #开启1025-65535端口访问权
  9. firewall-cmd --zone=public --add-port=1025-65535/tcp --permanent
  10. # 重启防火墙
  11. systemctl restart firewalld
  1. 测试:
  2. ftp 192.168.....
  3. user: 192.168.....端新用户,Linux不能用root
  4. password:....
  5. 提示:230 login in,表示成功

image-20240516091938077

image-20240516091950167

semanage安装

  • Semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具。 这包括将Linux用户名映射到SELinux用户身份以及对象(如网络端口,接口和主机)的安全上下文映射。
  1. yum install policycoreutils-python -y
  2. semanage port -l | grep http_port_t 查看受控端口
  3. semanage port -a -t http_port_t -p tcp 8006 # 添加8006端口

压缩解压

  1. yum install -y zip unzip

部署项目

这里用了ruoyi 项目,只开了一台虚拟机

内网:192.168.。。

前端本地打包 dist

后端省事打jar包

上传到服务器

/home/kljlj(随便)/dist

/home/kljlj(随便)/***.jar

关闭所有防火墙(省事),可以去开放端口

selinux改一下,没感觉出来有没有用

SELINUX=disabled

所在目录权限全部设为777

配置nginx,主要部分

  1. user root
  2. server {
  3. listen 80;
  4. server_name localhost;
  5. charset utf-8;
  6. location / {
  7. root /home/***/dist;
  8. try_files $uri $uri/ /index.html;
  9. index index.html index.htm;
  10. }
  11. location /prod-api/ {
  12. proxy_set_header Host $http_host;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header REMOTE-HOST $remote_addr;
  15. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  16. proxy_pass http://后台地址+端口/;
  17. }
  18. error_page 500 502 503 504 /50x.html;
  19. location = /50x.html {
  20. root html;
  21. }
  22. }
  1. java -jar ***.jar

去注册一个natapp,用于外网访问

image-20240516193258058

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

浏览器访问:image-20240516193844452

image-20240516193908046


嗨嗨嗨??????????????

完结撒花!!!!

原文链接:https://www.cnblogs.com/learn-gz/p/18196642

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号