介绍
在Debian 8,Apache2的Web服务器中存储的文件,/var/www/html
默认。此目录与操作系统的其余部分位于根文件系统上。您可能需要将文档根目录移动到其他位置,例如单独安装的文件系统。例如,如果您从同一个Apache实例提供多个网站,将每个站点的文档根目录放在自己的卷上,您可以根据特定站点或客户端的需求进行扩展。 在本指南中,您将通过移动文件和更改Apache的配置文件将Apache文档根目录移动到新位置。
先决条件
要完成本指南,您需要:- 一个Debian 8服务器与非root用户
sudo
权限。 您可以了解更多有关如何设置这些权限的用户在我们与Debian 8 初始服务器设置指南。 - 一个Apache2的Web服务器:如果您尚未设置一个,深入的文章,是在Apache的部分如何安装Linux,Apache,MySQL和PHP在Debian 8(LAMP) ,可以指导你。
- 文档根目录的新位置:根据您的需要,新的文档根目录位置是完全可配置的。如果将文档根目录移动到其他存储设备,则需要在设备的装载点下选择一个位置。
/mnt/volume-nyc1-01
,指向连接到服务器的块存储卷。 如果您想使用块存储来保存您的网页,完成教程
如何使用块存储上DigitalOcean ,然后再继续安装驱动器。
第1步 - 将文件复制到新位置
在全新安装的Apache,文档根目录位于/var/www/html
。但是,如果您使用现有的服务器,则可能有明显不同的设置,包括相应VirtualHost指令中的多个文档根目录。 您可以搜索的使用附加文档根目录位置
grep
。 在搜索
/etc/apache2/sites-enabled
目录中的重点,限制使用下面的命令活性位点:
grep -R "DocumentRoot" /etc/apache2/sites-enabled
该
-R
标志,可以确保
grep
将打印DocumentRoot的,并在其输出的文件名。 结果将类似于以下内容,尽管结果的名称和数量在现有安装中可能不同:
Outputsites-enabled/000-default.conf DocumentRoot /var/www/html
从使用反馈
grep
,以确保你移动,你要移动的文件,并更新其相应的配置文件。 现在,你已经确定你的文档根目录的位置,将文件复制到新的位置用
rsync
。 首先,安装
rsync
有
sudo apt-get install rsync
然后执行此命令复制文件:
sudo rsync -av /var/www/html /mnt/volume-nyc1-01
使用
-a
标志保留的权限和其他目录属性,而
-v
提供详细输出,以便能够按照进度。 了解更多有关使用
rsync
教程
如何使用Rsync在同步上一个VPS本地和远程目录 。
注意:确保没有对目录没有尾随斜线,如果你使用制表符完成可以加入。当有一个结尾的斜线, rsync
将转储目录复制到安装点,而不是转移成一个包含内容html
目录: 文件现在在其新位置,但Apache仍在旧位置,所以让我们解决这个问题。
第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
并用新的位置更新:
/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
...
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01/html
接下来,寻找一个
Directory
块也指向原始路径,并更新为指向新的路径。 在全新安装,没有
Directory
的默认站点条目。将以下代码添加到配置文件中,以便Apache可以从您的新位置提供文件:
/etc/apache2/sites-enabled/000-default.conf
...
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>
...
第一个
Directory
块设置一些制约默认权限,而第二块配置在新的Web根目录的选项
/mnt/volume-nyc1-01/html/
注意:您应该寻找其他地方的原始路径出现了,并改变那些到新的位置为好。除了DocumentRoot
和Directory
设置,您可能会发现类似的东西别名和需要更新重写了。无论你看到的输出的原始文档根目录的路径grep
,你要更新路径,以反映新的位置。 进行必要的更改后,保存文件。 接下来,我们将关注SSL配置。在全新安装,SSL将不进行任何配置,但你可能会想要更新的
ssl-default.conf
文件,以避免一些问题以后,如果你不记得,你需要做出改变。
注意:如果不启用SSL,那么ssl-default.conf
文件只位于/etc/apache2/sites-available.
如果启用了SSL sudo a2ensite ssl-default
,被从文件中创建一个符号链接sites-available
来/etc/apache2/sites-enabled
在这种情况下,您可以从任一目录编辑文件。 编辑文件:
sudo nano /etc/apache2/sites-available/ssl-default.conf
然后,让你做以前,同样的变化通过改变
DocumentRoot
,并确保
Directory
规则被正确配置:
/etc/apache2/sites-available/ssl-default.conf
...
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /mnt/volume-nyc1-01/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
...
完成配置更改后,请使用以下命令确保语法正确:
sudo apachectl configtest
您将看到如下输出:
OutputAH00558: 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:
sudo systemctl reload apache2
服务器重新启动后,访问受影响的网站,确保其正常工作。一旦你舒服一切都是为了,不要忘了删除数据的原始副本。