Linux运维之RockyLinux

标签: 无 分类: 未分类 创建时间:2022-11-30 02:41:18 更新时间:2024-11-15 10:49:43

1.前言

基本工具

1
2
# 端口查询命令
yum install -y lsof

2.Podman

一个类似于docker的容器管理工具。

3.SSH

配置免密登录

1
2
3
4
5
# 远程登录 root 用户
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.22 -p 7022

# 测试
ssh -p '7022' 'root@192.168.235.22'

4.Docker

我尝试用阿里云的镜像进行安装。

1
2
3
4
5
6
# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里云源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装
yum install docker-ce docker-ce-cli containerd.io
参考文章:
【1】.在 Rocky Linux 9.x 上安装 Docker CE
【2】. Docker - 在Rocky Linux 9.4 上安装Docker-CE 这里也设置了 config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo,但是还是无效。
【3】.在Rocky Linux上安装Docker 这里也是使用 docker 源,安装,但是无效
【4】.2024年安装Docker的方法 目前(2024年8月22日),阿里云已不再提供 Docker 源的安装(404了);腾讯云目前还是提供的,安装教程如下:
【5】.Docker安装(2024年9月8日亲测可用) 方式1:手动安装。方式2:一键安装(我使用的这种方式,一下子就安装成功了)

5.PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 依赖
yum install libxml2-devel libcurl-devel gd gd-devel libmcrypt libmcrypt-devel libtool sqlite-devel libicu-devel gcc-c++ glibc-headers libxslt-devel libjpeg-devel bzip2-devel

# Rocky Linux 9 这样安装
dnf config-manager --enable crb
dnf --enablerepo=crb install oniguruma-devel

# 编译7.2.9
./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mhash --with-openssl --with-mysqli --with-pdo-mysql --enable-gd --with-iconv --with-zlib --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-pcntl --enable-sockets --enable-soap --without-pear --with-gettext --enable-session --with-curl --enable-opcache --enable-fpm --without-gdbm --disable-fileinfo --with-xsl
## 安装
make && make install

## 生成php配置文件
cp php.ini-production /usr/local/php/etc/php.ini
## 生成www配置文件
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
## 生成php-fpm配置文件
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
## 生成php-fpm服务启动文件,从源码路径拷贝
mkdir /usr/local/php/daemon
## 根据安装的版本
cp /home/soft/php-8.0.13/sapi/fpm/init.d.php-fpm /usr/local/php/daemon/php-fpm

chmod 740 /usr/local/php/daemon/php-fpm

# 启动
/usr/local/php/daemon/php-fpm start
## 查看启动
ps auxfww | grep php | grep -v grep
## 查看端口
ss -lntp | grep php
## 停止
/usr/local/php/daemon/php-fpm stop

6.ODBC

配置 php 链接sql server 数据库,需要安装 sqlserver 的 ODBC,我这里安装了 ODBC 17。

1
2
3
4
5
6
7
8
9
10
11
# 设置源
curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo

sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install -y unixODBC-devel

7.nacos

(1)下载上传
(2)修改 conf/application.propires 配置
(3)修改 conf/nacos-logback.xml配置
(4)启动

8.Nginx

(1)下载上传
(2)配置安装
(3)复制配置文件
(4)配置开机启动

8.Redis

1
2
3
4
5
6
7
yum install redis

# 编辑配置
vi /etc/redis/redis.conf

# 开启远程连接
bind 0.0.0.0

9.Maven

(1) 下载上传
(2) 配置环境变量

1
2
3
4
5
6
7
# 编辑
vi /etc/profile
# 添加
export MAVEN_HOME=/usr/local/maven-3.9.9
export PATH=$MAVEN_HOME/bin:$PATH
# 重新加载
source /etc/profile

10.JDK

(1) 下载上传
(2) 配置环境变量

1
2
3
4
5
6
7
8
# 编辑
vi /etc/profile
# 添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_431
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 重新加载
source /etc/profile

11.Tomcat

(1) 下载上传
(2) 配置环境变量

1
2
3
4
5
6
7
# 编辑
vi /etc/profile
# 添加
export TOMCAT_HOME=/usr/local/tomcat-9.0.54
export CATALINA_HOME=$TOMCAT_HOME
# 重新加载
source /etc/profile

12.MySQL

(1)下载rpm仓库包,上传服务器

(2)执行安装

1
2
3
4
5
6
7
8
rpm -Uvh mysql84-community-release-el9-1.noarch.rpm
# 先执行
yum module disable mysql
## 再执行
yum install mysql-community-server

## 启动 mysql
systemctl start mysqld

(3)登录数据库并配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
## 查看临时密码
grep 'temporary password' /var/log/mysqld.log
## 登录
mysql -u root -p

## 修改临时密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
## or
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

# 创建用户,如果是任意位置,则 host 为 %
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
## 授予全部权限
GRANT ALL ON *.* TO user;

## 刷新系统表
flush privileges;

问题

1.docker无法安装

我用的是京东的轻量云服务器,9.0的Rocky Linux,在安装的时候,增加了 docker 仓库:https://download.docker.com/linux/centos/docker-ce.repo,总是遇到问题:docker-ce-3:27.3.1-1.el9.x86_64: Cannot download, all mirrors were already tried without success

【尝试方案】
(1)配置 docker-ce 的源

1
2
3
4
5
6
7
8
9
# 修改国内源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/rocky*.repo
# 添加Docker Repo
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
# 更新源
dnf update

(2)手动下载依赖并安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 先下载安装containerd.io:https://download.docker.com/linux/centos/7/x86_64/edge/Packages/
yum install -y containerd.io-1.3.7-3.1.el7.x86_64.rpm

# 安装
dnf install -y docker-ce docker-ce-cli


# 配置国内源
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.m.daocloud.io"]
}
EOF

## 重新加载配置(这个很重要)
sudo systemctl daemon-reload
sudo systemctl restart docker

(3)配置清华源,然后再安装

1
2
3
4
5
6
7
tee /etc/yum.repos.d/docker-ce.repo <<-'EOF'
[docker-ce-stable]
name=Docker-CE-Stable-$basearch
baseurl=https://mirror.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=0
EOF

【解决方案】
切换到阿里云的源,然后进行安装,最后成功安装了。

2.ssh没有反应

(1) 我修改了端口之后,结果死活就是打不开这个ssh,真是烦死了。后来只能是重新安装了系统,原因就是我的 sshd 配置错误了。

(2) 后来我遇到了 ssh 总是无反应的问题。

3.远程root无法登录

1
2
3
4
5
6
7
8
9
## 编辑
vi /etc/ssh/sshd_config
## 将如下内容
#PermitRootLogin prohibit-password
## 修改为
PermitRootLogin yes

## 保存重启
systemctl restart sshd

4.PostMan安装buildah问题

安装的软件包的问题 buildah-1:1.27.2-2.el9_1.x86_64,软件包 buildah-1:1.27.2-2.el9_1.x86_64 需要 runc >= 1.0.0-26,但没有提供者可以被安装。我在RockyLinux上,按照以前的安装脚本进行docker安装,结果出现了一大堆错误。

1
dnf remove podman

【解决方法】
卸载podman,然后再安装。

1
2
3
4
5
yum erase podman buildah
yum install docker-ce docker-ce-cli containerd.io

systemctl start docker
systemctl enable docker

5.Deprecated Driver is detected:nft_compat will not be maintained in future major release and may be disable

参考文章:
【1】.
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。