首页 > 系统相关 >如何在 Ubuntu 16.04 上将 Apache Web 根目录移动到新位置

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

时间:2024-10-14 12:18:48浏览次数:3  
标签:Web 16.04 default 文档 服务器 Apache 根目录

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

简介

在 Ubuntu 上,默认情况下,Apache2 Web 服务器将其文档存储在 /var/www/html 目录中,通常位于与操作系统其余部分相同的根文件系统上。然而,有时将文档根目录移动到另一个位置会很有帮助,比如一个单独的挂载文件系统。例如,如果您从同一个 Apache 实例中为多个网站提供服务,将每个网站的文档根目录放在自己的卷上,可以让您根据特定站点或客户端的需求进行扩展。

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

先决条件

要完成本指南,您需要:

  • 一个具有 sudo 权限的非 root 用户的 Ubuntu 16.04 服务器。您可以在我们的《在 Ubuntu 16.04 上进行初始服务器设置》指南中了解如何设置具有这些权限的用户。

  • 一个 Apache2 Web 服务器:如果您尚未设置,可以参考《在 Ubuntu 16.04 上安装 Linux、Apache、MySQL、PHP(LAMP)堆栈》中的 Apache 部分进行设置。

  • 新的文档根目录位置:新的文档根目录位置完全可根据您的需求进行配置。如果您将文档根目录移动到不同的存储设备,您将希望选择设备挂载点下的位置。

在本示例中,我们将使用 /mnt/volume-nyc1-01 目录。如果您在 DigitalOcean 上使用块存储,本指南将向您展示如何在继续本教程之前挂载驱动器。

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

在 Apache 的全新安装中,文档根目录位于 /var/www/html。然而,如果您正在处理现有服务器,可能会有一个包含多个文档根目录的显著不同的设置,其中包括相应的 VirtualHost 指令。

您可以使用 grep 来搜索额外文档根目录的位置。我们将在 /etc/apache2/sites-enabled 目录中进行搜索,以限制我们的关注点在活动站点上。-R 标志确保 grep 将在其输出中打印 DocumentRoot 和文件名:

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

结果将类似于下面的输出,尽管在现有安装中,名称和结果的数量可能会有所不同:

sites-enabled/000-default.conf   DocumentRoot /var/www/html

使用 grep 的反馈来确保您正在移动您想要移动的文件,并更新它们的适当配置文件。

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

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

现在我们准备更新配置。

步骤 2 —— 更新配置文件

Apache2 使用全局和站点特定的配置文件。有关配置文件层次结构的背景信息,请参阅《如何在 Ubuntu 或 Debian VPS 上配置 Apache Web 服务器》。

如果您正在处理现有安装,您应该修改您之前使用 grep 命令找到的虚拟主机文件。对于我们的示例,我们将查看 Apache 默认提供的两个虚拟主机文件 000-default.confdefault-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 />
                Options FollowSymLinks
                AllowOverride None
       </Directory>
      <Directory /mnt/volume-nyc1-01/html/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Require all granted
        </Directory>

保存这些更改后,我们将转向 SSL 配置。在全新安装中,SSL 尚未配置,但您可能希望更新 ssl-default.conf 以避免一些疑难解答,以免忘记需要进行更改。

sudo  nano /etc/apache2/sites-available/ssl-default.conf
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost
                DocumentRoot /mnt/volume-nyc1-01
 . . .

步骤 3 — 重启 Apache

完成配置更改后,您可以使用 configtest 确保语法正确:

sudo apachectl configtest

在全新安装中,您将会收到 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 服务器管理,例如在单个服务器上有效地托管多个站点。它还允许您利用替代存储设备,如网络块存储,在网站需求发生变化时扩展网站的重要步骤。

如果您正在管理一个繁忙或不断增长的网站,您可能有兴趣学习如何对 Web 服务器进行负载测试,以在生产环境中遇到性能瓶颈之前识别它们。您还可以通过比较五种改善生产 Web 应用程序服务器设置的方法来了解更多关于改善生产体验的信息。

