当前位置: 首页 > 科技观察

如何配置ApacheWeb服务器

时间:2023-03-19 19:15:49 科技观察

了解如何在Apache上托管您自己的网站,Apache是一种可靠、流行且易于配置的Web服务器。我已经托管自己的网站很多年了。自从20多年前从OS/2切换到Linux以来,我一直使用Apache作为我的服务器软件。Apache可靠、流行,并且基本安装和配置很容易。对于多个网站等更复杂的设置来说,这也不难。ApacheWeb服务器的安装和配置必须以root身份执行。防火墙配置也需要以root身份执行。使用浏览器查看安装配置的结果应该以非root用户身份完成。(我在我的虚拟主机上使用的是student用户。)安装说明:我使用的实验环境是安装了Fedora27的虚拟机,Apache版本为2.4.29。如果您使用不同的发行版或不同版本的Fedora,您的命令和配置文件的位置和内容可能会有所不同。但是,您需要修改的配置行是相同的。ApacheWeb服务器非常易于安装。在我的CentOS6.x服务器上,它只是一个简单的yum命令。它将安装所有必需的依赖项(如果需要)。我在我的Fedora虚拟机上使用了下面的dnf命令。除了命令本身的名称外,dnf和yum的语法是相同的。dnf-yinstallhttpd这个虚拟机是一个非常基本的桌面环境,我用它作为写书的试验台。即使在这个系统上,也只安装了六个依赖项,花了一分钟。Apache的所有配置文件都位于/etc/httpd/conf和/etc/httpd/conf.d中。该网站的数据默认位于/var/www中,但您可以根据需要更改它。配置Apache主要的配置文件是/etc/httpd/conf/httpd.conf。它包含许多不需要在基本安装中更改的配置。事实上,只需对该文件进行一些更改,即可启动并运行一个简单的网站。该文件非常大,因此我不会用大量不必要的东西把这篇文章搞得一团糟,我只会展示那些需要更改的说明。首先,花点时间熟悉httpd.conf文件。我喜欢RedHat的一件事是它的配置文件的注释非常好。httpd.conf文件也不例外,因为它有很好的注释。这些注释可用于了解文件的配置。首先要修改的是Listen配置项,它定义了Apache监听页面请求的IP地址和端口。现在,你只需要让这个网站可以在本地访问,所以使用本地主机地址。完成后,该行应该是这样的:(LCTT译注:localhost的IP地址是127.0.0.1,80是端口)Listen127.0.0.1:80通过将此配置项设置为localhost的IP地址,Apache将只监听Listenfor来自本地主机的连接。如果您希望您的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协议。整个文件如下所示:#iptables服务的示例配置#你可以手动编辑它或使用system-config-firewall#请不要要求我们向这个默认配置添加额外的端口/服务*filter:INPUTACCEPT[0:0]:FORWARDACCEPT[0:0]:OUTPUTACCEPT[0:0]-AINPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT-AINPUT-picmp-jACCEPT-A输入-ilo-jACCEPT-A输入-ptcp-mstate--stateNEW-mtcp--dport22-jACCEPT-A输入-ptcp-mstate--stateNEW-mtcp--dport80-jACCEPT-A输入-jREJECT--reject-withicmp-host-prohibited-AFORWARD-jREJECT--reject-withicmp-host-prohibitedCOMMIT我在文件的倒数第三行添加了一个新行,允许端口80输入流量。现在我重新加载iptables配置文件。[root@testvm1~]#cd/etc/sysconfig/;iptables-restoreiptables创建index.html文件index.html文件是您使用域名访问网站而不是访问特定网页时的默认文件。在/var/www/html中,创建一个名为index.html的文件并向其中添加字符串HelloWorld。您无需添加任何HTML标记即可完成这项工作。Web服务器的唯一任务是提供文本数据流,服务器不知道数据是什么或如何呈现数据。它只是将数据流式传输到请求主机。保存文件后,将所有权设置为apache.apache。[root@testvm1html]#chownapache.apacheindex.html启动ApacheApache很容易启动。当前版本的Fedora使用systemd。运行以下命令启动它,然后检查服务器的状态:(LCTT译注:systemctl是一个systemd工具)[root@testvm1~]#systemctlstarthttpd[root@testvm1~]#systemctlstatushttpdhttpd.service-ApacheHTTP服务器已加载:已加载(/usr/lib/systemd/system/httpd.service;已禁用;供应商预设:已禁用)活动:活动(运行)自美国东部时间星期四2018-02-0813:18:54起;5s前文档:man:httpd.service(8)MainPID:27107(httpd)Status:"Processingrequests..."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-DFOREGROUNDFeb0813:18:54testvm1systemd[1]:启动ApacheHTTP服务器...Feb0813:18:54testvm1systemd[1]:启动ApacheHTTP服务器。该命令在您的服务器上可能有所不同。在使用SystemV启动脚本的Linux系统上,命令如下:[root@testvm1~]#servicehttpdstartStartinghttpd:[FriFeb0908:18:072018][OK][??root@testvm1~]#servicehttpdstatushttpd(pid14649)isrunning...如果您的主机上有类似Firefox或Chrome的浏览器,您可以在浏览器的URL行上使用URLlocalhost来显示您的网页,尽管它看起来很简单。您还可以使用Lynx等文本模式Web浏览器来查看网页。首先,安装Lynx(如果尚未安装)。[root@testvm1~]#dnf-yinstalllynx然后使用以下命令显示网页。[root@testvm1~]#lynxlocalhost在我的终端里结果是这样的我已经删除了页面上的很多空白区域。HelloWorld命令:使用箭头键移动,'?'寻求帮助,'q'退出,'<-'返回。箭头键:向上和向下移动。跟随链接的权利;离开回去。H)elpO)ptionsP)rintG)oM)ainscreenQ)uit/=search[delete]=historylist```接下来,编辑你的index.html文件并添加一些HTML标记,让它看起来像这样:

HelloWorld

现在刷新您的浏览器。对于Lynx,使用组合键Ctrl+R。结果看起来有点不同。如果您的终端支持彩色并且Lynx显示现在居中的标题,则文本以彩色显示。在GUI浏览器中,文本将以大字体显示。HelloWorld命令:使用箭头键移动,'?'寻求帮助,'q'退出,'<-'返回。箭头键:向上和向下移动。跟随链接的权利;离开回去。H)elpO)ptionsP)rintG)oM)ainscreenQ)uit/=search[delete]=historylist后记从这个小练习中可以看出,设置ApacheWeb服务器很容易。这取决于您的发行版和该发行版提供的Apache版本。在我的环境中,这是一个非常简单的练习。但不仅如此,因为Apache非常灵活和强大。下个月,我将讨论使用单个Apache托管多个网站。