前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在CVM上迁移Apache数据

在CVM上迁移Apache数据

原创
作者头像
挺问中原
发布2018-07-30 11:00:13
6780
发布2018-07-30 11:00:13
举报

简介

在Debian 8上,Apache2 Web服务器默认文件在/var/www/html中。此目录与操作系统一起位于根文件系统上。您可能希望将文档移动到另一个目录,比如单独挂载文件系统。

在本教程中,您将通过移动文件和更改Apache的配置文件将Apache默认文件迁移到新位置。

准备

要完成本教程,您需要:

  • 一个可以使用sudo命令的非root用户的Debian 8服务器,我建议使用腾讯云配置好的服务器。或免费使用腾讯云开发者实验室进行试验。
  • 一个Apache2 Web服务器。关于安装教程,您可以参考这里
  • 移动目录的新位置,这里我使用腾讯云的文件存储服务

在本教程中,我们将使用/mnt/volume-nyc1-01目录,其指向挂载到服务器的文件存储服务。

第一步 - 将文件复制到新位置

在安装全新的Apache时,文档根目录位于/var/www/html。如果您对服务器有很多网站,则文档目录会有所不同,建议您使用下面的方案进行搜索。

您可以使用grep搜索Apache 配置文档的目录,这里的目录是/etc/apache2/sites-enabled,命令如下:

代码语言:javascript
复制
grep -R "DocumentRoot" /etc/apache2/sites-enabled

-R标志确保grep在其输出DocumentRoot的内容。

结果将类似于以下内容,如果您安装网站校多结果名称和数量可能不同:

代码语言:javascript
复制
sites-enabled/000-default.conf   DocumentRoot /var/www/html

现在您已确认文档根目录的位置,将文件使用rsync命令复制到新位置。

首先,使用以下命令安装rsync

代码语言:javascript
复制
sudo apt-get install rsync

然后执行此命令以复制文件:

代码语言:javascript
复制
sudo rsync -av /var/www/html /mnt/volume-nyc1-01

使用-a标志会保留权限和其他目录属性,同时-v提供详细输出,以便您可以跟踪进度。

注意:确保目录上尾部没有斜杠。当有斜杠时,rsync会将目录的内容转储到挂载点,而不是将其转移到html目录中。

这些文件将被同步到新的位置,但是现在Apache配置文件还使用的是旧的目录,我们需要配置新的文件。

第二步 - 更新配置文件

默认情况下使用Apache附带两个虚拟主机的文件,000-default.confdefault-ssl.conf

首先编辑000-default.conf文件:

代码语言:javascript
复制
sudo nano /etc/apache2/sites-enabled/000-default.conf

找到以DocumentRoot开头的行并使用新位置更新它:

代码语言:javascript
复制
<VirtualHost *:80>
 ...
        ServerAdmin webmaster@localhost
        DocumentRoot /mnt/volume-nyc1-01/html

接下来,查找Directory,查看其是否指向原始路径,我们需要将其更新为新路径。在全新安装的Apache中,Directory默认站点中没有条目。将以下代码添加到配置文件中,以便Apache可以从新位置使用新的文件:

代码语言:javascript
复制
 ...
     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/中。

注意:您应该查找配置文件中原始路径显示的其他位置,并将其更改为新位置。除了DocumentRootDirectory设置之外,您还可以找到需要更新的别名和重写等内容。无论您在grep输出中看到原始文档根目录的路径,您都需要更新路径以反映新位置。

必要的更改后,保存文件。

接下来,我们转向SSL配置。在全新安装时,SSL尚未配置,如果您从未配置过SSL,请忽略以下内容。

注:如果未启用SSL,那么ssl-default.conf文件只位于/etc/apache2/sites-available目录中。如果您启用了SSL,那么服务器会从sites-available文件中链接到/etc/apache2/sites-enabled目录下。在这种情况下,您可以从任一目录编辑该文件。

代码语言:javascript
复制
sudo nano /etc/apache2/sites-available/ssl-default.conf

通过更改DocumentRoot并确保Directory正确配置,如同之前所做的更改相同:

代码语言:javascript
复制
 ...
<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>
 ...

完成配置更改后,请使用以下命令确保语法正确:

代码语言:javascript
复制
sudo apachectl configtest

您会看到如下结果:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 准备
  • 第一步 - 将文件复制到新位置
  • 第二步 - 更新配置文件
  • 结论
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档