Ubuntu环境下Apache服务器的搭建步骤

image-20241123144349148

引言

Apache HTTP服务器是世界上使用最广泛的Web服务器。它提供了许多强大的功能,包括动态可加载模块、强大的媒体支持以及与其他流行软件的广泛集成。

在本教程中,将学习如何在的Ubuntu服务器上安装Apache Web服务器。

先决条件

在开始本教程之前,

需要一个已设置的Ubuntu服务器,具有非root用户,具有sudo权限,并启用了防火墙以阻止非必要的端口。

设置完成后,以的非root用户身份登录并进行第一步。

建议使用至少有以下配置的服务器:

4 核心的 CPU,4GB 的内存

选择服务器提供商
为了本教程的演示,我将以一个具体的云服务提供商为例,展示如何进行操作。选择哪个提供商根据个人偏好和需求来决定。

雨云注册链接:https://www.rainyun.com/NTE2NDM3_?s=blog

以下步骤仅供参考,请根据实际需求选择配置。

购买云服务器
本示例中,我们选择了香港作为服务器区域。

点击 云产品云服务器立即购买

https://syxoss.oss-cn-hangzhou.aliyuncs.com/Typora202411211020032.png

选择操作系统
在创建服务器实例时,选择 Ubuntu 作为操作系统。

https://syxoss.oss-cn-hangzhou.aliyuncs.com/Typora202411211020498.png

连接到服务器
使用 X-shell 或偏好的 SSH 客户端,通过远程用户名和密码连接到服务器。成功连接后,将看到特定的欢迎信息,表明已成功登录。

https://syxoss.oss-cn-hangzhou.aliyuncs.com/Typora202411211021991.png

https://syxoss.oss-cn-hangzhou.aliyuncs.com/Typora202411210947807.png

第1步 — 安装Apache

Apache在Ubuntu的默认软件仓库中可用,使得可以使用传统的包管理工具进行安装。

首先,更新本地软件包索引以反映最新的上游更改:

sudo apt update

然后,安装apache2包:

sudo apt install apache2

确认安装后,apt将安装Apache及其所有必需的依赖项。

第2步 — 调整防火墙

在测试Apache之前,需要修改防火墙设置以允许外部访问默认Web端口。如果按照先决条件中的说明操作,应该有一个配置为限制对服务器访问的UFW防火墙。

在安装过程中,Apache会在UFW中注册自己,提供几个应用程序配置文件,可以用来启用或禁用通过防火墙访问Apache。

通过运行以下命令列出ufw应用程序配置文件:

sudo ufw app list

的输出将是一个应用程序配置文件列表:

可用应用程序:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

如输出所示,Apache有三个配置文件可用:

  • Apache:此配置文件仅打开端口80(普通的未加密Web流量)
  • Apache Full:此配置文件同时打开端口80(普通的未加密Web流量)和端口443(TLS/SSL加密流量)
  • Apache Secure:此配置文件仅打开端口443(TLS/SSL加密流量)

建议启用最限制性的配置文件,但仍允许配置的流量。由于尚未在本指南中为的服务器配置SSL,只需要允许端口80上的流量:

sudo ufw allow 'Apache'

可以通过检查状态来验证更改:

sudo ufw status

配置文件已激活,允许访问Apache Web服务器。

第3步 — 检查的Web服务器

安装过程结束时,Ubuntu会启动Apache。Web服务器已经启动并运行。

通过运行systemd初始化系统的命令确保服务处于活动状态:

sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:>
     Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago
       Docs: <https://httpd.apache.org/docs/2.4/>
   Main PID: 5089 (apache2)
      Tasks: 55 (limit: 1119)
     Memory: 4.8M
        CPU: 33ms
     CGroup: /system.slice/apache2.service
             ├─5089 /usr/sbin/apache2 -k start
             ├─5091 /usr/sbin/apache2 -k start
             └─5092 /usr/sbin/apache2 -k start

如输出确认,服务已成功启动。然而,测试这一点的最好方法是从Apache请求页面。

可以通过IP地址访问默认的Apache登录页面,以确认软件正常运行。如果不知道服务器的IP地址,可以通过命令行以几种不同的方式获得。

在服务器的命令提示符下尝试编写以下内容:

