介绍
最近,大部份的核心开发团队在 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。