mengzuchao 2020-10-22
这次介绍的是Apache Web服务器,这款软件存在已有数十年,可以轻松地为大小网站提供服务,运行顺畅。Apache可与MySQL、PHP及另外大量软件包无缝协作,以便您架设简单的静态或动态网站。
如何安装和配置服务器?您将文件放置在哪里?
不妨介绍这方面,每次一个步骤。我将在Ubuntu Server 20.04上进行演示。
不过先介绍一点基础知识。
基于Ubuntu的发行版和基于Red Hat的发行版之间的区别
之所以要指定我使用哪个Linux发行版,是因为对于Apache而言,基于Ubuntu的发行版和基于Red Hat的发行版从安装到配置都不一样。比如说,在基于Red Hat的发行版上,Apache通过httpd软件包安装,而在基于Ubuntu的发行版上,apache2软件包就能完成这项任务。另一个区别是在何处以及如何配置Apache。在基于Red Hat的发行版中,许多Apache配置将在/etc/httpd/conf/httpd.conf中进行。而在基于Ubuntu的发行版中,配置位于/etc/apache2/apache2.conf和/etc/apache2/sites-available/中。还有更多的差异,不过您应大致明白了。
如何在Ubuntu服务器上安装Apache?
可以通过多种方式在Ubuntu上安装Apache。如果您只需要基本的服务器软件,可以打开终端、执行以下命令:
sudo apt-get install apache2 -y
然而,如果您想要一套成熟的Linux Apache MySQL PHP(LAMP)堆栈,可以执行以下命令:
sudo apt-get install lamp-server^
一旦运行上述任何一个命令,可启动并运行Apache。您还需要确保启用Apache,以便服务器重启(或引导)后开始运行。为此,执行以下命令:
sudo systemctl enable apache2
可以通过打开Web浏览器并将其指向http://SERVER_IP(其中SERVER_IP是托管Apache的服务器的IP地址),验证安装。您会看到Apache欢迎页面(图A)。
图A. 在Ubuntu服务器上运行的官方Apache欢迎页面
Apache提供的是什么页面?如果您查看/var/www/html,会找到index.html文件,对其进行更改。
返回终端窗口,使用以下命令重命名该index.html文件:
sudo mv /var/www/html/index.html /var/www/html/index.html.bak
现在,不妨创建一个新的欢迎文件。执行以下命令:
sudo nano /var/www/html/index.html
在该文件中,粘贴以下内容:
<!DOCTYPE html> <html> <body> <h1>Hello, TechRepublic!</h1> <p>How are you doing?</p> </body> </html>
保存并关闭文件。在浏览器中重新加载该网页,您应该会看到变化(图B)。
图B. 我们新的index.html页面由Apache提供
如何为Apache创建网站?
我们现在要做的是创建一个虚拟主机供Apache服务。虚拟主机是Apache所服务的网站的俗称。可以在单单一台Apache服务器上提供众多虚拟主机。实际上,您只受限于托管服务器的功能和网络的带宽。
因此,不妨创建一个名为test的虚拟主机。
我们要做的第一件事是使用以下命令创建一个容纳测试的目录:
sudo mkdir -p /var/www/html/test
接下来,我们将使用以下命令为新目录赋予适当的所有权:
sudo chown -R $USER:$USER /var/www/html/test
最后,我们将使用以下命令授予适当的权限:
sudo chmod -R 755 /var/www/html/test
使用以下命令将新的index.html文件拷贝到测试目录中:
sudo cp /var/www/html/index.html /var/www/html/test/
现在我们要创建虚拟主机配置,以便Apache知道测试在哪里。测试将位于/etc/apache/sites-available中。为此,我们将使用以下命令创建test.conf文件:
sudo nano /etc/apache2/sites-available/test.conf
在该文件中粘贴以下内容:
<VirtualHost *:80> ServerAdmin [email protected] ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/html/test ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
上面最重要的一行以DocumentRoot开头,这指示Apache在何处可以找到虚拟主机的文件。保存并关闭该文件。
至此,我们已创建了容纳文件的目录,赋予了适当的所有权和权限,并为虚拟主机创建了配置。然而,Apache仍然不知道新网站。为什么?因为配置文件位于sites-available中。我们要做的是从该配置创建一个链接到/etc/apache2/sites-enabled目录。仅在sites-available中找到的那些配置才在Apache服务器上处于活动状态。
在非Ubuntu服务器上,您要使用ln(代表link)命令来执行此操作。然而,Ubuntu上有一个方便的实用程序,它将为您创建该网站。这个实用程序就是a2ensite。如果我们运行命令:
sudo a2ensite test.conf
我们的测试虚拟主机随后将被启用。
该命令成功执行后,您要使用以下命令重新加载Apache(它将仅重新加载配置文件,而不重新启动Web服务器):
sudo systemctl reload apache2
现在,如果您将浏览器指向http://SERVER_IP/test(其中SERVER_IP是服务器的IP地址),应该会看到与使用基本的index.html文件相同的Hello,TechRepublic欢迎信息,只是它是从新创建的虚拟主机提供的。
万物皆可测量,这条定律同样适用于我们经常打交道的各种服务器和应用系统。服务器选型、测试、优化都是一些长期复杂的工作,如何在TurboCMS的项目中快速满足客户需求,我们只需要掌握以下的一些知识要点即可