前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
在 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 和文件名:
grep -R "DocumentRoot" /etc/apache2/sites-enabled
结果将类似于下面的输出,尽管在现有安装中,名称和结果的数量可能会有所不同:
sites-enabled/000-default.conf DocumentRoot /var/www/html
使用 grep
的反馈来确保您正在移动您想要移动的文件,并更新它们的适当配置文件。
现在我们已经确认了我们的文档根目录的位置,我们将使用 rsync
将文件复制到新位置。使用 -a
标志保留权限和其他目录属性,而 -v
提供详细输出,以便您可以跟踪进度。
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
文件:
sudo nano /etc/apache2/sites-enabled/000-default.conf
接下来,我们将找到以 DocumentRoot
开头的行,并将其更新为新位置。
<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
以避免一些疑难解答,以免忘记需要进行更改。
sudo nano /etc/apache2/sites-available/ssl-default.conf
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /mnt/volume-nyc1-01 . . .
步骤 3 — 重启 Apache
完成配置更改后,您可以使用 configtest
确保语法正确:
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 messageSyntax OK
只要您收到 Syntax OK
,就可以重启 Web 服务器。否则,请查找并修复它报告的问题。
使用以下命令重启 Apache:
sudo systemctl reload apache2
服务器重启后,请访问受影响的站点,确保它们按预期工作。一切就绪后,请不要忘记删除原始数据的副本。
结论
在本教程中,我们介绍了如何将 Apache 文档根目录更改为新位置。这可以帮助您进行基本的 Web 服务器管理,例如在单个服务器上有效地托管多个站点。它还允许您利用替代存储设备,如网络块存储,在网站需求发生变化时扩展网站的重要步骤。
如果您正在管理一个繁忙或不断增长的网站,您可能有兴趣学习如何对 Web 服务器进行负载测试,以在生产环境中遇到性能瓶颈之前识别它们。您还可以通过比较五种改善生产 Web 应用程序服务器设置的方法来了解更多关于改善生产体验的信息。