65.9K
CodeProject 正在变化。 阅读更多。
Home

关于CentOS & 杂项的注意事项

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2018年5月6日

CPOL

7分钟阅读

viewsIcon

6469

如何在VirtualBox中安装CentOS。

引言

这是一篇关于 CentOS & 杂项的笔记。

背景

这是一篇关于流行的 Linux 发行版 CentOS & 杂项的笔记。在本笔记中,我将涵盖以下主题。

  • 如何在 VirtualBox 中安装 CentOS 操作系统
  • 如何在 CentOS 计算机上安装程序。我将讨论 YUM 工具。
  • 如何在 CentOS 计算机上设置 Java 和 Tomcat。我将讨论如何使用 CHKCONFIG 工具在计算机启动时自动启动 Tomcat。
  • 如何在 CentOS 计算机上安装 Apache Web 服务器。我将讨论如何使用 Apache 作为 Tomcat 服务器的反向代理。我还将讨论如何通过 SYSTEMD 工具启用 Apache 在计算机启动时自动启动。
  • 以及可能的杂项主题,例如 SSH。

在 VirtualBox 中安装 CentOS

VirtualBox 是一个易于使用的虚拟主机系统。如果您不熟悉它,我建议您看看我之前的笔记 在 VirtualBox 中运行 Linux for Microsoft Windows - 2017,其中我展示了如何创建 Linux Mint VM (虚拟机)。如果您想按照这篇笔记创建自己的 CentOS VM,我有以下建议:

  • 我建议选择较新版本的 VirtualBox。我注意到较早版本的 VirtualBox 在较新版本的操作系统发行版上存在困难;
  • 我建议选择较新版本的 CentOS ISO,例如 CentOS 7;
  • 我建议选择 20G 或更大的固定大小 DVI (VirtualBox Disk Image),以获得更好的性能。

CentOS 下载页面提供了多个 ISO 选项。在本笔记中,我选择了 DVD ISO 选项。

将 CentOS 安装到 VM

将 CentOS 安装到 VM 的过程很简单。如果您不熟悉 VirtualBox,可以参考我之前的笔记 在 VirtualBox 中运行 Linux for Microsoft Windows - 2017。CentOS ISO 提供了多种安装选项。我建议选择 **Server with GUI** 选项,它在大小和功能之间取得了很好的平衡。

默认情况下,安装后网络连接被禁用,我建议您启用它。

在安装过程中,您有机会设置 root 用户的密码并创建您自己的用户。我建议您这样做。我还建议您将您的用户设为管理员。

VirtualBox Guest Additions

为了获得更好的用户体验,您需要安装 Guest Additions。您可以点击 **Devices** - > **Insert Guest Additions CD image ...** 来安装 Guest Additions。根据 VirtualBox 的版本和您的 CentOS ISO,安装可能会失败,并出现类似以下的错误信息:

根据 此链接,您可以运行以下命令来安装 **Development Tools**。

yum update
yum groupinstall "Development Tools"
yum install kernel-devel

您可能还需要安装以下软件包:

yum install epel-release
yum install dkms

在安装完软件包后,您应该能够成功安装 VirtualBox Guest Additions。

VirtualBox VM 过度占用 CPU

根据 VirtualBox 和主机计算机操作系统的版本,您的 VM 可能会偶尔冻结。我在 Mac 主机计算机上观察到 VirtualBox VM 过度占用 CPU。在这种情况下,您可以更改 VM 的默认设置 -> System -> Acceleration,取消选中 Enable Nested Paging

如果问题仍未解决,您可以将 **Paravirtualization Interface** 设置为 **NONE**。

软件包安装 & YUM

Google Chrome 不是 CentOS 计算机上的默认安装。您可以通过以下命令双重检查 Google Chrome 是否已安装:

which google-chrome

我们可以借此机会安装 Google Chrome 并熟悉软件包管理工具 YUM

使用 YUM 安装 Google Chrome

Google Chrome 不在默认的 YUM 存储库中。要 在 Centos 7 上安装 Google Chrome,我们需要在文件 /etc/yum.repos.d/google-chrome.repo 中添加存储库。

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

添加 google-chrome.repo 文件后,我们可以检查 Google Chrome 是否可供安装。

yum list available | grep google-chrome

如果它在可用列表中,我们可以使用以下命令进行安装:

yum install google-chrome-stable

要卸载软件包,我们可以发出以下命令:

yum remove google-chrome-stable

YUM 命令摘要

总结一下,以下是最常用的 YUM 命令

yum clean all
yum update
yum repolist
yum repolist enabled
yum check-update
yum list available
yum list installed
yum install package-name
yum remove package-name
yum-config-manager --add-repo repository_url
yum-config-manager --enable repository…
yum-config-manager --disable repository…

如果您想禁用某些软件包的更新,可以查看 本文档

Tomcat 服务器 & JAVA & CHKCONFIG

Tomcat 在 Java 上运行。默认情况下,CentOS 已安装 OpenJDK

如果您想使用其他 Java 实现,可以卸载 OpenJDK。但这并非必需。计算机通常会安装多个 Java 运行时环境。如果您确实想卸载 OpenJDK,可以发出以下命令:

yum remove java-1.8.0-openjdk-headless

在本笔记中,我将使用 apache-tomcat-8.5.31 和 Oracle jdk-8u172-linux-x64。您可以将 Java 和 Tomcat 解压到任何目录。在本笔记中,我只是将它们放在 /apps 目录中。

Tomcat 作为 CHKCONFIG 服务

