当通过 Web 安装程序安装 Nextcloud 时,从 Linux 卸载它的正确方法是什么?

当通过 Web 安装程序安装 Nextcloud 时,从 Linux 卸载它的正确方法是什么?

当通过 Web 安装程序安装 Nextcloud 时,从 Linux 卸载它的正确方法是什么?

我所能找到的搜索结果如下这个仅说明通过 Snap 安装时该做什么。

这个 Nextcloud 手册描述了 Web 安装程序的使用(通过打开 setup-nextcloud.php 运行),但没有提到卸载。(除非您卸载 Nextcloud,否则需要删除 Nextcloud 目录标签。)

我尝试再次打开 setup-nextcloud.php 以防它提供卸载选项,但没有。

我确信可以通过检查 setup-nextcloud.php 并手动删除它添加的所有内容(例如服务器注册、防火墙规则等)来解决这个问题……但显然这可能很耗时且容易出错。肯定有一种自动的方法吧?

答案1

通读NextCloud 网页安装程序的代码,NextCloud 将会安装在您放置文件的目录中setup-nextcloud.php。因此,考虑到这一点,删除 NextCloud 可能非常简单。

笔记: 由于我不知道您服务器的目录结构,因此将做出以下假设。当您从系统中删除 NextCloud 时,您需要解决任何差异。

假设:

物品 假设
服务器操作系统 Ubuntu 18.04、20.04 或 22.04
网络服务器 阿帕奇
NextCloud 目录 /var/www/nextcloud
数据库 MySQL
数据库名称 nextcloud

搞定这些之后,让我们从您的服务器中删除 NextCloud。首先,我们将禁用 Apache 配置。

  1. 通过 SSH 连接到你的服务器(如果尚未连接)

  2. 更改到 Apache 的sites-available目录:

    cd /etc/apache2/sites-available 
    
  3. 确定 NextCloud 使用哪个 Apache 配置文件。如果不确定,可以使用以下命令快速确定答案:

    grep -rnw '/etc/apache2/sites-available' -e 'nextcloud'
    

    这会希望为您提供 NextCloud 位置的简短列表:

    /etc/apache2/sites-available/010-storage.conf:6:        ServerAlias cloud.example.com nextcloud.example.com
    

    笔记:上述示例与您在系统上看到的内容并不完全相同。文件名和文本摘录可能有所不同。

  4. 使用提供的文件名禁用 NextCloud 站点:

    sudo a2dissite 010-storage.conf
    

    笔记:您不需要输入完整的文件路径,因为我们已经在适当的目录中。

  5. 重新加载(或重新启动)Apache:

    sudo service apache2 reload 
    

完成后,没有人可以访问 NextCloud 安装。现在您可以删除文件。

  1. 更改为 Apache 根目录:

    cd /var/www
    
  2. 如果您想在清除 NextCloud 之前对其进行备份,您可以将所有内容包装在压缩的 tarball 中,如下所示:

    sudo tar -czvf nextcloud-backup.tar.gz nextcloud
    

    笔记:如果最初的假设不正确,请务必将其替换nextcloud为 NextCloud 安装的正确目录。

  3. 删除 NextCloud:

    注意这个命令!无法撤消!

    sudo rm -Rf /var/www/nextcloud
    

    笔记:使用满的路径,这样就不太可能完全清除服务器上的所有内容。此命令将完全删除nextcloud目录及其内容。

  4. 没有步骤 4。NextCloud 文件已被删除。

最后,让我们清除数据库。

  1. 以管理员身份通过命令行连接MySQL:

    sudo mysql 
    
  2. 列出所有数据库以确认 NextCloud 数据库的名称:

    SHOW DATABASES;
    

    你可能会看到这样的结果:

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | nextcloud          |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.03 sec)
    
  3. 删除 NextCloud 数据库:

    这里也要注意。没有撤消!

    DROP DATABASE nextcloud;
    
  4. 退出 MySQL:

    quit;
    

完成了,完成了。

答案2

我很感谢 matigo 花时间从网络设置中推导出卸载过程,并将其记录在一份出色的答案中。

我提供了这个补充答案,其中包含我遇到的一些差异(这可能与这台 Ubuntu 20.04 机器是 Linux Mint 安装有关,也可能无关)。希望这能帮助将来使用该过程的任何其他 Linux“半菜鸟”。

以下是我发现的差异以及我所采取的措施:

Apache 根: 我发现我的 Apache 根目录低了一层,位于/var/www/html。这似乎没有造成任何特殊问题,只是需要额外注意使用正确的路径,其中命令引用 Apache 根目录。

Nextcloud 不在站点可用中:我在任何文件中都找不到 Nextcloud 的提及/etc/apache2/sites-available(即使使用 grep -i;在任何其他/etc/apache2/子文件夹中也是如此)。这仍然无法解释,而且很奇怪,因为 Nextcloud 最近一直在为网站的几个测试连接工作。无论如何,所以我不得不跳过a2dissite,但rmwww如上所述,在路径中添加了其他内容)成功了(Nextcloud 文件夹消失了),并且 apache 重新加载(无论如何我都这样做了)没有报告任何错误(我假设如果重新加载有问题,它至少会在控制台上显示一些内容?其余网站都没有任何问题)。

Nextcloud 数据库:在 MariaDB/MySQL 步骤中,我发现我没有名为“nextcloud”的数据库,但有一个名为“ncexample”的数据库,我认为它可能是那个。网络搜索显示 Nextcloud 数据库包含一堆以“oc_”为前缀的表(Nextcloud 是 ownCloud 的一个分支),这有助于确认我即将删除的数据库至少是一些该服务器上的 Nextcloud 数据库。就我而言,这就是删除它之前我需要知道的全部内容。

在此处输入图片描述

Nextcloud 防火墙规则:我从 Linux Mint 的主菜单中选择防火墙配置,进入 UFW(GUFW)的图形用户界面。在那里,通过依次选择每个配置文件(家庭、办公室、公共等),我找到并删除了 Nextcloud 规则。用户界面使这变得非常容易,因为显示的规则表有一个名称列,并且有名称中带有 Nextcloud 的规则。(我不知道 Nextcloud 防火墙规则是否是通过设置自动添加的;鉴于 matigo 没有提到它们,我猜不是,这意味着它们是事后手动添加的。因此,看起来在任何自动卸载之后都需要执行此步骤,如果发现这样的事情存在并使用的话。)

就是这样!通过对这些或类似的调整应用于您自己的服务器,您会发现,当使用 Web 安装程序安装 Nextcloud 时,matigo 的流程可以很好地卸载它。如果我在任何时候发现任何与以这种方式卸载 Nextcloud 相关的进一步信息,我会发布更新。我欢迎就其他人对该流程的体验发表评论。

相关内容