分享最新优惠信息
购买主机更加划算

Debian 12安装Apache并创建虚拟机简单教程

Apache,通常被称为Apache HTTP服务器,它是一个由Apache基金会维护的免费开源跨平台Web服务器,这有助于修复软件错误并提高其整体效率。撰写本文时,Apache最新版本是2.4.60。

与Nginx相比,Apache市场份额较低,约为29.5%,但仍然占据主导地位。根据W3Techs的数据,Nginx略微领先,市场份额约为34.1%。

由于Apache高度可靠、灵活、易于安装,并具有众多功能,深受开发人员和L​​inux爱好者的欢迎。在本文中,小编将介绍Debian安装Apache以及配置虚拟主机简单方法,同时包括在使用SSL的服务器上托管多个域名的步骤。

先决条件

在开始之前,请确保满足以下要求:

  • 一个安装Debian 12系统的服务器
  • 指向服务器的完全限定域名( FQDN )
  • 本文实例使用的指向IP地址为192.168.122.27
  • 良好网络连接

注意:以下仅在Debian 12系统中安装了Apache,支持静态网站编译。如果想要编译PHP动态网站,还需要安装SQL数据库和PHP,具体参考Debian 11/10/9系统安装和测试LAMP环境教程

步骤1:更新Debian 12系统存储库

在Debian 12上安装Apache的第一步是更新系统存储库。为此,请以普通用户身份登录并使用sudo权限运行该命令:

sudo apt update -y

更新Debian软件包

步骤2:在Debian 12上安装Apache

安装Apache非常简单,成功更新系统存储库后,运行以下命令在Debian 12上安装Apache:

sudo apt install apache2 -y

在Debian上安装Apache

成功安装Apache Web服务器后,建议检查服务是否正在运行,虽然大多数systemd Linux系统会在安装后自动启动该服务。要检查Apache网络服务器的状态,请执行该命令:

sudo systemctl status apache2

在Debian上检查Apache状态

如果服务未运行,请使用命令启动该服务:

sudo systemctl start apache2

要在启动时启用Apache Web服务器,请执行以下命令:

sudo systemctl enable apache2

要重新启动Apache,请运行下面的命令:

sudo systemctl restart apache2

步骤3:配置防火墙以允许HTTP端口

如果已经配置了UFW防火墙,需要允许Apache服务跨越防火墙,以便外部用户可以访问Web服务器。为了实现这一点,需要允许防火墙上的HTTP和HTTPS端口上的流量:

sudo ufw allow 80
sudo ufw allow 443

要验证防火墙是否允许该端口,请运行以下命令:

sudo ufw status

打开Apache端口

此外,可以使用netstat 命令或ss命令来验证端口,命令如下:

sudo ss -pnltu

验证Apache监听端口

步骤4:验证Apache HTTP Web服务器

完成所有设置后,打开网络浏览器并浏览服务器的IP地址或FQDN,命令如下:

http://服务器的IP地址
或者是
http://服务器绑定的域名

检查Apache页面

步骤5:在Apache上托管示例网站

Apache网络服务器已经设置完毕,现在可以托管示例网站了。默认的Apache网页文件index.html位于/var/www/html/,也就是网页根目录。你可以托管单个站点,也可以创建虚拟主机文件来托管多个站点。

要托管单个站点,可以修改位于网页根目录中的index.html文件。但首先,请按照如下所示备份文件:

sudo mv /var/www/html/index.html /var/www/html/index.html.bak

现在创建一个新的index.html文件:

sudo nano /var/www/html/index.html

然后添加一些简单HTML示例内容,如下所示:

<html>
    <head>
        <title>Welcome to crazytechgeek</title>
    </head>
    <body>
        <h1>Howdy Geeks! Apache web server is up & running</h1>
    </body>
</html>

退出文本编辑器并重新启动Web服务器:

sudo systemctl restart apache2

现在重新加载浏览器并注意新网站的变化:

在Apache上托管网站