在服务器环境中,您可能希望在计算机启动时自动将 Tomcat 作为服务启动。我们可以使用 CHKCONFIG 工具来实现这一点。但首先,我们需要在 /etc/init.d 目录中创建一个名为 tomcat 的 bash 文件。

#!/bin/bash
    
# description: Tomcat start/stop/restart
    
# processname: tomcat
# chkconfig: 234 20 80
    
export JAVA_HOME=/apps/jdk1.8.0_172/
CATALINA_HOME=/apps/apache-tomcat-8.5.31
    
case $1 in
start)
        sh $CATALINA_HOME/bin/startup.sh
        ;;
stop)
        sh $CATALINA_HOME/bin/shutdown.sh
        ;;
restart)
        sh $CATALINA_HOME/bin/shutdown.sh
        sh $CATALINA_HOME/bin/startup.sh
        ;;
esac
    
exit 0

我们还需要使 bash 文件可执行。

chmod +x tomcat

要使 Tomcat 在计算机启动时启动,我们可以发出以下命令:

chkconfig --add tomcat
chkconfig tomcat on

默认情况下,Tomcat 监听端口 8080。如果您现在重启 VM 并访问 https://:8080,您会发现 Tomcat 已启动。您也可以通过以下命令手动启动/停止/重启 Tomcat:

service tomcat start
service tomcat stop
service tomcat restart

CHKCONFIG 命令摘要

总结一下,以下是最常用的 CHKCONFIG 命令:

chkconfig --list
chkconfig --add service-name
chkconfig --del service-name
systemctl daemon-reload
chkconfig tomcat on
chkconfig tomcat off
service tomcat start
service tomcat stop
service tomcat restart 

Apache Web 服务器 & 反向代理 & SYSTEMD

Apache Web 服务器是除了 Tomcat 之外另一个流行的 Web 服务器。在 CentOS 中,您可以通过以下命令安装 Apache

yum install httpd.x86_64

默认情况下,Apache 配置为监听端口 80。您可以通过以下命令启用它在计算机启动时启动:

systemctl enable httpd

您可以使用 apachectl 工具手动控制其状态。

apachectl start/stop/restart/status

反向代理到 Tomcat

Apache 服务器的一个典型用途是作为 Tomcat 服务器的反向代理。为了让 Apache 作为反向代理服务器,我们可以添加一个文件 /etc/httpd/conf.d/default-site.conf

<VirtualHost *:80>
    ProxyPreserveHost On
    
    ProxyPass / http://0.0.0.0:8080/
    ProxyPassReverse / http://0.0.0.0:8080/
</VirtualHost>

我们还需要运行以下命令来启用 Apache 和 Tomcat 之间的连接

setsebool -P httpd_can_network_connect 1

您可以通过以下命令查找与 Apache 相关的所有 setsebool 属性:

getsebool -a | grep httpd

如果您重启 Apache 并确保 Tomcat 正在运行,然后访问 https://,您会发现它实际上加载了默认的 Tomcat 网页。

SYSTEMD 命令摘要

Apache (httpd) 服务的状态由 SYSTEMD 管理。总结一下,以下是最常用的 SYSTEMCTL 命令

systemctl start service-name
systemctl stop service-name
systemctl restart service-name
systemctl reload service-name
systemctl reload-or-restart service-name
systemctl enable service-name
systemctl disable service-name
systemctl status service-name
systemctl is-active service-name
systemctl is-enabled service-name
systemctl is-failed service-name
systemctl list-units
systemctl list-units --all
systemctl list-unit-files
systemctl cat service-name
systemctl list-dependencies service-name
systemctl show service-name
systemctl mask service-name

SSH 到 CentOS VM

SSH 在大多数 Linux 系统上默认启用。您可以通过在 CentOS 中运行以下命令来检查 SSH 是否正在运行:

systemctl status sshd

由于我们是在 VirtualBox VM 中运行 CentOS,我们需要启用主机和 VM 之间的网络通信。根据您主机计算机的网络配置,您可以在 VirtualBox VM 设置中选择 **Bridged Adapter**,并将 VM 的网络连接连接到您的一个网卡。在您的 VM 中,您可以使用 ifconfig 来查找 VM 的 IP 地址。

默认情况下,所有 Linux 计算机都有一个 SSH 客户端。您可以从您的主机计算机开始一个 SSH 会话到您的 VM,输入您的密码。

"CronTab"

cron 软件实用程序是类 Unix 计算机操作系统中的一个基于时间的作业调度程序。您可以通过以下命令列出属于您的所有 cron 作业。

crontab -l

我添加了一个 cron 作业,它向文件 A 添加行。如果您查看文件 A 的内容,您会发现每分钟都添加了一行。

如果您想添加/编辑/删除属于您的 cron 作业,您可以使用以下命令。

crontab -e

cron 作业的调度由下表定义:

"/var/spool/cron" 目录

所有 cron 作业都存储在 /var/spool/cron 目录中。拥有一个或多个 cron 作业的每个用户在此目录中都有一个文件。

在我的 VM 中,我是唯一创建过 cron 作业的用户,所以只有一个名为 song 的文件。cron 作业以其所有者的权限运行。如果您是 sudoer,您可以代表其他所有者查看/创建/编辑/删除 cron 作业。

sudo -u song crontab -l
sudo -u song crontab -e

所有 cron 作业都依赖于 crond。您可以通过以下命令检查 crond 的状态。

service crond status

关注点

  • 这是一篇关于 CentOS & 杂项的笔记。
  • 希望您喜欢我的帖子,并希望这篇说明能对您有所帮助。

历史

  • 2018年5月6日:初次修订
© . All rights reserved.