介绍
在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.conf
和default-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 服务器来识别性能瓶颈,然后在生产中遇到它们。