步骤6:在Apache上创建虚拟主机

如果希望Web服务器托管多个网站,最好的解决方法是在Apache Web服务器中创建虚拟主机。当你想在单个服务器中托管多个域名时,虚拟主机非常有用。

首先需要为域名创建一个网页根目录(例如idccoupon.com)。

sudo mkdir -p /var/www/html/idccoupon.com/

接下来,将使用$USER变量为目录分配必要的权限:

sudo chown -R $USER:$USER /var/www/html/idccoupon.com/

接下来,为域名分配网页根目录的必要权限:

sudo chmod -R 755 /var/www/html/idccoupon.com

现在使用你喜欢的文本编辑器,前往创建一个示例index.html文件:

sudo nano /var/www/html/idccoupon.com/index.html

这里添加一些HTML示例内容,具体如下:

<html>
    <head>
        <title>Welcome to Idccoupon.com</title>
    </head>
    <body>
        <h1>Howdy Geeks!</h1>
    </body>
</html>

保存并退出文本编辑器。

现在,使用下面显示的命令为该域名创建一个虚拟主机文件:

sudo nano /etc/apache2/sites-available/idccoupon.com.conf

现在复制并粘贴下面的内容并用你自己的域名替换idccoupon.com域名。

<VirtualHost *:80>
    ServerAdmin admin@idccoupon.com
    ServerName idccoupon.com
    ServerAlias www.idccoupon.com
    DocumentRoot /var/www/html/idccoupon.com/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

保存并退出。

此时,启用虚拟主机文件,命令如下:

sudo a2ensite idccoupon.com.conf

现在让我们禁用默认站点:

sudo a2dissite 000-default.conf

要使更改生效,请重新加载Apache网络服务器:

sudo systemctl restart apache2

现在重新加载Web服务器并注意页面内容的变化。

验证Apache上的虚拟主机

注意:部署多个虚拟机都可以重复上述步骤,记得替换成你自己相对应的域名。

步骤7:在Apache上使用Let’s Encrypt启用HTTPS/SSL

为了使用HTTPS保护你的网站,可以使用Let’s Encrypt获取免费的SSL证书。要获得免费的SSL,需要安装Certbot工具,该工具可自动执行获取和更新SSL证书的过程:

sudo apt install certbot python3-certbot-apache -y

运行Certbot以获取证书并自动配置Apache以使用它:

sudo nano /etc/apache2/sites-available/idccoupon.com-le-ssl.conf

系统将提示你输入电子邮件地址并同意服务条款。然后, Certbot将联系Let’s Encrypt CA以获取并安装你的证书。

Certbot应该自动配置你的虚拟主机以使用SSL,你可以通过检查配置文件来验证它:

sudo nano /etc/apache2/sites-available/idccoupon.com-le-ssl.conf

它看起来应该是这样的:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin admin@idccoupon.com
    ServerName idccoupon.com
    ServerAlias www.idccoupon.com
    DocumentRoot /var/www/html/idccoupon.com/
    ErrorLog ${APACHE_LOG_DIR}/idccoupon.com_error.log
    CustomLog ${APACHE_LOG_DIR}/idccoupon.com_access.log combined

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/idccoupon.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/idccoupon.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

打开浏览器并访问你的域名,没有问题的话应该会看到之前创建的示例页面,并且应该是使用https开头。

步骤8:自动更新Apache的SSL证书

现在Let’s Encrypt证书有效期为90 天,因此通过cron job设置自动续订非常重要:

sudo crontab -e

将以下行添加到crontab:

0 0 * * 0 /usr/bin/certbot renew --quiet

这将每周自动更新SSL证书,确保在90天到期之前完成更新。

小结

以上教程主要介绍了Debian 12系统安装Apache以及如何配置虚拟主机来托管多个网站的简单方法,如果你有这方面的的操作需求,可以参考上述教程进行设置。

未经允许不得转载:惠主机 » Debian 12安装Apache并创建虚拟机简单教程