介绍
在 Debian 8 上,Apache2 网页服务器默认地将其文件存储在 `/var/www/html 中. 此目录与其他操作系统一起位于 root 文件系统上. 您可能希望将文档 root 移动到另一个位置,例如单独安装的文件系统。
在本指南中,您将通过移动文件和更改 Apache 配置文件来将 Apache 文档根移动到一个新的位置。
前提条件
要完成本指南,您将需要:
- 拥有
sudo
特权的非根用户的 Debian 8 服务器. 您可以了解更多关于如何设置具有这些特权的用户在我们的 Debian 8 初始服务器设置指南中。 - Apache2 网页服务器:如果您还没有设置一个,详细文章中的 Apache 部分 如何在 Debian 8 上安装 Linux, Apache, MySQL, PHP (LAMP) 堆栈可以指导您。
- 您的文档根的新位置:新文档根位置完全可根据您的需求配置。 如果您正在将文档根移到不同的存储设备,您将希望在设备的安装点下选择一个位置。 在本教程中,我们将继续使用目录 `
步骤 1 – 将文件复制到新位置
在新的安裝中,文件根位於 /var/www/html
. 如果您正在使用現有伺服器,但是,您可能會有一個顯著不同的設定,包括多個文件根在相應的 VirtualHost 指令。
您可以使用grep
搜索其他文档根的位置. 在/etc/apache2/sites-enabled
目录中搜索以使用以下命令将焦点限制在活跃的网站上:
1grep -R "DocumentRoot" /etc/apache2/sites-enabled
-R
旗帜确保 grep
在其输出中打印 DocumentRoot 和文件名。
结果将看起来如下,尽管在现有安装中,结果的名称和数量可能会有所不同:
1[secondary_label Output]
2sites-enabled/000-default.conf DocumentRoot /var/www/html
使用grep
的反馈,确保您正在移动您想要移动的文件,并更新其相应的配置文件。
现在你已经确认了你的文档根的位置,将文件复制到新的位置,使用rsync
。
首先,安装rsync
1sudo apt-get install rsync
然後執行這個命令來複製檔案:
1sudo rsync -av /var/www/html /mnt/volume-nyc1-01
使用-a
旗保留了权限和其他目录属性,而-v
提供无语音输出,以便您可以跟踪进展。 了解有关使用rsync
的更多信息在教程中 如何使用Rsync在VPS上同步本地和远程目录。
<$>[注] 注: 请确保目录上没有后续缩减,如果您使用 tab completion 将其添加到目录中。
文件现在处于新位置,但Apache仍然在寻找旧位置,所以让我们修复一下。
步骤 2 – 更新配置文件
Apache2 使用全球和网站特定的配置文件. 有关配置文件等级的背景,请参阅 如何在 Ubuntu 或 Debian VPS 上配置 Apache Web Server。
如果你正在使用一个现有安装,你应该通过grep
命令修改你以前发现的虚拟主机文件. 对于这个例子,我们将看看与Apache默认运送的两个虚拟主机文件,即000-default.conf
和default-ssl.conf
。
开始编辑 000-default.conf
文件:
1sudo nano /etc/apache2/sites-enabled/000-default.conf
尋找以「DocumentRoot」開始的行,並以新的位置更新它:
1[label /etc/apache2/sites-enabled/000-default.conf]
2<VirtualHost *:80>
3 ...
4 ServerAdmin webmaster@localhost
5 DocumentRoot /mnt/volume-nyc1-01/html
接下来,寻找一个目录
块,该块也指向原始路径,并更新它以指向新路径。
在新安装时,默认网站中没有目录
条目,请将以下代码添加到配置文件中,以便Apache可以从新位置服务文件:
1[label /etc/apache2/sites-enabled/000-default.conf]
2 ...
3 ServerAdmin webmaster@localhost
4 DocumentRoot /mnt/volume-nyc1-01/html
5
6 <Directory />
7 Options FollowSymLinks
8 AllowOverride None
9 </Directory>
10 <Directory /mnt/volume-nyc1-01/html/>
11 Options Indexes FollowSymLinks MultiViews
12 AllowOverride None
13 Require all granted
14 </Directory>
15 ...
第一个目录
块设置了一些限制的默认权限,第二个块设置了新的 Web 根的选项在 /mnt/volume-nyc1-01/html/
。
<$>[注]
注: 您应该寻找原始路径出现的其他地方,并将其更改到新的位置,除了DocumentRoot
和目录
设置外,您可能还会发现需要更新的副名称和重写等东西。
完成所需的更改后,保存文件。
接下来,我们将关注SSL配置。在新安装时,SSL将不会被配置,但您可能需要更新ssl-default.conf
文件,以避免稍后出现一些问题,如果您不记得需要进行更改。
<$>[注]
注: 如果 SSL 未启用,则 ssl-default.conf
文件仅位于 /etc/apache2/sites-available.
如果您使用 sudo a2ensite ssl-default
启用 SSL,则将从 sites-available
中的文件创建一个 symlink 到 /etc/apache2/sites-enabled
。
编辑文件:
1sudo nano /etc/apache2/sites-available/ssl-default.conf
然后,通过更改DocumentRoot
并确保目录
规则被正确配置,进行之前所做的相同的更改:
1[label /etc/apache2/sites-available/ssl-default.conf]
2 ...
3<IfModule mod_ssl.c>
4 <VirtualHost _default_:443>
5 ServerAdmin webmaster@localhost
6 DocumentRoot /mnt/volume-nyc1-01
7
8 <Directory />
9 Options FollowSymLinks
10 AllowOverride None
11 </Directory>
12 <Directory /mnt/volume-nyc1-01/html/>
13 Options Indexes FollowSymLinks MultiViews
14 AllowOverride None
15 Require all granted
16 </Directory>
17 ...
完成配置更改后,请使用以下命令确保语法正确:
1sudo apachectl configtest
你会看到输出如下:
1[secondary_label Output]
2AH00558: apache2: Could not reliably determine the server's fully qualified domain name,
3using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
4Syntax OK
在默认安装中,您将看到前一条消息,您可以安全地忽略它。只要您看到Syntax OK
,请重新启动 Web 服务器。
使用以下命令重新启动 Apache:
1sudo systemctl reload apache2
当服务器重新启动时,请访问受影响的网站并确保它们按预期工作. 一旦您感到舒适,一切顺序,请不要忘记删除数据的原始副本。
结论
在本教程中,您将Apache文档根更改到一个新的位置,这可以帮助您进行基本的Web服务器管理,例如在单一服务器上有效托管多个网站。
如果您正在管理繁忙或日益增长的网站,您可能对学习 如何加载测试您的 Web 服务器来识别性能瓶颈,然后在生产中遇到它们。