操作环境
服务器操作系统:Linux
数据库:MySQL
Web应用:WordPress
操作说明
WordPress 本身并没有提供批量设置评论功能开启或关闭的操作,因此,想要批量开启或关闭评论功能只能通过修改数据库中相关字段的方式来实现。
继续阅读“使用MySQL命令批量开启或关闭WordPress站点的评论功能”服务器操作系统:Linux
数据库:MySQL
Web应用:WordPress
WordPress 本身并没有提供批量设置评论功能开启或关闭的操作,因此,想要批量开启或关闭评论功能只能通过修改数据库中相关字段的方式来实现。
继续阅读“使用MySQL命令批量开启或关闭WordPress站点的评论功能”kali@kali:~$ lsb_release -a No LSB modules are available. Distributor ID: Kali Description: Kali GNU/Linux Rolling Release: 2020.1 Codename: kali-rolling继续阅读“解决Kali2020.1中文乱码的问题”
OS info:
master@ubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic
TCP BBR 拥塞控制协议是 Google 2016 年推出的一种网络拥塞控制算法,但这并不是 Google 的一款官方产品。相比于传统的设置拥塞窗口和慢启动等拥塞控制方式,BBR 拥塞控制算法可以在拥塞发生之后的恢复阶段通过主动探测的方式快速恢复对带宽资源的利用。在客户端到服务器之间的网络环境不佳时,开启 BBR 加速能够较明显地改善连接使用体验。据报道,Google 在 YouTube 上使用 BBR 协议后,YouTube 的全球的平均网络吞吐量提高了 4 %,在一些国家甚至超过了 14 %.
自 Linux 4.9 版本内核开始,Linux 内核已经内置了 BBR 协议,也就是说,在目前较新版本的 Linux 系统中都可以直接开启 BBR 协议,而不需要安装。
(Linux 4.9 版本内核正式发布于 2016 年 12 月 11 日)
继续阅读“Ubuntu18.04开启BBR网络拥塞控制协议”操作系统信息:
master@ubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial
WordPress 信息:
主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由 WordPress 团队开发)
下面的内容涉及 WordPress 文件调用顺序的问题,关于这部分内容可以参考「荒原之梦」的这篇文章:
继续阅读“通过插入断点显示WordPress当前已激活的插件”master@ubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial继续阅读“解决报错:’The package xxx needs to be reinstalled, but I can’t find an archive for it.’”
master@ubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial继续阅读“解决报错:’sudo: unable to resolve host xxx’”
我的 CentOS 7 的更新源使用的是直接从 163 镜像站上下载的更新源文件.
今天在使用 yum makecache
命令从更新服务器上把软件包的信息下载到本地缓存起来时遇到了如下报错:
Repository base is listed more than once in the configuration Repository updates is listed more than once in the configuration Repository extras is listed more than once in the configuration Repository centosplus is listed more than once in the configuration
报错截图如下:
而且在我使用 yum install htop
命令安装 htop
的时候, 还提示:
没有可用软件包 htop。
错误:无须任何处理
但是, 正常情况下 CentOS 7 的源里面应该是有 htop
这个软件包的, 可以直接使用 yum install htop
成功安装(我之前安装过).
上述问题的相关截图如下:
分析上面的报错, 主要还是软件源文件出了问题, 于是我们先进入软件源配置文件所在的目录下:
cd /etc/yum.repos.d/
ls
查看一下, 回显如下:
[root@localhost yum.repos.d]# ls CentOS7-Base-163.repo CentOS-CR.repo CentOS-Media.repo CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-Base.repo.backup CentOS-fasttrack.repo CentOS-Vault.repo [root@localhost yum.repos.d]#
从对报错内容的分析来看, 应该是软件源有重复(“listed more than once”), 所以这里我们尝试删除一些上面的软件源配置文件.
在删除之前, 先对 /etc/yum.repos.d/
目录下的文件做一个整体的备份, 以便于尝试失败后的还原, 操作过程如下:
将 /etc/yum.repos.d/
目录下的文件整体压缩成一个 .zip
文件:
zip centos7-repo.zip /etc/yum.repos.d/*
然后执行删除操作:
rm -rf CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo
之后把 CentOS7-Base-163.repo
中的内容复制进 CentOS-Base.repo
:
cp -p CentOS7-Base-163.repo CentOS-Base.repo
最后删除 CentOS7-Base-163.repo
:
rm -rf CentOS7-Base-163.repo
之后运行如下命令重建缓存, 没有再出现”Repository base is listed more than once in the configuration”的报错:
yum clean all yum makecache
但是, 在我尝试使用 yum
命令安装软件时, 仍然遇到了”没有可用软件包 XXX”的报错, 如下:
[root@localhost yum.repos.d]# yum install htop 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 没有可用软件包 htop。 错误:无须任何处理
“没有可用软件包”说明在 YUM 源中没有对应的软件包(163 的源本身应该是没有问题的, 这是一个大家都常使用的 Linux 方面的国内软件源).
其实, 在 CentOS 和 RHEL 等操作系统中, 常使用的软件源不仅有 YUM, 还有 EPEL. EPEL 英文全称为:”Extra Packages for Enterprise Linux”. 直译为中文就是”用于企业 Linux 的额外软件包”. EPEL 是 Fedora 的一个项目, 有关该项目的官方说明可以在下面的链接中找到:
这里我摘录一段 Fedora 对 EPEL 项目的说明:
企业版 Linux 附加软件包(以下简称 EPEL)是一个 Fedora 特别兴趣小组,用以创建、维护以及管理针对企业版 Linux 的一个高质量附加软件包集,面向的对象包括但不限于 红帽企业版 Linux (RHEL)、 CentOS、Scientific Linux (SL)、Oracle Linux (OL) 。
EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。
https://fedoraproject.org/wiki/EPEL/zh-cn
在 CentOS 7 中安装 EPEL 源的命令如下:
yum install -y epel-release
安装完成后, 在 /etc/yum.repos.d
目录下会多出来下面两个文件, 这两个文件就是 EPEL 源的配置文件:
查看 epel.repo
文件中的内容可以发现其中软件源的地址指向的是 https://mirrors.fedoraproject.org/
, epel-testing.repo
这个文件中的软件源的地址也是指向的是 https://mirrors.fedoraproject.org/
. 为了加快软件安装速度, 我们可以将其更改为国内的 EPEL 源, 操作步骤如下:
进入 /etc/yum.repos.d
目录, 下载阿里云 EPEL 源:
wget http://mirrors.aliyun.com/repo/epel-7.repo
备份 Fedora 官方提供的 EPEL 源配置文件:
cp -p epel.repo epel.repo.bak cp -p epel-testing.repo epel-testing.repo.bak
删除 epel-testing.repo
:
rm -rf epel-testing.repo
将 epel-7.repo
中的内容覆盖写入到原来的 epel.repo
文件中:
cp -p epel-7.repo epel.repo
删除 epel-7.repo
文件:
rm -rf epel-7.repo
重新生成缓存:
yum clean all yum makecache
之后可以正常安装软件.
遇到”Repository base is listed more than once in the configuration”的问题要考虑系统中是否存在重复的软件源, 遇到”没有可用软件包 XXX”的问题首先要确认要安装的软件包名称是否写对了, 例如安装 pip 的命令不是 yum install pip
, 而是 yum install python-pip
, 在此之后如果问题仍然存在就需要考虑当前系统中是否正确配置了 YUM 和 EPEL 两个软件源.
vi /etc/hostname
注:由于静态主机名是系统初始化时从/etc/hostname中读取的,所以修改其中的内容为自己想要的主机名即可实现对静态主机名的修改。
之后reboot以生效。
hostname aaa
注:aaa为新主机名。
查看主机名:
hostname
上述命令查看主机名发现显示的主机名是aaa ,但是命令行提示符前面的主机名并没有改变。此时如果是在纯文本界面,使用Alt+Fn+F3 或Alt+F3 组合键即可以新的主机名(aaa)进行登陆,如果在图形化界面中,直接打开一个新的模拟终端就可以看到新的主机名(aaa)了。
注:reboot后,该方法所做的修改失效。
hostnamectl是CentOS-7中新增的一个用于修改主机名的指令。在CentOS中有“static静态”、“transient瞬态”和“pretty灵活”三种主机名命名方式(在static和transient形式的主机名中不允许出现特殊字符和空格,而在pretty形式的主机名中则没有这些限制,pretty形式的主机名只是用于展示给终端用户。),使用hostnamectl可以很方便的修改这三种状态的主机名。
同时修改static, transient, pretty三种形式的主机名:
hostnamectl set-hostname aaa
仅修改静态形式主机名:
hostnamectl --static set-hostname aaa
仅修改瞬态形式主机名:
hostnamectl --transient set-hostname aaa
仅修改灵活形式主机名:
hostnamectl --pretty set-hostname aaa
注:使用方法三修改后需reboot以生效。
客户机操作系统:Ubuntu Linux
服务器操作系统:CentOS Linux
免密登陆其实就是使用密钥文件代替密钥进行身份验证。这里的密钥文件就是公钥和对应的私钥,将公钥部署在远程服务器上,私钥部署在客户机上。在服务器和客户机上配置好密钥文件后,当客户机向服务器发起连接请求的时候,客户机会向服务器表达使用密钥文件进行身份验证的请求并向服务器发送公钥;随后,服务器会在客户机对应用户的主目录下找寻公钥文件并与收到的公钥文件进行对比;如果公钥文件的对比结果一致,服务器会使用公钥加密一个文件发送给客户机;客户机在收到公钥加密的文件后使用自己的私钥进行解密,然后将解密后的内容发送给服务器;如果服务器收到的解密内容与原内容一致则身份验证成功,两台计算机之间成功建立连接。
使用ssh-keygen 生成公钥与私钥,将公钥部署在服务器上,私钥部署在客户机上。
1.生成密钥文件
命令:
ssh-keygen -t rsa -P "password"
之后弹出提示:
Generating public/private rsa key pair. Enter file in which to save the key (/home/yourname/.ssh/id_rsa):
此时如果不希望改变密钥文件的默认保存路径则直接回车即可。
注0:上述命令中的password是用于加密私钥的密码。为了尽可能保证私钥不被非授权使用,我建议在创建密钥文件时务必设置加密私钥的密码,不可省略。
这时,在/home/yourname/.ssh/id_rsa 目录下就可以看到id_rsa 、id_rsa.pub 和known_hosts 这三个文件。
其中,
id_rsa:私钥文件
id_rsa.pub:公钥文件
know_hosts:已知主机的公钥文件
2.复制公钥至服务器
命令:
scp -p ~/.ssh/id_rsa.pub root@<server ip>:/root/.ssh/authorized_keys
之后会要求输入远程服务器的登陆密码,输入密码后回车即可。
当然,也可以登录服务器后用 vim 编辑器打开 .ssh/ 目录下的 authorized_keys 文件,将本地 id_rsa.pub 文件中的内容复制进去,之后保存退出即可。若有多个公钥,则在 authorized_keys 文件中换行后继续输入公钥文件中的内容即可。
3.登录服务器
命令:
ssh root@<server ip>
回车后会要求输入 本地私钥的解密密码(即第一步中设置的“password”),解密私钥后就可以登录服务器了。
注1:上文路径中出现的“yourname”是指你登陆客户机时使用的用户名。
注2:在部署公钥的时候虽然使用了服务器相应登陆账户(如root账户)的密码,但是之前所生成的公钥与私钥和这个密码并没有联系,输入该密码仅仅是为了登陆远程服务器,将公钥文件部署到服务器上。
2022 年 10 月 26 日第 02 次更新
2020 年 02 月 26 日第 01 次更新