CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本。你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级、安装新的软件包、配置特定服务和应用程序等操作。

centos 安装完后,首先检查centos的更新: yum list updates  ,更新系统是 yum update 命令,将会在 yum 上将centos 更新到当前发行号的最新版本

一键安装安装lnmp

这篇文章介绍了 “安装完 RHEL/CentOS 7 后需要做的 30 件事情”。阅读帖子的时候请先完成 RHEL/CentOS 最小化安装,这是首选的企业和生产环境。如果还没有,你可以按照下面的指南,它会告诉你两者的最小化安装方法。

我们会基于工业标准的需求来介绍以下列出的这些重要工作。我们希望这些东西在你配置服务器的时候能有所帮助。

  1. 注册并启用红帽订阅
  2. 使用静态 IP 地址配置网络
  3. 设置服务器的主机名称
  4. 更新或升级最小化安装的 CentOS
  5. 安装命令行 Web 浏览器
  6. 安装 Apache HTTP 服务器
  7. 安装 PHP
  8. 安装 MariaDB 数据库
  9. 安装并配置 SSH 服务器
  10. 安装 GCC (GNU 编译器集)
  11. 安装 Java
  12. 安装 Apache Tomcat
  13. 安装 Nmap 检查开放端口
  14. 配置防火墙
  15. 安装 Wget
  16. 安装 Telnet
  17. 安装 Webmin
  18. 启用第三方库
  19. 安装 7-zip 工具
  20. 安装 NTFS-3G 驱动
  21. 安装 Vsftpd FTP 服务器
  22. 安装和配置 sudo
  23. 安装并启用 SELinux
  24. 安装 Rootkit Hunter
  25. 安装 Linux Malware Detect (LMD)
  26. 用 Speedtest-cli 测试服务器带宽
  27. 配置 Cron 作业
  28. 安装 Owncloud
  29. 启用 VirtualBox 虚拟化
  30. 用密码保护 GRUB

