CentOS 7中 Apache Web 服务器安装配置教程
学习如何在centos 7 中的 apache 上托管你自己的网站,这是一个可靠、流行且易于配置的 web 服务器。
我托管自己的网站已经有很多年了。自从 20 多年前从 os/2 切换到 linux 以来,我一直将 apache 作为我的服务器软件。apache 是可靠、流行的,且基本的安装配置也很容易。对于更复杂的设置(比如多个网站)也并不是那么困难。
apache web 服务器的安装和配置必须以 root 身份执行。 防火墙的配置也需要以 root 身份执行。 使用浏览器查看安装配置的结果应该以非 root 用户的身份完成。 (我在我的虚拟主机上使用 student 这个用户。)
安装
注意:我使用的实验环境是安装有fedora 27 的虚拟机,apache 版本为 2.4.29。 如果您使用的是不同的发行版或不同版本的 fedora,您的命令以及配置文件的位置和内容可能会有所不同。 但是,您需要修改的配置行是相同的。
apache web 服务器非常容易安装。 在我的 centos 6.x 服务器上,它只需要一个简单的 yum 命令。 它会安装所有必要的依赖(如果需要的话)。 我在我的 fedora 虚拟机上使用了下面的 dnf 命令。 除了命令本身的名称之外, dnf 和 yum 的语法是相同的。
dnf -y install httpd
这个虚拟机是个非常基础的桌面环境,我正在使用它作为编写书籍的测试平台。 即使在这个系统上,也只安装了六个依赖项,用了一分钟。
apache 的所有配置文件都位于 /etc/httpd/conf
和 /etc/httpd/conf.d
。网站的数据默认位于 /var/www
,但如果你愿意,你可以改变它。
配置
apache 主要的配置文件是 /etc/httpd/conf/httpd.conf 。 它包含许多在基本安装中不需要更改的配置。 实际上,只需对此文件进行一些更改即可启动并运行一个简单的网站。 该文件非常大,因此,我不会将这篇文章与大量不必要的东西混淆起来,而只会显示那些需要更改的指令。
首先,花点时间熟悉一下 httpd.conf 文件。我喜欢red hat 的一个原因是它的配置文件注释非常的详细。 httpd.conf 文件也不例外,因为它有很好的注释。可以使用这些注释来了解文件的配置。
第一个要修改的是 listen 配置项,它定义了 apache 要监听页面请求的 ip 地址和端口。 现在,你只需要使这个网站可以从本地访问,所以使用 localhost 地址。 完成后,该行应该看起来像这样:( lctt 译注: localhost 的 ip 地址是 127.0.0.1 , 80 是端口)
listen127.0.0.1:80
通过将此配置项设置为 localhost 的 ip 地址,apache 将只侦听来自本地主机的连接。 如果您希望 web 服务器侦听来自远程主机的连接,则可以使用主机的外部 ip 地址。
documentroot 配置项指定组成网站页面的 html 文件的位置。 该配置项不需要更改,因为它已经指向标准位置。 该行应该看起来像这样:
documentroot"/var/www/html"
apache 安装包会创建 /var/www 目录。 如果您想更改存储网站文件的位置,则使用此配置项来完成此操作。 例如,您可能想要为 www 目录使用不同的名称,以更明确地识别网站。 这可以是这样的:
documentroot"/var/mywebsite/html"
这些是创建一个简单网站需要唯一修改的 apache 配置项。 对于这个小练习,只对 httpd.conf 文件( listen 配置项)进行了一些修改。 其它的配置项对于一个简单的 web 服务器暂时无需配置。
另一个需要改变的地方是:在我们的防火墙中打开端口 80。 我使用 iptables 作为我的防火墙,因此我更改 /etc/sysconfig/iptables 文件以添加允许使用 http 协议。 整个文件看起来像这样:
# sample configuration for iptables service # you can edit this manually oruse system-config-firewall # please donot ask us to add additional ports/services to thisdefault configuration *filter :input accept [0:0] :forward accept [0:0] :output accept [0:0] -a input -m state --state related,established -j accept -a input -p icmp -j accept -a input -i lo -j accept -a input -p tcp -m state --state new -m tcp --dport 22-j accept -a input -p tcp -m state --state new -m tcp --dport 80-j accept -a input -j reject --reject-with icmp-host-prohibited -a forward -j reject --reject-with icmp-host-prohibited commit
我在文件的倒数第三行上添加了一个新行,它允许在端口 80 上输入流量。现在我重新加载 iptables 配置文件。
[root@testvm1 ~]#cd/etc/sysconfig/; iptables-restore iptables
创建 index.html 文件
index.html 文件是你使用域名访问网站而不是访问特定网页时的默认文件。在 /var/www/html 中,创建一个名字为 index.html 的文件,在其中添加字符串 hello world 。你不需要添加任何的 html 标志去完成这项工作。web 服务器的唯一任务是提供文本数据流,服务器不知道数据是什么,也不知道如何呈现它。它只是将数据流传输给请求主机。
保存文件后,将所有权设置为 apache.apache 。
[root@testvm1 html]#chown apache.apache index.html
启动 apache
apache 很容易启动。 当前版本的 fedora 使用 systemd 。 运行以下命令启动它,然后检查服务器的状态:(lctt 译注: systemctl 是一个 systemd 工具)
[root@testvm1 ~]#systemctl start httpd [root@testvm1 ~]#systemctl status httpd ● httpd.service -theapache http server loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) active: active (running) since thu2018-02-0813:18:54 est;5s ago docs:man:httpd.service(8) main pid:27107(httpd) status:"processing requests..." tasks:213(limit:4915) cgroup:/system.slice/httpd.service ├─27107/usr/sbin/httpd -dforeground ├─27108/usr/sbin/httpd -dforeground ├─27109/usr/sbin/httpd -dforeground ├─27110/usr/sbin/httpd -dforeground └─27111/usr/sbin/httpd -dforeground feb0813:18:54 testvm1 systemd[1]:startingtheapache http server... feb0813:18:54 testvm1 systemd[1]:startedtheapache http server.
您的服务器上的命令可能不同。在使用 systemv 启动脚本的 linux 系统上,命令如下:
[root@testvm1 ~]# service httpd start starting httpd:[frifeb0908:18:072018] [ ok ] [root@testvm1 ~]# service httpd status httpd (pid 14649)is running...
如果您的主机上有像 firefox 或 chrome 这样的浏览器,您可以在浏览器的 url 行上使用 url localhost 来显示您的 web 页面,尽管看起来很简单。您还可以使用像 lynx 这样的文本模式 web 浏览器来查看 web 页面。首先,安装 lynx (如果它还没有被安装)。
[root@testvm1 ~]# dnf -y install lynx
然后使用下面的命令来显示网页。
[root@testvm1 ~]# lynx localhost
结果在我的终端中是这样的。我已经删除了页面上的很多空白。
helloworld <snip> commands:use arrow keys to move,'?'for help,'q' to quit,'<-' to go back. arrow keys:upanddown to move.right to follow a link;left to go back. h)elp o)ptions p)rint g)o m)ain screen q)uit /=search [delete]=history list```
接下来,编辑您的 index.html 文件并添加一些 html 标记,使其看起来像这样:
<h1>hello world</h1>
现在刷新浏览器。对于 lynx,使用组合键 ctrl + r 。 结果看起来有点不同。如果你的终端支持彩色的话文本是彩色显示的,lynx 会显示标题,现在它处于居中状态。 在 gui 浏览器中,文本将以大字体显示。
helloworld <snip> commands:use arrow keys to move,'?'for help,'q' to quit,'<-' to go back. arrow keys:upanddown to move.right to follow a link;left to go back. h)elp o)ptions p)rint g)o m)ain screen q)uit /=search [delete]=history list
后记
从这个小练习中可以看到,建立一个 apache web 服务器很容易。 具体情况取决于您的发行版和该发行版提供的 apache 版本。 在我的环境中,这是一个非常简单的练习。
但不仅仅如此,因为 apache 非常灵活强大。下个月,我将讨论使用单个 apache 托管多个网站。
总结
以上所述是小编给大家介绍的centos 7中 apache web 服务器安装配置教程,希望对大家有所帮助
推荐阅读
-
CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)
-
CentOS 7.0 安装配置LAMP服务器方法(Apache+PHP+MariaDB)
-
CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)_MySQL
-
CentOS 6.8 服务器系统安装配置图解教程
-
安装、配置和测试Windows,Apache,Informix与PHP服务器的分步指南_PHP教程
-
淘宝Web服务器Tengine在CentOS下的安装教程
-
CentOS 6.5 web服务器apache的安装与基本设置
-
CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)
-
CentOS 7中 Apache Web 服务器安装配置教程
-
CentOS下Lighttpd Web服务器安装与配置方法