web服务器 apache
我已经托管了自己的网站很多年了。 自从20年前从OS / 2切换到Linux以来,我一直使用Apache作为服务器软件。 Apache是可靠的,众所周知的,并且对于基本安装而言很容易配置。 为更复杂的设置(例如多个网站)进行配置实际上并没有那么困难。
我的虚拟主机上的student
。)
安装
注意:我将虚拟机(VM)与Fedora 27和Apache 2.4.29一起使用。 如果您使用其他发行版或不同版本的Fedora,则您的命令以及配置文件的位置和内容可能会有所不同。 但是,您需要修改的配置行是相同的。
Apache Web服务器易于安装。 在我的CentOS 6.x服务器上,它只需要一个简单的yum
命令。 如果缺少任何必需的依赖项,它将安装所有必需的依赖项。 我在我的Fedora虚拟机之一上使用了以下dnf
命令。 dnf
和yum
的语法相同,只是命令本身的名称不同。
dnf -y install httpd
VM是非常基本的桌面安装,我用作编写书籍的测试平台。 即使在此系统上,在一分钟内也仅安装了六个依赖项。
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
地址。 完成后,该行应如下所示:
Listen 127.0.0.1:80
将此指令设置为localhost
的IP地址后,Apache将仅侦听来自本地主机的连接。 如果希望Web服务器侦听来自远程主机的连接,则可以使用主机的外部IP地址。
DocumentRoot
指令指定组成网站页面HTML文件的位置。 该行不需要更改,因为它已经指向标准位置。 该行应如下所示:
DocumentRoot "/var/www/html"
Apache安装RPM创建/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 or use system-config-firewall
# please do not ask us to add additional ports/services to this default 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
文件是仅当您使用域名而不是特定HTML文件名访问网站时Web服务器将提供的默认文件。 在/var/www/html
目录中,创建一个名为index.html
的文件。 添加内容Hello World
。 您无需添加任何HTML标记即可完成此工作。 Web服务器的唯一工作是提供文本数据流,而服务器不知道日期是什么或如何呈现它。 它只是将数据流传输到发出请求的主机。
保存文件后,将所有权设置为apache.apache
。
[root@testvm1 html]# chown apache.apache index.html
启动Apache
Apache非常容易启动。 当前版本的Fedora使用systemd
。 运行以下命令将其启动,然后检查服务器的状态:
[root@testvm1 ~]# systemctl start httpd
[root@testvm1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-02-08 13: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
Feb 08 13:18:54 testvm1 systemd[1]: Starting The Apache HTTP Server...
Feb 08 13:18:54 testvm1 systemd[1]: Started The Apache HTTP Server.
服务器上的命令可能不同。 在使用SystemV启动脚本的Linux系统上,命令为:
[root@testvm1 ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018] [ OK ]
[root@testvm1 ~]# service httpd status
httpd (pid 14649) is running...
如果您的主机上装有Firefox或Chrome之类的网络浏览器,则可以使用浏览器的URL行上的URL localhost
来显示您的网页,方法很简单。 您还可以使用文本模式的Web浏览器(例如Lynx)来查看网页。 首先,安装Lynx(如果尚未安装)。
[root@testvm1 ~]# dnf -y install lynx
然后使用以下命令显示网页。
[root@testvm1 ~]# lynx localhost
结果在我的终端会话中看起来像这样。 我已经删除了页面上的许多空白区域。
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down 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浏览器中,文本将采用大字体。
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down 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实例托管多个网站。
翻译自: https://opensource.com/article/18/2/how-configure-apache-web-server
web服务器 apache