如何在 Ubuntu 16.04 上将 Apache 网站根目录移动到新位置

介绍

在Ubuntu上,默认情况下,Apache2 Web 服务器将其文档存储在 /var/www/html中,该文档通常位于 root 文件系统和其他操作系统中。

在本指南中,我们将向您展示如何将Apache文档根移动到新的位置。

前提条件

要完成本指南,您将需要:

  • ** 具有sudo特权的非根用户的 Ubuntu 16.04 服务器. 您可以了解更多关于如何设置具有这些特权的用户在我们的 Initial Server Setup with Ubuntu 16.04 指南.
  • ** 一个 Apache2 网页服务器**:如果您还没有设置一个,详细文章中的 Apache 部分, [如何在 Ubuntu 16.04 上安装 Linux, Apache, MySQL, PHP (LAMP) 堆栈(https://andsky.com/tech/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04),可以指导您。

在本示例中,我们将使用 /mnt/volume-nyc1-01 目录. 如果您在 DigitalOcean 上使用区块存储, 本指南将向您展示如何安装您的驱动器,然后继续使用本教程。

步骤 1 — 将文件复制到新位置

在新的安裝中,文件根位於 /var/www/html. 如果您正在使用現有伺服器,但是,您可能會有一個顯著不同的設定,包括多個文件根在相應的 VirtualHost 指令。

您可以使用grep搜索其他文档根的位置。我们将在/etc/apache2/sites-enabled目录中搜索,将我们的焦点限制在活跃的网站上。

1grep -R "DocumentRoot" /etc/apache2/sites-enabled

结果将看起来有点像下面的输出,尽管在现有安装中,结果的名称和数量可能会有所不同:

1[secondary_label Output]
2sites-enabled/000-default.conf DocumentRoot /var/www/html

使用grep的反馈,确保您正在移动您想要移动的文件,并更新其相应的配置文件。

现在我们已经确认了我们的文档根的位置,我们将将文件复制到新的位置使用rsync。使用-a旗帜将保留权限和其他目录属性,而-v则提供无语音的输出,以便您可以跟踪进展。

<$>[注] 注: 请确保目录上没有后续缩减,如果您使用 tab completion 将其添加到目录中。

1sudo rsync -av /var/www/html /mnt/volume-nyc1-01

现在我们已经准备好更新配置了。

步骤 2 – 更新配置文件

Apache2 使用全球和网站特定的配置文件. 有关配置文件等级的背景,请参阅 如何在 Ubuntu 或 Debian VPS 上配置 Apache Web Server

如果你正在使用现有安装,你应该通过grep命令更改你以前发现的虚拟主机文件,为我们的例子,我们将看看与Apache默认交付的两个虚拟主机文件,即000-default.confdefault-ssl.conf

我们将开始编辑 000-default.conf 文件:

1sudo nano /etc/apache2/sites-enabled/000-default.conf

接下来,我们会找到从DocumentRoot开始的行,并将其更新到新的位置。

<$>[注] 注: 您应该寻找原始路径出现的其他地方,并将其更改到新位置。 默认安装时,有 DocumentRoot 和一个目录块,您需要更改。

 1[label /etc/apache2/sites-enabled/000-default.conf]
 2<VirtualHost *:80>
 3        ServerAdmin webmaster@localhost
 4       DocumentRoot /mnt/volume-nyc1-01/html
 5        <Directory />
 6                Options FollowSymLinks
 7                AllowOverride None
 8       </Directory>
 9      <Directory /mnt/volume-nyc1-01/html/>
10                Options Indexes FollowSymLinks MultiViews
11                AllowOverride None
12                Require all granted
13        </Directory>

在新安装时,SSL 尚未配置,但您可能需要更新 ssl-default.conf 以避免稍后一些故障排除,如果您不记得需要进行更改。

1sudo nano /etc/apache2/sites-available/ssl-default.conf
1[label  /etc/apache2/sites-available/ssl-default.conf]
2<IfModule mod_ssl.c>
3        <VirtualHost _default_:443>
4                ServerAdmin webmaster@localhost
5                DocumentRoot /mnt/volume-nyc1-01
6 . . .

<$>[注] 注: 如果 SSL 未启用,则 ssl-default.conf 文件仅位于 /etc/apache2/sites-available. 如果您使用 a2ensite' 启用 SSL,则将从 sites-available中的文件创建一个 symlink 到/etc/apache2/sites-enabled`。

步骤 3 – 重启 Apache

一旦您完成了配置更改,您可以通过configtest确保语法正确:

1sudo apachectl configtest

您将收到来自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,重新启动网页服务器.否则,跟踪并修复它报告的问题。

使用以下命令重新启动 Apache:

1sudo systemctl reload apache2

当服务器重新启动时,请访问受影响的网站并确保它们按预期工作. 一旦您感到舒适,一切顺序,请不要忘记删除数据的原始副本。

结论

在本教程中,我们涵盖了如何将Apache文档根更改到一个新的位置,这可以帮助您进行基本的Web服务器管理,例如在单一服务器上有效托管多个网站。

如果您正在管理繁忙或日益增长的网站,您可能对学习 如何加载测试您的 Web 服务器来识别性能瓶颈,然后在生产中遇到它们。

Published At
Categories with 技术
comments powered by Disqus