hostname -I

将得到一系列由空格分隔的地址。可以尝试每个地址在的Web浏览器中,以确定它们是否有效。

另一个选择是使用免费的icanhazip.com工具。这是一个网站,当访问时,它会返回的机器的公共IP地址,如同从互联网上的另一个位置读取的那样:

curl -4 icanhazip.com

当有了服务器的IP地址后,将其输入浏览器的地址栏:

http://your_server_ip

将看到默认的Ubuntu Apache网页,如下所示:

image.png

此页面表明Apache工作正常。它还包括一些关于重要Apache文件和目录位置的基本信息。

第4步 — 管理Apache进程

现在已经有了运行中的Web服务器,让我们回顾一些使用systemctl的基本管理命令。

要停止的Web服务器,运行:

sudo systemctl stop apache2

当Web服务器停止时,要启动它,运行:

sudo systemctl start apache2

要停止然后再次启动服务,运行:

sudo systemctl restart apache2

如果只是在进行配置更改,Apache通常可以在不中断连接的情况下重新加载。要这样做,请使用以下命令:

sudo systemctl reload apache2

默认情况下,Apache配置为在服务器启动时自动启动。如果不希望这样,可以通过运行禁用此行为:

sudo systemctl disable apache2

要重新启用服务以在启动时启动,运行:

sudo systemctl enable apache2

Apache现在将在服务器再次启动时自动启动。

第5步 — 设置虚拟主机(推荐)

当使用Apache Web服务器时,可以使用虚拟主机(类似于Nginx中的服务器块)来封装配置详细信息,并从单个服务器托管多个域名。我们将设置一个名为your_domain的域名,但应该用自己的域名替换此域名

Ubuntu上的Apache默认启用一个服务器块,配置为从/var/www/html目录提供文档。虽然这对于单个网站效果很好,但如果托管多个网站,可能会变得不切实际。不要修改/var/www/html,而是在/var/www内为your_domain站点创建一个目录结构,保留/var/www/html作为默认目录,以便在客户端请求不匹配任何其他站点时提供服务。

按如下方式为your_domain创建目录:

sudo mkdir /var/www/your_domain

接下来,使用$USER环境变量将目录的所有权分配给当前登录的用户:

sudo chown -R $USER:$USER /var/www/your_domain

如果没有修改过umask值(它设置默认文件权限),则的Web根目录的权限应该是正确的。为确保的权限正确,并允许所有者读取、写入和执行文件,同时仅向组和其他用户授予读取和执行权限,可以输入以下命令:

sudo chmod -R 755 /var/www/your_domain

接下来,使用nano或最喜欢的编辑器创建一个样本index.html页面:

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

内部添加以下样本HTML:

<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success! The your_domain virtual host is working!</h1>
    </body>
</html>

完成后保存并关闭文件。如果使用的是nano,可以通过按CTRL + X,然后按YENTER来完成。

为了让Apache提供此内容,需要创建一个包含正确指令的虚拟主机文件。不要直接修改位于/etc/apache2/sites-available/000-default.conf的默认配置文件,而是在/etc/apache2/sites-available/your_domain.conf处创建一个新的:

sudo nano /etc/apache2/sites-available/your_domain.conf

添加以下配置块,它与默认配置类似,但更新为的新目录和域名:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

注意我们已经更新了DocumentRoot为我们的新目录,并将ServerAdmin更新为your_domain站点管理员可以访问的电子邮件。我们还添加了两个指令:ServerName,它建立了将匹配此虚拟主机定义的基础域名,以及ServerAlias,它定义了进一步的名称,将匹配基础名称。

完成后保存并关闭文件。

现在使用a2ensite工具启用文件:

sudo a2ensite your_domain.conf

禁用000-default.conf中定义的默认站点:

sudo a2dissite 000-default.conf

接下来,测试配置错误:

sudo apache2ctl configtest

重启Apache以实施的更改:

sudo systemctl restart apache2

Apache现在将为的域名提供服务。可以通过导航到http://your_domain来测试这一点,将看到类似以下内容:

image.png

结论

现在已经安装了Web服务器,有许多选择可以提供的内容类型和可以使用的技术,以创造更丰富的体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xxin¥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值