前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
在 Ubuntu 上,默认情况下,Apache2 Web 服务器将其文档存储在 /var/www/html
目录中,通常位于与操作系统其余部分相同的根文件系统上。然而,有时将文档根目录移动到另一个位置会很有帮助,比如一个单独的挂载文件系统。例如,如果您从同一个 Apache 实例中为多个网站提供服务,将每个网站的文档根目录放在自己的卷上,可以让您根据特定站点或客户端的需求进行扩展。
在本指南中,我们将向您展示如何将 Apache 文档根目录移动到新位置。
先决条件
要完成本指南,您需要:
-
一个具有
sudo
权限的非 root 用户的 Ubuntu 16.04 服务器。您可以在我们的《在 Ubuntu 16.04 上进行初始服务器设置》指南中了解如何设置具有这些权限的用户。 -
一个 Apache2 Web 服务器:如果您尚未设置,可以参考《在 Ubuntu 16.04 上安装 Linux、Apache、MySQL、PHP(LAMP)堆栈》中的 Apache 部分进行设置。
-
新的文档根目录位置:新的文档根目录位置完全可根据您的需求进行配置。如果您将文档根目录移动到不同的存储设备,您将希望选择设备挂载点下的位置。
在本示例中,我们将使用 /mnt/volume-nyc1-01
目录。如果您在 DigitalOcean 上使用块存储,本指南将向您展示如何在继续本教程之前挂载驱动器。
步骤 1 ------ 复制文件到新位置
在 Apache 的全新安装中,文档根目录位于 /var/www/html
。然而,如果您正在处理现有服务器,可能会有一个包含多个文档根目录的显著不同的设置,其中包括相应的 VirtualHost 指令。
您可以使用 grep
来搜索额外文档根目录的位置。我们将在 /etc/apache2/sites-enabled
目录中进行搜索,以限制我们的关注点在活动站点上。-R
标志确保 grep
将在其输出中打印 DocumentRoot 和文件名:
command
grep -R "DocumentRoot" /etc/apache2/sites-enabled
结果将类似于下面的输出,尽管在现有安装中,名称和结果的数量可能会有所不同:
plaintext
sites-enabled/000-default.conf DocumentRoot /var/www/html
使用 grep
的反馈来确保您正在移动您想要移动的文件,并更新它们的适当配置文件。
现在我们已经确认了我们的文档根目录的位置,我们将使用 rsync
将文件复制到新位置。使用 -a
标志保留权限和其他目录属性,而 -v
提供详细输出,以便您可以跟踪进度。
command
sudo rsync -av /var/www/html /mnt/volume-nyc1-01
现在我们准备更新配置。
步骤 2 ------ 更新配置文件
Apache2 使用全局和站点特定的配置文件。有关配置文件层次结构的背景信息,请参阅《如何在 Ubuntu 或 Debian VPS 上配置 Apache Web 服务器》。
如果您正在处理现有安装,您应该修改您之前使用 grep
命令找到的虚拟主机文件。对于我们的示例,我们将查看 Apache 默认提供的两个虚拟主机文件 000-default.conf
和 default-ssl.conf
。
我们将首先编辑 000-default.conf
文件:
command
sudo nano /etc/apache2/sites-enabled/000-default.conf
接下来,我们将找到以 DocumentRoot
开头的行,并将其更新为新位置。
plaintext
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /mnt/volume-nyc1-01/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
保存这些更改后,我们将转向 SSL 配置。在全新安装中,SSL 尚未配置,但您可能希望更新 ssl-default.conf
以避免一些疑难解答,以免忘记需要进行更改。
command
sudo nano /etc/apache2/sites-available/ssl-default.conf
plaintext
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01
. . .
步骤 3 --- 重启 Apache
完成配置更改后,您可以使用 configtest
确保语法正确:
command
sudo apachectl configtest
在全新安装中,您将会收到 apachectl configtest
的反馈:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
只要您收到 Syntax OK
,就可以重启 Web 服务器。否则,请查找并修复它报告的问题。
使用以下命令重启 Apache:
command
sudo systemctl reload apache2
服务器重启后,请访问受影响的站点,确保它们按预期工作。一切就绪后,请不要忘记删除原始数据的副本。
结论
在本教程中,我们介绍了如何将 Apache 文档根目录更改为新位置。这可以帮助您进行基本的 Web 服务器管理,例如在单个服务器上有效地托管多个站点。它还允许您利用替代存储设备,如网络块存储,在网站需求发生变化时扩展网站的重要步骤。
如果您正在管理一个繁忙或不断增长的网站,您可能有兴趣学习如何对 Web 服务器进行负载测试,以在生产环境中遇到性能瓶颈之前识别它们。您还可以通过比较五种改善生产 Web 应用程序服务器设置的方法来了解更多关于改善生产体验的信息。