如何在 Ubuntu 14.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 服务器上运行命令的非特权用户帐户. 您可以通过遵循 Ubuntu 上如何创建 Sudo 用户 教程来配置此操作。

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

即使你正在使用一个新配置的安装程序,它是一个好主意,做一个快速的备份. 你要开始移动和删除东西,所以安全首先!

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

1[environment local]
2ssh sammy@your_server_ip

重要的是要确保在执行备份和迁移时没有任何变化,所以最简单的方法是关闭 Web 服务器,以便用户无法访问 ownCloud。

1sudo service apache2 stop

现在,网页服务器已经停止了,导航到您的服务器存储 ownCloud 的目录. 如果您正在使用 Ubuntu 14.04 上 ownCloud 的 One-Click 安装,则您的安装位于 /var/www/ 目录中。

1cd /var/www
2ls

您将看到云端文件夹:

1[secondary_label Output]
2html owncloud

接下来,使用tar命令创建备份档案,以 c 压缩 g** z** ip** f** ile,并将** v** erbose输出显示到屏幕上。

1sudo tar czfv owncloud.tar.gz owncloud/

现在将档案移动到您的家庭目录以安全维护:

1sudo mv owncloud.tar.gz ~/

美元(注)

注意 :您的 ownCloud 文件是备份的,但如果您使用 MySQL 或任何其他数据库而不是内部数据存储选项,您也应该备份数据库。

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

您可以在位于/var/www/owncloud/config/config.php的配置文件中找到用户名密码dbname的值。

