如何在Ubuntu14.04上将ownCloud安装转换为Nextcloud

来自菜鸟教程
跳转至:导航、​搜索

介绍

最近,ownCloud 的大部分核心开发团队离开,开始了一个名为 Nextcloud 的新项目。 虽然 ownCloud 仍将继续开发,但您可能想看看新项目提供了什么。 Nextcloud 和 ownCloud 共享一个共同的代码库,这意味着将现有的 ownCloud 安装迁移到 Nextcloud 应该是一项轻松的任务。

在本教程中,您会将现有的 ownCloud 安装迁移到 Nextcloud。 该过程涉及将核心应用程序文件与 Nextcloud 中的文件交换,并让 Nextcloud 的内置更新程序完成繁重的工作。 虽然过程很简单,但仍有许多事情需要以正确的顺序完成,以确保一切顺利。

注意: 您一次只能更新ownCloud和Nextcloud安装一个主要版本号。 如果您当前使用ownCloud 9,则必须先迁移到Nextcloud 10,然后再升级到Nextcloud 11。 本教程涵盖了这个过程。


先决条件

为了将您 ownCloud 安装迁移到 Nextcloud,您将需要:

  • 在 Ubuntu 14.04 上运行的 ownCloud 9 安装。
  • ownCloud 服务器上的非特权用户帐户,可以使用 sudo 运行命令。 您可以按照 如何在 Ubuntu 上创建 Sudo 用户教程进行配置。

第 1 步 — 停止 Web 服务器并备份数据

即使您使用的是新配置的安装,快速备份也是一个好主意。 你即将开始移动和删除东西,所以安全第一!

如果您尚未连接,请登录到运行 ownCloud 的服务器:

ssh sammy@your_server_ip

确保在执行备份和迁移时没有任何变化很重要,因此确保这一点的最简单方法是关闭 Web 服务器,这样用户就无法访问 ownCloud。 执行这个命令:

sudo service apache2 stop

现在 Web 服务器已停止,导航到服务器存储 ownCloud 的目录。 如果您在 Ubuntu 14.04 上使用 one-Click 安装 ownCloud,您的安装位于 /var/www/ 目录中。 运行以下命令切换到该目录并验证它是否包含 owncloud/

cd /var/www
ls

您将看到 owncloud 文件夹:

Outputhtml  owncloud

接下来,使用 tar 命令创建备份存档到 compress agzip file 并显示 v erbose 输出到屏幕。 新存档将被称为 owncloud.tar.gz 并将包含整个 owncloud/ 目录。 执行以下命令:

sudo tar czfv owncloud.tar.gz owncloud/

现在将存档移动到您的主目录以进行安全保存:

sudo mv owncloud.tar.gz ~/

注意:您自己的云文件已备份,但如果您使用MySQL或任何其他数据库而不是内部数据存储选项,您还应该备份数据库。 对于 MySQL,通过运行以下命令创建备份:

mysqldump -u username -p dbname > ~/owncloud_backup.sql

您可以在位于 /var/www/owncloud/config/config.php 的配置文件中找到 usernamepassworddbname 的值。

您可以在此处 找到有关备份和恢复 MySQL 数据库 的更多信息。


在安装 Nextcloud 之前,还有一个特定于 Ubuntu 14.04 服务器的步骤。

第 2 步 - 升级 PHP

如果您从 Ubuntu 14.04 上的一键安装迁移,您将需要升级 PHP 才能使用高于 10.0.2 的任何 Nextcloud 版本。 标准 Ubuntu 14.04 存储库仅包含 PHP 5.5,但从 NextCloud 11 开始需要 PHP 5.6。 幸运的是,Ubuntu 支持称为 PPA 的 3rd 方存储库。 如果您之前没有安装过 PPA,请执行以下命令来安装一个名为 python-software-properties 的包:

sudo apt-get install python-software-properties

接下来,添加包含 PHP 更新版本的 PPA:

sudo add-apt-repository ppa:ondrej/php

然后告诉包管理器更新它的已知包列表,其中包括 PPA 中的那些:

sudo apt-get update

现在您可以安装 PHP7 和 Nextcloud 所需的所有模块:

sudo apt-get install php7.0 php7.0-sqlite php7.0-mysql php7.0-pgsql php7.0-zip php7.0-gd php7.0-mb php7.0-curl php7.0-xml php7.0-apc

最后,切换您的 Web 服务器使用的 PHP 模块。 对于 Apache,执行此操作的命令是:

a2dismod php5
a2enmod php7.0

注意: 如果您将服务器用于ownCloud 以外的任何东西,您应该在禁用该模块之前确保您的Web 服务器不需要PHP5.5。


现在让我们安装 Nextcloud。

第 3 步 — 下载 Nextcloud

Nextcloud 发布站点,您会找到以多种不同格式列出的每个 Nextcloud 版本的列表。 查找与当前 ownCloud 版本相同或之后的主要版本的最新 .tar.gz 文件。 例如,如果您从 ownCloud 9 One-Click 安装迁移,您将寻找文件 nextcloud-10.0.2.tar.bz2

