当通过 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 配置。
通过 SSH 连接到你的服务器(如果尚未连接)
更改到 Apache 的
sites-available
目录:cd /etc/apache2/sites-available
确定 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
笔记:上述示例与您在系统上看到的内容并不完全相同。文件名和文本摘录可能有所不同。
使用提供的文件名禁用 NextCloud 站点:
sudo a2dissite 010-storage.conf
笔记:您不需要输入完整的文件路径,因为我们已经在适当的目录中。
重新加载(或重新启动)Apache:
sudo service apache2 reload
完成后,没有人可以访问 NextCloud 安装。现在您可以删除文件。
更改为 Apache 根目录:
cd /var/www
如果您想在清除 NextCloud 之前对其进行备份,您可以将所有内容包装在压缩的 tarball 中,如下所示:
sudo tar -czvf nextcloud-backup.tar.gz nextcloud
笔记:如果最初的假设不正确,请务必将其替换
nextcloud
为 NextCloud 安装的正确目录。删除 NextCloud:
注意这个命令!无法撤消!
sudo rm -Rf /var/www/nextcloud
笔记:使用满的路径,这样就不太可能完全清除服务器上的所有内容。此命令将完全删除
nextcloud
目录及其内容。没有步骤 4。NextCloud 文件已被删除。
最后,让我们清除数据库。
以管理员身份通过命令行连接MySQL:
sudo mysql
列出所有数据库以确认 NextCloud 数据库的名称:
SHOW DATABASES;
你可能会看到这样的结果:
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | nextcloud | | performance_schema | | sys | +--------------------+ 5 rows in set (0.03 sec)
删除 NextCloud 数据库:
这里也要注意。没有撤消!
DROP DATABASE nextcloud;
退出 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
,但rm
(www
如上所述,在路径中添加了其他内容)成功了(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 相关的进一步信息,我会发布更新。我欢迎就其他人对该流程的体验发表评论。