(LCTT 译注:关于 CentOS/RHEL 7的更多信息,请参考专题:http://www.linux.cn/topic-centos7.html )

1. 注册并启用红帽订阅

RHEL 7 最小化安装完成后,就应该注册并启用系统红帽订阅库, 并执行一个完整的系统更新。这只当你有一个可用的红帽订阅时才能有用。你要注册才能启用官方红帽系统库,并时不时进行操作系统更新。(LCTT 译注:订阅服务是收费的)

在下面的指南中我们已经包括了一个如何注册并激活红帽订阅的详细说明。

注意: 这一步仅适用于有一个有效订阅的红帽企业版 Linux。如果你用的是 CentOS 服务器,请查看后面的章节。

2. 使用静态 IP 地址配置网络

你第一件要做的事情就是为你的 CentOS 服务器配置静态 IP 地址、路由以及 DNS。我们会使用 ip 命令代替 ifconfig 命令。当然,ifconfig 命令对于大部分 Linux 发行版来说还是可用的,还能从默认库安装。

  1. # yum install net-tools [它提供 ifconfig 工具,如果你不习惯 ip 命令,还可以使用它]

在 Linux 上安装 ifconfig

(LCTT 译注:关于 ip 命令的使用,请参照:http://www.linux.cn/article-3631-1.html )

但正如我之前说,我们会使用 ip 命令来配置静态 IP 地址。所以,确认你首先检查了当前的 IP 地址。

  1. # ip addr show

在 CentOS 查看 IP 地址

现在用你的编辑器打开并编辑文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3 (LCTT 译注:你的网卡名称可能不同,如果希望修改为老式网卡名称,参考:http://www.linux.cn/article-4045-1.html )。这里,我使用
vi 编辑器,另外你要确保你是 root 用户才能保存更改。

  1. # vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

我们会编辑文件中的四个地方。注意下面的四个地方并保证不碰任何其它的东西。也保留双引号,在它们中间输入你的数据。

  1. IPADDR = "[在这里输入你的静态 IP]"
  2. GATEWAY = "[输入你的默认网关]"
  3. DNS1 = "[你的DNS 1]"
  4. DNS2 = "[你的DNS 2]"

更改了 ‘ifcfg-enp0s3’ 之后,它看起来像下面的图片。注意你的 IP,网关和 DNS 可能会变化,请和你的 ISP(译者注:互联网服务提供商,即给你提供接入的服务的电信或 IDC) 确认。保存并退出。

网络详情

重启网络服务并检查 IP 是否和分配的一样。如果一切都顺利,用 Ping 查看网络状态。

  1. # service network restart

重启网络服务

重启网络后,确认检查了 IP 地址和网络状态。

  1. # ip addr show
  2. # ping -c4 google.com

验证 IP 地址

检查网络状态

(LCTT 译注:关于设置静态 IP 地址的更多信息,请参照:http://www.linux.cn/article-3977-1.html )

3. 设置服务器的主机名称

下一步是更改 CentOS 服务器的主机名称。查看当前分配的主机名称。

  1. # echo $HOSTNAME

查看系统主机名称

要设置新的主机名称,我们需要编辑 ‘/etc/hostsname’ 文件并用想要的名称替换旧的主机名称。

  1. # vi /etc/hostname

在 CentOS 中设置主机名称

设置完了主机名称之后,务必注销后重新登录确认主机名称。登录后检查新的主机名称。

  1. $ echo $HOSTNAME

确认主机名称

你也可以用 ‘hostname’ 命令查看你当前的主机名。

  1. $ hostname

(LCTT 译注:关于设置静态、瞬态和灵活主机名的更多信息,请参考:http://www.linux.cn/article-3937-1.html )

4. 更新或升级最小化安装的 CentOS

这样做除了更新安装已有的软件最新版本以及安全升级,不会安装任何新的软件。总的来说更新(update)和升级(upgrade)是相同的,除了事实上 升级 = 更新 + 更新时进行废弃处理。

  1. # yum update && yum upgrade

更新最小化安装的 CentOS 服务器

重要: 你也可以运行下面的命令,这不会弹出软件更新的提示,你也就不需要输入 ‘y’ 接受更改。

然而,查看服务器上会发生的变化总是一个好主意,尤其是在生产中。因此使用下面的命令虽然可以为你自动更新和升级,但并不推荐。

  1. # yum -y update && yum -y upgrade

5. 安装命令行 Web 浏览器

大部分情况下,尤其是在生产环境中,我们通常用没有 GUI 的命令行安装 CentOS,在这种情况下我们必须有一个能通过终端查看网站的命令行浏览工具。为了实现这个目的,我们打算安装名为 ‘links’ 的著名工具。

  1. # yum install links

Links: 命令行 Web 浏览器

请查看我们的文章 用 links 工具命令行浏览 Web 了解用 links 工具浏览 web 的方法和例子。

6. 安装 Apache HTTP 服务器

不管你因为什么原因使用服务器,大部分情况下你都需要一个 HTTP 服务器运行网站、多媒体、用户端脚本和很多其它的东西。

  1. # yum install httpd

安装 Apache 服务器

如果你想更改 Apache HTTP 服务器的默认端口号(80)为其它端口,你需要编辑配置文件 ‘/etc/httpd/conf/httpd.conf’ 并查找以下面开始的行:

  1. LISTEN 80

把端口号 ‘80’ 改为其它任何端口(例如 3221),保存并退出。

更改 Apache 端口

增加刚才分配给 Apache 的端口通过防火墙,然后重新加载防火墙。

允许 http 服务通过防火墙(永久)。

  1. # firewall-cmd –add-service=http

允许 3221 号端口通过防火墙(永久)。

  1. # firewall-cmd –permanent –add-port=3221/tcp

重新加载防火墙。

  1. # firewall-cmd –reload

(LCTT 译注:关于 firewall 的进一步使用,请参照:http://www.linux.cn/article-4425-1.html )

完成上面的所有事情之后,是时候重启 Apache HTTP 服务器了,然后新的端口号才能生效。

  1. # systemctl restart httpd.service

现在添加 Apache 服务到系统层使其随系统自动启动。

  1. # systemctl start httpd.service
  2. # systemctl enable httpd.service

(LCTT 译注:关于 systemctl 的进一步使用,请参照:http://www.linux.cn/article-3719-1.html )

如下图所示,用 links 命令行工具 验证 Apache HTTP 服务器。

  1. # links 127.0.0.1

7. 安装 PHP

PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安装 PHP:

  1. # yum install php

安装完 php 之后,确认重启 Apache 服务以便在 Web 浏览器中渲染 PHP。

  1. # systemctl restart httpd.service

下一步,通过在 Apache 文档根目录下创建下面的 php 脚本验证 PHP。

  1. # echo -e "<?php\nphpinfo();\n?>" > /var/www/html/phpinfo.php

现在在 Linux 命令行中查看我们刚才创建的 PHP 文件(phpinfo.php)。

  1. # php /var/www/html/phpinfo.php
  2. 或者
  3. # links http://127.0.0.1/phpinfo.php

验证 PHP

8. 安装 MariaDB 数据库

MariaDB 是 MySQL 的一个分支。RHEL 以及它的衍生版已经从 MySQL 迁移到 MariaDB。这是一个主流的数据库管理系统,也是一个你必须拥有的工具。不管你在配置怎样的服务器,或迟或早你都会需要它。在最小化安装的 CentOS 上安装 MariaDB,如下所示:

  1. # yum install mariadb-server mariadb

安装 MariaDB 数据库

启动 MariaDB 并配置它开机时自动启动。

  1. # systemctl start mariadb.service
  2. # systemctl enable mariadb.service

允许 mysql(mariadb) 服务通过防火墙(LCTT 译注:如果你的 MariaDB 只用在本机,则务必不要设置防火墙允许通过,使用 UNIX Socket 连接你的数据库;如果需要在别的服务器上连接数据库,则尽量使用内部网络,而不要将数据库服务暴露在公开的互联网上。)

  1. # firewall-cmd –add-service=mysql

现在是时候确保 MariaDB 服务器安全了(LCTT 译注:这个步骤主要是设置 mysql 管理密码)。

  1. # /usr/bin/mysql_secure_installation

保护 MariaDB 数据库

请阅读:

9. 安装和配置 SSH 服务器

SSH 即 Secure Shell,是 Linux 远程管理的默认协议。 SSH 是随最小化 CentOS 服务器中安装运行的最重要的软件之一。

检查当前已安装的 SSH 版本。

  1. # SSH -V

检查 SSH 版本

使用更安全的 SSH 协议,而不是默认的协议,并更改端口号进一步加强安全。编辑 SSH 的配置文件 ‘/etc/ssh/ssh_config’。

去掉下面行的注释或者从协议行中删除 1,然后行看起来像这样(LCTT 译注: SSH v1 是过期废弃的不安全协议):

  1. # Protocol 2,1 (原来)
  2. Protocol 2 (现在)

这个改变强制 SSH 使用 协议 2,它被认为比协议 1 更安全,同时也确保在配置中更改端口号 22 为其它。

保护 SSH 登录

取消 SSH 中的‘root login’, 只允许通过普通用户账号登录后才能使用 su 切换到 root,以进一步加强安全。请打开并编辑配置文件 ‘/etc/ssh/sshd_config’ 并更改 PermitRootLogin yes 为 PermitRootLogin no。

  1. # PermitRootLogin yes (原来)
  2. PermitRootLogin no (现在)

取消 SSH Root 直接登录

最后,重启 SSH 服务启用更改。

  1. # systemctl restart sshd.service

请查看:

10. 安装 GCC (GNU 编译器集)

GCC 即 GNU 编译器集,是一个 GNU 项目开发的支持多种编程语言的编译系统(LCTT 译注:在你需要自己编译构建软件时需要它)。在最小化安装的 CentOS 没有默认安装。运行下面的命令安装 gcc 编译器。

  1. # yum install gcc

在 CentOS 上安装 GCC

检查安装的 gcc 版本。

  1. # gcc --version

检查 GCC 版本

11. 安装 Java

Java是一种通用的基于类的,面向对象的编程语言。在最小化 CentOS 服务器中没有默认安装(LCTT 译注:如果你没有任何 Java 应用,可以不用装它)。按照下面命令从库中安装 Java。

  1. # yum install java

安装 Java

检查安装的 Java 版本。

  1. # java -version

安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安的更多相关文章

  1. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网

    7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言.它也经常被用作通用编程语言.在最小化安装的 CentOS 中安装 PHP: # yum install php 安装完 php ...

  2. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)

    本文导航 -7. 安装 PHP0 -8. 安装 MariaDB 数据库 -9. 安装和配置 SSH 服务器 -10. 安装 GCC (GNU 编译器集) -11. 安装 Java 7. 安装 PHP ...

  3. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)转载自码农网

    CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

  4. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)

    本文导航 -1. 注册并启用红帽订阅 -2. 使用静态 IP 地址配置网络 -3. 设置服务器的主机名称 -4. 更新或升级最小化安装的 CentOS -5. 安装命令行 Web 浏览器 -6. 安装 ...

  5. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(四)码农网

    17. 安装 Webmin Webmin 是基于 Web 的 Linux 配置工具.它像一个中央系统,用于配置各种系统设置,比如用户.磁盘分配.服务以及 HTTP 服务器.Apache.MySQL 等 ...

  6. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(三)码农网

    12. 安装 Apache Tomcat Tomcat 是由 Apache 设计的用来运行 Java HTTP web 服务器的 servlet 容器.按照下面的方法安装 tomcat,但需要指出的是 ...

  7. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(五)

    25. 安装 Linux Malware Detect (LMD) Linux Malware Detect (LMD) 是 GNU GPLv2 协议下发布的开源 Linux 恶意程序扫描器,它是特别 ...

  8. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(六)码农网

    30. 用密码保护 GRUB 用密码保护你的 boot 引导程序这样你就可以在启动时获得额外的安全保障.同时你也可以在实物层面获得保护.通过在引导时给 GRUB 加锁防止任何无授权访问来保护你的服务器 ...

  9. RHEL/CentOS 7最小化安装后需做的30件事情

    导读 CentOS是一个工业标准的Linux发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

随机推荐

  1. Jmeter中通过beanshell写入CSV的脚本

    import com.csvreader.CsvWriter; String NewDataPath=bsh.args[0]; NewDataPath=NewDataPath.replaceAll(& ...

  2. Docker 快速删除所有容器

    查看运行容器 docker ps 查看所有容器 docker ps -a 进入容器 其中字符串为容器ID: docker exec -it d27bd3008ad9 /bin/bash 1.停用全部运 ...

  3. Spring.Net 简单实例-01(IOC)

    1.话不多说看操作.新建"Windows窗体应用程序" 2:通过配置文件创建IOC容器 首先引入安装包 3:定义一个接口(更好的体现封装性,当然也可以直接使用类) 定义一个类,实现 ...

  4. STL容器之优先队列

    STL容器之优先队列 优先级队列,以前刷题的时候用的比较熟,现在竟然我只能记得它的关键字是priority_queue(太伤了).在一些定义了权重的地方这个数据结构是很有用的. 先回顾队列的定义:队列 ...

  5. Android自定义View+贝赛尔曲线

    Android -- 贝塞尔曲线公式的推导和简单使用https://www.cnblogs.com/wjtaigwh/p/6647114.html Android -- 贝塞尔使圆渐变为桃心http: ...

  6. [转] React 中组件间通信的几种方式

    在使用 React 的过程中,不可避免的需要组件间进行消息传递(通信),组件间通信大体有下面几种情况: 父组件向子组件通信 子组件向父组件通信 跨级组件之间通信 非嵌套组件间通信 下面依次说下这几种通 ...

  7. CDOJ 1964 命运石之门【最短路径Dijkstra/BFS】

    给定数字n,m(1<=n,m<=500000) 将n变为n*2花费2,将n变为n-3花费3,要求过程中所有数字都在[1,500000]区间内. 求将n变为m的最少花费 思路:建图 将每个数 ...

  8. 【AtCoder】Tenka1 Programmer Contest 2019

    Tenka1 Programmer Contest 2019 C - Stones 题面大意:有一个01序列,改变一个位置上的值花费1,问变成没有0在1右边的序列花费最少多少 直接枚举前i个都变成0即 ...

  9. ncat

    ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的.它是一款拥有多种功能的 CLI 工具,可以用来在网络上读.写以及重定向数据. 它被设计成可以被脚本或其他程序调用的可靠的后端工 ...

  10. img没有src属性时自动出现边框

    当img没有接收到src属性的时候会自动出现边框,border:0/none都不管用的情况下 解决方法 一行css 可以解决 img[src=""],img:not([src]){ ...