在Debian 8上,Apache2 Web服务器默认文件在/var/www/html
中。此目录与操作系统一起位于根文件系统上。您可能希望将文档移动到另一个目录,比如单独挂载文件系统。
在本教程中,您将通过移动文件和更改Apache的配置文件将Apache默认文件迁移到新位置。
要完成本教程,您需要:
在本教程中,我们将使用/mnt/volume-nyc1-01
目录,其指向挂载到服务器的文件存储服务。
在安装全新的Apache时,文档根目录位于/var/www/html
。如果您对服务器有很多网站,则文档目录会有所不同,建议您使用下面的方案进行搜索。
您可以使用grep
搜索Apache 配置文档的目录,这里的目录是/etc/apache2/sites-enabled
,命令如下:
grep -R "DocumentRoot" /etc/apache2/sites-enabled
-R
标志确保grep
在其输出DocumentRoot的内容。
结果将类似于以下内容,如果您安装网站校多结果名称和数量可能不同:
sites-enabled/000-default.conf DocumentRoot /var/www/html
现在您已确认文档根目录的位置,将文件使用rsync
命令复制到新位置。
首先,使用以下命令安装rsync
:
sudo apt-get install rsync
然后执行此命令以复制文件:
sudo rsync -av /var/www/html /mnt/volume-nyc1-01
使用-a
标志会保留权限和其他目录属性,同时-v
提供详细输出,以便您可以跟踪进度。
注意:确保目录上尾部没有斜杠。当有斜杠时,rsync会将目录的内容转储到挂载点,而不是将其转移到html目录中。
这些文件将被同步到新的位置,但是现在Apache配置文件还使用的是旧的目录,我们需要配置新的文件。
默认情况下使用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,查看其是否指向原始路径,我们需要将其更新为新路径。在全新安装的Apache中,Directory默认站点中没有条目。将以下代码添加到配置文件中,以便Apache可以从新位置使用新的文件:
...
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,请忽略以下内容。
注:如果未启用SSL,那么
ssl-default.conf
文件只位于/etc/apache2/sites-available
目录中。如果您启用了SSL,那么服务器会从sites-available
文件中链接到/etc/apache2/sites-enabled
目录下。在这种情况下,您可以从任一目录编辑该文件。
sudo nano /etc/apache2/sites-available/ssl-default.conf
通过更改DocumentRoot
并确保Directory
正确配置,如同之前所做的更改相同:
...
<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
您会看到如下结果:
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:
sudo systemctl reload apache2
服务器重新启动后,请访问您更改的网站,如果一切正常,请不要忘记删除数据的原始副本。
在本教程中,您学会将Apache文档根目录更改为新位置。这可以帮助您进行基本的Web服务器管理,它还允许您利用其他存储设备,例如腾讯云文件存储服务,这是在需求变化时扩展网站的重要步骤。
参考文献:《How To Move an Apache Web Root to a New Location on Debian 8》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。