Apache HTTP Server,被称为 Apache,是由 Apache Software Foundation 创建的一个免费和开放源代码的网页服务器。自1990年代初启动以来,Apache 由于其模块化、灵活性和可靠性,长时间以来一直是互联网上占主导地位的网页服务器。它支持包括虚拟主机、SSL/TLS 和灵活的配置系统在内的广泛功能。Apache 可用于包括 UNIX、Linux 和 Windows 在内的不同操作系统。在本文中,我们将探讨在 Debian 11 上安装 Apache。这些指南也适用于更早的版本,比如 Debian 10,以及更晚的版本,比如 Debian 12。
如果您正在按照我们的教程在没有控制面板的 Debian 11 服务器上安装 WordPress,并且已经完成了 nginx 的安装,那么首先停止 nginx
sudo systemctl stop nginx
现在可以开始安装 Apache。
以下是在 Debian 11 上安装 Apache 的分步指南:
步骤 1. 更新系统
首先,更新可用软件包列表:
sudo apt update
步骤 2: 安装 Apache
sudo apt install apache2
步骤3. 在 Debian 11 上启动 Apache
sudo systemctl start apache2
步骤 4. 检查 Apache 状态
sudo systemctl status apache2
如果一切顺利,您将看到“active (running)”的消息。
步骤 5: 设置防火墙
使用 UFW 允许 Apache 的流量。为此,执行以下命令:
sudo ufw allow 'WWW Full'
步骤 6: 检查 Apache 的工作情况
在浏览器中打开您服务器的 IP 地址或域名。在我们的课程中,我们使用的是子域名 http://test.friendhosting.net
如果一切正常,您应该会看到“Apache2 Debian Default Page”标准页面。
步骤 7: 为您的网站创建目录
要为虚拟主机 test.friendhosting.net 创建根目录,您需要在终端执行以下命令:
sudo mkdir -p /var/www/test.friendhosting.net
执行这个命令后,将在 /var/www/ 目录下创建 test.friendhosting.net 目录,并且如果它们还没有被创建,也会创建所有必要的父目录。
为了设置正确的权限,需要执行命令:
sudo chown -R www-data:www-data /var/www/test.friendhosting.net
执行此命令会更改 /var/www/test.friendhosting.net 及其所有子目录和文件的所有者和组为 www-data。这样做是为了确保网页服务器能够正确地处理这个目录中的内容,具有根据配置进行读、写或执行操作的权限。
步骤8:在 Debian 11 中配置 Apache 虚拟主机
虚拟主机允许您的 Apache 网页服务器接受请求并为不同的域名提供服务,就像您在一个物理服务器上拥有多个网页服务器一样。
Apache 有一个名为 sites-available 的目录,其中存储着可用的虚拟主机配置。每个网站都需要一个单独的文件。为您的网站创建配置文件。作为示例,我们使用 test.friendhosting.net
sudo nano /etc/apache2/sites-available/test.friendhosting.net.conf
在其中添加以下配置:
<VirtualHost *:80> ServerAdmin [email protected] ServerName test.friendhosting.net ServerAlias www.test.friendhosting.net DocumentRoot /var/www/test.friendhosting.net/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
在Apache虚拟主机配置中的每个指令都有其特定角色,并且对于正确设置网站托管非常重要。以下是对每个指令的详细描述:
ServerAdmin 指定网站管理员的电子邮件地址。这个地址常常显示在服务器的错误页面上,以便访客可以报告技术问题。在示例中,[email protected]是将会收到问题报告的地址。
ServerName 设定虚拟主机服务的主域名。当Apache接收到请求时,它会使用ServerName的值来确定使用哪一个虚拟主机。示例中的 test.friendhosting.net 值表明,该虚拟主机将响应针对该域名的请求。
ServerAlias 定义了将由该虚拟主机处理的额外域名。这允许一个虚拟主机对多个不同的域名进行响应。在这个案例中,www.test.friendhosting.net 是别名,虚拟主机也将处理对www版本域名的请求。
DocumentRoot 设置存储网站文件的目录。这是Apache为虚拟主机提供内容的根目录。在示例中,/var/www/test.friendhosting.net/ 是存放所有网站文件的文件夹,例如HTML, CSS, JavaScript和图片。
ErrorLog 设置将记录服务器错误消息的文件路径。这个日志包含了服务器上发生的任何错误的详细信息,经常被用于问题诊断。在这个例子中,${APACHE_LOG_DIR}/error.log 使用了环境变量APACHE_LOG_DIR,通常被定义为 /var/log/apache2。
CustomLog 指定记录每个对服务器请求信息的访问日志文件的路径。这包括诸如访客的IP地址,请求的URL,请求时间和服务器响应状态代码等细节。指令末尾的combined意味着将使用组合日志格式,这是一个广泛接受的标准,包含了有用的信息,如引用来源(用户从哪里来)和用户代理信息(使用了哪种浏览器)。
现在是时候激活您的虚拟主机了。为此,请执行以下命令:
sudo a2ensite test.friendhosting.net
现在停用默认虚拟主机。为此,请执行以下命令:
sudo a2dissite 000-default.conf
重启 Apache:
sudo systemctl restart apache2
在我们网站的根目录中创建 index.html。执行命令:
sudo nano /var/www/test.friendhosting.net/index.html
并复制粘贴以下文本:
Virtual host test.friendhosting.net is working.
现在,通过浏览器打开我们的域名 http://test.friendhosting.net,我们将看到标准页面
这是安装和配置 Debian 11 上的 Apache2 的基本指南。还有许多额外的设置和优化,您可以执行以最大限度地根据您的需求调整服务器。