红联Linux门户
Linux协助

Linux下装备apache服务器

发布时刻:2018-04-02 13:50:17来历:linux.cn作者:amwps290
学习怎样在 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 是端口)
 
Listen 127.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 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 文件是你运用域名拜访网站而不是拜访特定网页时的默许文件。在 /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 - 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 这样的文本形式 web 浏览器来检查 web 页面。首要,装置 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 保管多个网站。