当您找到该文件时,不要将其下载到您的个人计算机上。 相反,右键单击文件名并复制链接地址,以便您可以将文件下载到您的服务器。

您将下载两个文件。 第一个是您在网站上找到的 Nextcloud 包。 另一个文件将是一个称为“md5 校验和”的验证文件。 md5 文件将具有与包完全相同的路径,但在末尾添加了额外的扩展名 .md5。 执行以下命令移动到您的主目录,然后下载这两个文件。

cd ~
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.tar.bz2.md5

运行 md5sum 命令生成其校验和以验证包文件的完整性:

md5sum nextcloud-10.0.2.tar.bz2

您将看到与此输出类似的内容:

Outputdc30ee58858d4f6f2373472264f7d147  nextcloud-10.0.2.tar.bz2

然后显示您下载的 .md5 文件的内容:

cat nextcloud-10.0.2.tar.bz2.md5

此命令的输出应与上一个命令的输出相同:

Outputdc30ee58858d4f6f2373472264f7d147  nextcloud-10.0.2.tar.bz2

如果输出不同,请再次下载 Nextcloud。

要解压文件,请再次使用 tar 命令,但这一次,使用 verbose 输出 ex 提取 file。 执行此命令以提取存档:

tar xfv nextcloud-10.0.2.tar.bz2

最后将新解压的nextcloud文件夹复制到/var/www文件夹下:

sudo mv nextcloud /var/www/nextcloud

现在您可以开始将文件从 ownCloud 迁移到 Nextcloud。

第 4 步 — 迁移数据和设置文件所有权

您现有的 ownCloud 安装有两个您要保留的目录:data/config/。 您将这些从它们的原始位置移动到您的 nextcoud 目录中,但首先,您需要删除 Nextclout 附带的默认版本。

首先,执行命令从 nextcloud 目录中删除默认目录(如果存在):

sudo rm -rf /var/www/nextcloud/data /var/www/nextcloud/config

然后将旧目录从 owncloud 目录移过来:

sudo mv /var/www/owncloud/data /var/www/nextcloud/data
sudo mv /var/www/owncloud/config /var/www/nextcloud/config

使用 sudo 命令移动文件的一个后果是文件将全部归 root 用户所有。 然而,Nextcloud 始终由 www-data 用户运行。 这意味着您需要更改 /var/www/nextcloud 文件夹及其内容的所有权,然后再继续操作。 为此,运行带有 -R 参数的 chown 命令以递归地将所有文件所有权更改为 www-data 用户:

sudo chown -R www-data:www-data /var/www/nextcloud/

现在文件已经到位,我们需要告诉 Web 服务器如何访问它们。

第 5 步 — 升级 Nextcloud 内部

准备好所有文件后,您可以启动内部升级过程。 Nextcloud 和 ownCloud 提供了一个工具来管理和升级安装,称为 occ。 导航到 /var/www/nextcloud/ 目录:

cd /var/www/nextcloud

在使用 occ 之前,您必须更新 /var/www/nextcloud/config/config.php 文件以反映数据目录的新位置。 具体来说,需要将'datadirectory' => '/var/www/owncloud/data',这一行改为'datadirectory' => '/var/www/nextcloud/data',。 使用 sed 轻松进行更改:

sudo sed -i "s/owncloud\/data/nextcloud\/data/g" config/config.php

注意: 通常,sed 流式输出到屏幕,但 -i 标志告诉它修改文件。 有关如何使用正则表达式的信息,请参阅 正则表达式简介。 有关 sed 的更多信息,请查看 在 Linux 中使用 Sed 流编辑器操作文本的基础知识


现在使用 occ 将 Nextcloud 置于维护模式。 这会锁定文件,因此在升级应用程序时不能在外部进行任何更改。 运行以下命令以打开维护模式:

sudo -u www-data php occ maintenance:mode --on

请注意,这使用 sudo 作为 www-data 用户运行命令。

您将看到此输出,因此您可以确认维护模式已打开:

[secondary_output]
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Maintenance mode enabled

接下来,使用 occ 启动内部升级过程:

sudo -u www-data php occ upgrade

此命令在将所有 ownCloud 数据迁移到 Nextcloud 时会显示大量输出,但最后您会看到以下消息:

Output...

Starting code integrity check...
Finished code integrity check
Update successful
Maintenance mode is kept active
Reset log level

如果升级出现问题,输出将为您提供一些关于出现问题以及如何解决问题的反馈。 假设升级顺利,是时候关闭维护模式了。

sudo -u www-data php occ maintenance:mode --off

您的 ownCloud 安装现已迁移到 Nextcloud,但它可能仍然过时。 如果您迁移了ownCloud 9,您将只迁移到Nextcloud 10,但仍然有更新的版本,所以让我们升级吧。

第 6 步 — 升级 Nextcloud