您可以找到有关备份和恢复MySQL数据库的更多信息(https://andsky.com/tech/tutorials/how-to-backup-mysql-databases-on-an-ubuntu-vps)。

美元

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

第2步:升级PHP

如果您正在从 Ubuntu 14.04 上的 One-Click 安装中迁移,则需要升级 PHP 以便能够使用任何版本的 Nextcloud 版本,而不是 10.0.2 标准的 Ubuntu 14.04 存储库只包含 PHP 5.5,但需要 PHP 5.6 从 NextCloud 11 开始。

1sudo apt-get install python-software-properties

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

1sudo add-apt-repository ppa:ondrej/php

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

1sudo apt-get update

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

1sudo 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,执行此操作的命令是:

1a2dismod php5
2a2enmod php7.0

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

现在让我们安装Nextcloud。

第3步:下载Nextcloud

Nextcloud 發行網站你會找到列表的每個 Nextcloud 發行在幾個不同的格式。 找到最新的 .tar.gz 文件的發行版本是相同的,或一個主要版本之後,你的目前的 ownCloud 版本. 例如,如果你正在遷移自 ownCloud 9 One-Click 安裝,你會尋找的文件 nextcloud-10.0.2.tarbz2

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

你要下載兩個檔案. 第一個將是你在網站上發現的Nextcloud套件. 另一個檔案將是一個驗證檔案,名為md5 checksum. md5檔案將具有與包相同的路徑,但附加了額外的延伸 .md5到最後。 執行跟蹤命令移動到您的主目錄,然後下載兩個檔案。

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

运行md5sum命令生成其支票量,以验证包文件的完整性:

1md5sum nextcloud-10.0.2.tar.bz2

你会看到类似于这个输出的东西:

1[secondary_label Output]
2dc30ee58858d4f6f2373472264f7d147 nextcloud-10.0.2.tar.bz2

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

1cat nextcloud-10.0.2.tar.bz2.md5

此命令的输出应与前命令的输出相同:

1[secondary_label Output]
2dc30ee58858d4f6f2373472264f7d147 nextcloud-10.0.2.tar.bz2

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

要解包文件,请再次使用 tar 命令,但这一次,ex 处理** f** ile 与** v** erbose 输出。

1tar xfv nextcloud-10.0.2.tar.bz2

最后,将新提取的nextcloud文件夹复制到/var/www文件夹:

1sudo mv nextcloud /var/www/nextcloud

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

步骤4:迁移数据和设置文件所有权

你的现有 ownCloud 安装有两个目录,你会想保存: data/config/. 你会将这些从原来的位置移动到你的 nextcoud 目录,但首先,你会想要删除与 Nextclout 一起来的默认版本。

首先,执行命令从您的nextcloud目录中删除默认目录,如果它们存在:

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

然后从云端目录中移动旧目录:

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

使用sudo命令移动文件的一个后果是,所有文件都将由 root 用户拥有,然而,Nextcloud 始终由** www-data** 用户运行,这意味着您需要更改对 `/var/www/nextcloud 文件夹及其内容的所有权,然后再进一步执行这个命令。

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

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

第5步:升级 Nextcloud 内部服务

有了所有文件,您可以启动内部升级过程. Nextcloud 和 ownCloud 提供了管理和升级安装的工具,名为 occ. 导航到 /var/www/nextcloud/ 目录:

1cd /var/www/nextcloud

在您可以使用occ之前,您需要更新/var/www/nextcloud/config/config.php文件以反映数据目录的新位置。 具体而言,datadirectory =>/var/www/owncloud/data字段需要更改为datadirectory =>/var/www/nextcloud/data字段。 使用sed字段来轻松更改:

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

<美元 > [注] 注: 通常, " sed " 流输出到屏幕,但 " i " 旗指示它修改现有文件。 关于如何使用正则表达式的信息,见正则表达式介绍。 关于 " sed " 的更多信息,请看[使用 " Sed Stream " 编辑器在Linux中操纵文本的基本情况] (https://andsky.com/tech/tutorials/the-basics-of-using-the-sed-stream-editor-to-manipulate-text-in-linux)。 < $ > (美元)

现在使用occ将 Nextcloud 放入维护模式. 这样就锁定了文件,所以在升级应用程序时无法外部进行更改。

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

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

您将看到此输出,以便确认维护模式已启用:

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

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

1sudo -u www-data php occ upgrade

此命令显示了大量的输出,因为它将所有 ownCloud 数据迁移到 Nextcloud,但最终你会看到以下消息:

1[secondary_label Output]
2...
3
4Starting code integrity check...
5Finished code integrity check
6Update successful
7Maintenance mode is kept active
8Reset log level

如果升级出现问题,输出将为您提供一些反馈,了解错误发生了什么以及如何解决问题,假设升级顺利地关闭维护模式。

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

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

第6步:升级Nextcloud

要升级 Nextcloud 到一个新的主要版本,您可以使用您在本教程的步骤 3 到 5 中使用的相同程序。

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

然后从 [Nextcloud 发布网站] 找到 .tar.gz 文件(https://download.nextcloud.com/server/releases/),下载它,并像您在步骤 3 中一样检查其 MD5 检查量。

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

一旦你下载并验证了档案,解包并将其移动到Web服务器上的Nextcloud位置:

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

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

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

最后,使用occ来执行升级:

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

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

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

步骤7 - 更改 Web 服务器的流量

Apache网络服务器通过使用虚拟主机,或 vhosts 来引导不同的目录. 文件夹/etc/apache2/site-united/' 载有为服务器配置的每个vhost的描述。 通过将相关文件与/etc/apache2/sites-uplied/文件夹相连接,这些vhost得以启用。 文件/etc/apache2/sites-copented/000-owncloud.conf'使服务器配置为读取/var/www/owcloud',该配置由位于/etc/apache2/sites-suplied/000-owncloud.conf'的链接启用.

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

Fist 复制 ownCloud 配置文件:

1sudo 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:

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

接下来,通过删除链接 /etc/apache2/sites-enabled/000-owncloud.conf 来禁用 ownCloud vhost。

1sudo a2dissite 000-owncloud.conf

最后,通过创建一个符号链接到 Nextcloud 配置文件来启用 Nextcloud vhost。

1sudo a2ensite 000-nextcloud.conf

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

现在,网页服务器知道在哪里找到Nextcloud,我们可以用这个命令开始备份它:

1sudo service apache2 start

在这一点上,一切都应该在你的新 Nextcloud 安装上运行。打开一个网页浏览器并导航到你的旧 ownCloud 服务器的位置,你会看到 Nextcloud 登录屏幕。你所有的旧用户名和密码将像迁移之前一样工作。登录为 admin 用户,因为你可能需要重新启用一些应用,包括日历和联系人应用程序。

结论

在本教程中,您已备份以前的 ownCloud 安装,迁移到 Nextcloud,并禁用 ownCloud。

现在你的服务器已经迁移到Nextcloud,是时候更新你正在使用的任何同步客户端了。

如果您决定返回 ownCloud,您可以从您在步骤 1 中创建的备份中恢复 data/config/ 文件夹,以及您已备份的任何外部数据库。 不要尝试将 data/config/ 文件夹从 /var/www/nextcloud 复制到 ownCloud。

Published At
Categories with 技术
comments powered by Disqus