标签:Web,16.04,default,文档,服务器,Apache,根目录
From: https://blog.csdn.net/rubys007/article/details/142794688

相关文章

  • AI绘画StableDIffusion教程!如何利用SDWebUI将图片变得更清晰?全方位对比4种放大方法
    文章目录1、引言2、插件下载和安装3、UltimateSDUpscale(终极SD放大法)4、ControlNettileupscale(瓦片放大法)5、总结零基础AI绘画学习资源介绍......
  • CTFshow-web入门(1-20)-信息搜集
    信息搜集目录信息搜集web1web2web3web4web5web6web7web8web9web10web11web12web13web14web15web16web17web18web19web20web1打开网页发现没有东西查看源代码发现flagflag:ctfshow{c530c49f-f86e-49bc-bc58-8a493b179adb}web2手动添加view-source:flag:ctfshow{7d18c83c......
  • C++可用的websocket库
    库说明优势劣势是否免费商用QtWebSocketsQt框架中的WebSocket模块。不需要额外集成第三方库;支持异步处理,适合在Qt应用程序中处理并发WebSocket请求。性能较差付费libwebsockets轻量级的C库,用于开发WebSocket服务器和客户端。高性能,低内存占用,支持多种平台,包......
  • Python知识点:基于Python工具,如何使用Web3.py进行以太坊智能合约开发
    开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候!基于Python工具Web3.py进行以太坊智能合约开发简介智能合约是区块链技术的核心应用之一,它允许在没有中介的情况下,通过代码自动执行合同条款。以太坊是目前最流行的智......
  • Web Socket 使用详解
    在信息爆炸的时代,用户对网页的期待早已超越了静态内容的展示。实时聊天、股票报价、协同编辑等功能的实现,都离不开服务器与客户端之间持续、高效的数据交互。传统的HTTP请求-响应模型难以满足这种需求,而WebSocket的出现,为构建实时Web应用打开了新的大门。一、WebSocket简介:We......
  • [java/spring/web] 深入理解:Spring @ExceptionHandler => 自定义应用异常处理器(Appli
    1概述:Spring@ExceptionHandler∈spring-web作用ExceptionHandler是Spring框架(spring-web模块)提供的一个注解,用于处理应用程序中的异常。当应用程序中发生异常时,ExceptionHandler将优先地拦截异常并处理它,然后将处理结果返回到前端。该注解可用于类级别和方法级别,以......
  • Safari Webkit, NotAllowedError: The request is not allowed
    使用tauriv2,跑前后端项目学习时,遇到这条报错:UnhandledPromiseRejection:NotAllowedError:Therequestisnotallowedbytheuseragentortheplatforminthecurrentcontext,possiblybecausetheuserdeniedpermission.测试代码console.log(navigator.userAge......
  • Web前端开发入门学习笔记之CSS 43-47 --新手超级友好版-复合选择器+css特性篇
         Foreword写在前面的话: 大家好,我是一名刚开始学习HTML的新手。这篇文章是我在学习html过程中的一些笔记和心得,希望能和同样在学习HTML的朋友们分享。由于我的知识有限,文章中可能存在错误或不准确的地方,欢迎大家在评论区提出建议和指正。我非常期待大家的反馈,以便......
  • WebAssembly 基础以及结合其他编程语言
    0x00WebAssembly基础详情参考《WebAssembly|MDN》(1)概述WebAssembly简称WASM或WA,是一种新的编码方式,可以在现代的Web浏览器中运行可以通过编译器,把多种编程语言(如C/C++、C#、Go、Python、Rust、TypeScript等)编写的代码转化为WA,并在浏览器中使用特点:灵活度高......
  • Three.js的魅力 带你 进入 web 3D 世界的大门
    原生Three.js和Cesium.js案例。智慧城市数字孪生常用功能列表模型加载-使用three.js加载不同格式的模型。轮廓光辉光后期处理得各种效果。天空盒加载环境贴图效果相机视角动画物体沿着路径运动动画粒子效果围墙着色器效果类似echarts的three.js3d......