要将 Nextcloud 升级到新的主要版本,请使用在本教程的步骤 3 到 5 中使用的相同过程。 首先,使用以下命令将您当前安装的 Nextcloud 文件夹移开:

sudo mv /var/www/nextcloud /var/www/nextcloud.old

然后从 Nextcloud 发布站点 中找到 .tar.gz 文件,下载它,并检查其 MD5 校验和,就像您在步骤 3 中所做的那样。

wget https://download.nextcloud.com/server/releases/nextcloud-11.0.0.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-11.0.0.tar.bz2.md5
md5sum nextcloud-11.0.0.tar.bz2
cat nextcloud-11.0.0.tar.bz2.md5

下载并验证存档后。 将其解压缩并将其移动到 Web 服务器上的 Nextcloud 位置:

tar xfv nextcloud-11.0.0.tar.bz2
mv nextcloud /var/www/nextcloud

接下来,像在第 4 步中所做的那样,将配置和数据文件从旧安装移动到新安装:

rm -rf /var/www/nextcloud/config /var/www/nextcloud/data 
mv /var/www/nextcloud.old/config /var/www/nextcloud
mv /var/www/nextcloud.old/data /var/www/nextcloud
sudo chown -R www-data:www-data /var/www/nextcloud/

最后,使用 occ 进行升级:

sudo -u www-data php occ maintenance:mode --on
sudo -u www-data php occ upgrade
sudo -u www-data php occ maintenance:mode --off

对需要升级的每个主要版本的 Nextcloud 重复这些步骤。

现在一切都是最新的,我们可以配置 Web 服务器以将流量发送到 Nextcloud。

第 7 步 - 修改 Web 服务器的流量

Apache Web 服务器通过使用虚拟主机或虚拟主机指向不同的目录。 文件夹 /etc/apache2/sites-available/ 包含为服务器配置的每个虚拟主机的描述。 这些虚拟主机通过将它们的关联文件链接到 /etc/apache2/sites-enabled/ 文件夹来启用。 文件 /etc/apache2/sites-available/000-owncloud.conf 将服务器配置为读取 /var/www/owcloud,并且该配置通过位于 /etc/apache2/sites-enabled/000-owncloud.conf 的链接启用。

要将服务器转换为使用 Nextcloud 安装,请创建 ownCloud vhost 配置的副本,将其编辑为指向 Nextcloud,禁用 ownCloud vhost,并启用 Nextcloud vhost。

先复制ownCloud配置文件:

sudo cp /etc/apache2/sites-available/000-owncloud.conf /etc/apache2/sites-available/000-nextcloud.conf

接下来,将配置文件中的所有 owncloud 实例替换为 nextcloud。 您可以通过使用文本编辑器打开 /etc/apache2/sites-available/000-nextcloud.conf 并自己进行更改,或使用正则表达式和 sed 命令来完成此操作。

运行以下命令,将 vhost 配置文件的内容转换为 sed

sudo sed -i "s/owncloud/nextcloud/g" /etc/apache2/sites-available/000-nextcloud.conf  

接下来,通过删除链接 /etc/apache2/sites-enabled/000-owncloud.conf 禁用 ownCloud vhost。 Ubuntu 提供了 a2dissite 命令来禁用站点。 执行这个命令:

sudo a2dissite 000-owncloud.conf

最后,通过创建指向 Nextcloud 配置文件的符号链接来启用 Nextcloud 虚拟主机。 使用 a2ensite 命令创建链接:

sudo a2ensite 000-nextcloud.conf

注意:如果您通过HTTPS访问ownCloud,您还需要对/etc/apache2/sites-available/owncloud-ssl.conf vhost重复这些步骤。


现在 Web 服务器知道在哪里可以找到 Nextcloud,我们可以使用以下命令启动它:

sudo service apache2 start

此时,您的新 Nextcloud 安装应已启动并运行。 打开 Web 浏览器并导航到旧 ownCloud 服务器的位置,您将看到 Nextcloud 登录屏幕。 您的所有旧用户名和密码都将像迁移前一样使用。 以 admin 用户身份登录,因为您可能需要重新启用某些应用程序,包括日历和通讯录应用程序。

结论

在本教程中,您备份了之前的 ownCloud 安装,迁移到 Nextcloud,并禁用了 ownCloud。 您现在可以像使用 ownCloud 一样使用 Web 界面登录 Nextcloud。

现在您的服务器已迁移到 Nextcloud,是时候更新您正在使用的任何同步客户端了。 就像 ownCloud 一样,Nextcloud 为您的桌面和移动设备提供了许多同步客户端。

如果您决定切换回 ownCloud,您可以从您在步骤 1 中创建的备份以及您备份的任何外部数据库中恢复 data/config/ 文件夹。 请勿尝试将 data/config/ 文件夹从 /var/www/nextcloud 复制回 ownCloud。 恢复备份后,您所要做的就是禁用 Nextcloud 虚拟主机并启用 ownCloud 虚拟主机,使用与步骤 4 中相同的过程。