专栏首页云计算教程系列如何将ownCloud转换为Nextcloud
原创

如何将ownCloud转换为Nextcloud

介绍

ownCloud的核心开发团队中一部分人员启动了一个名为Nextcloud的项目。虽然ownCloud将继续开发,但您可能想了解新项目的功能。Nextcloud和ownCloud共享一个公共代码库,这意味着将现有的ownCloud安装迁移到Nextcloud中。

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

注意:您一次只能更新ownCloud和Nextcloud中的一个版本号。假如您当前使用的是ownCloud 9,则必须先迁移到Nextcloud 10,然后再升级到Nextcloud 11,本教程将介绍此过程。

前期准备

要将您自己的Cloud安装迁移到Nextcloud,您需要:

  • 在Ubuntu上运行的ownCloud 9安装程序。并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器

第一步、停止运行Web服务器并备份数据

即使您正在使用新配置的安装,但最好还是进行快速备份。你即将开始移动和删除文件,所以安全第一!如果您使用的是腾讯云的服务器,您可以使用腾讯云的快照服务快速备份您的文件,其他服务器请继续看教程。

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

ssh sammy@your_server_ip

在执行备份和迁移时确保没有任何更改是非常重要的,因此确保这一点的最简单方法是关闭Web服务器,以便用户无法访问ownCloud。执行以下命令:

sudo service apache2 stop

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

cd /var/www
ls

你会看到owncloud文件夹:

html  owncloud

接下来,使用tar命令创建备份存档以压缩gzip文件并向屏幕显示详细输出。将调用新存档owncloud.tar.gz包含整个owncloud目录。执行以下命令:

sudo tar czfv owncloud.tar.gz owncloud/

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

sudo mv owncloud.tar.gz ~/

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

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

你可以找到的值usernamepassword以及dbname位于配置文件/var/www/owncloud/config/config.php中。您可以在此处找到有关备份和还原MySQL数据库的更多信息。

第二步、升级PHP

如果要从Ubuntu上的One-Click安装进行迁移,则需要升级PHP才能使用比10.0.2更新版本的Nextcloud。标准的Ubuntu存储库仅包含PHP 5.5,但从NextCloud 11开始需要PHP5.6。Ubuntu支持称为PPA的第三方存储库。如果之前未安装过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。

第三步、下载Nextcloud

在Nextcloud发布站点上,您将找到许多Nextcloud发行版。查找与您当前的ownCloud版本相同或下一个版本.tar.gz。例如,如果要从ownCloud 9 One-Click安装进行迁移,则可以查找该文件nextcloud-10.0.2.tar.bz2

你要下载两个文件。第一个是您在网站上找到的Nextcloud软件包。另一个文件将是一个称为“md5 checksum”的验证文件。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

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

dc30ee58858d4f6f2373472264f7d147  nextcloud-10.0.2.tar.bz2

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

cat nextcloud-10.0.2.tar.bz2.md5

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

dc30ee58858d4f6f2373472264f7d147  nextcloud-10.0.2.tar.bz2

如果输出不同,请再次下载Nextcloud。要解压缩的文件,使用tar命令提取文件。执行此命令以解压缩存档:

tar xfv nextcloud-10.0.2.tar.bz2

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

sudo mv nextcloud /var/www/nextcloud

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

第四步、迁移数据和设置文件所有权

您现在的ownCloud安装有两个您想要保留的目录:data/config/。您将这些从原始位置移动到您的nextcoud目录中,但首先,您将要删除Nextclout附带的文件。

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

sudo mv /var/www/owncloud/data /var/www/nextcloud/data
sudo mv /var/www/owncloud/config /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及其内容的所有权。为此,请运行chown带有-R参数的命令,以递归方式将所有文件所有权更改为www-data用户:

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

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

第五步、配置Nextcloud

有了所有文件,您就可以配置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

现在用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,但最后您将看到以下消息:

...
​
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,但仍有更新的版本,所以让我们升级。

第六步、升级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发送流量。

第七步、修改Web服务器

Apache Web服务器通过使用虚拟主机或主机指向不同的目录。该文件夹/etc/apache2/sites-available/包含为服务器配置。通过将其关联文件链接到该/etc/apache2/sites-enabled/文件夹来启用这些vhost 。该文件/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主机 。Ubuntu提供a2dissite禁用站点的命令。执行以下命令:

sudo a2dissite 000-owncloud.conf

最后,通过创建指向Nextcloud配置文件来启用Nextcloud vhost。使用a2ensite命令创建链接:

sudo a2ensite 000-nextcloud.conf

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

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

sudo service apache2 start

此时,所有内容都应该在您的新Nextcloud安装中启动并运行。打开Web浏览器并转到到旧的ownCloud服务器的位置,您将看到Nextcloud登录屏幕。您的所有旧用户名和密码都将像迁移前一样工作。以管理员用户身份登录,因为您可能需要重新启用某些应用,包括日历和通讯录应用。

结论

在本教程中,您备份了旧版本的ownCloud安装,并迁移到Nextcloud,并禁用了ownCloud。您现在可以使用Web界面登录Nextcloud,就像使用ownCloud一样。如果您决定切换回ownCloud,则可以从步骤1中创建的备份以及备份的任何外部数据库中还原data/和config/文件夹。不要尝试复制data/config/到文件夹/var/www/nextcloud回到ownCloud。备份恢复后,您只需使用步骤4中的相同步骤禁用Nextcloud vhost并启用ownCloud vhost。你学会了嘛?快在这里购买服务器搭建你的个人网盘吧!感谢您的阅读,更多Linux教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Convert an ownCloud Installation to Nextcloud on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Ubuntu 14.04上安装和使用命令行备忘单

    Cheat是一个基于命令行的Python程序,允许系统管理员查看和存储有用的备忘单。它检索所选命令的纯文本示例,以便提醒用户选项,参数或常用用途。 Cheat非...

    小铁匠米兰的v
  • 如何在Nginx配置Gzip

    网站加载的速度取决于浏览器必须下载的所有文件的大小。减少要传输的文件的大小可以使网站不仅加载更快,而且对于那些宽带是按量计费的人来说也更友好。

    小铁匠米兰的v
  • 如何在Debian 9上设置SSH密钥

    SSH或安全shell是用于管理服务器和与服务器通信的加密协议。使用Debian服务器时,您可能会将大部分时间花在通过SSH连接到服务器的终端会话中。

    小铁匠米兰的v
  • 国庆节前端技术栈充实计划(2):抽空打好JavaScript基础

    所有现代的网页浏览器、NodeJ以及几乎所有其他JavaScript环境都支持使用一套日志记录方法将信息写入控制台中。这些方法中最常用的是 console.lo...

    疯狂的技术宅
  • GitLab配置ssh key

      当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选...

    阿豪聊干货
  • 大数据量获取TopK的几种方案

        生活中经常会遇到求TopK的问题,在小数据量的情况下可以先将所有数据排序,最后进行遍历。但是在大数据量情况下,这种的时间复杂度最低的也就是O(NlogN...

    匠心Java
  • 哪些成为了经典-引用次数最多的10篇机器学习文献

    近40年来机器学习领域产生了数以万计的论文,并以每年上万篇的速度增长。但真正能够称为经典、经受住历史检验、能投入实际应用的并不多。本文整理了机器学习历史上出现的...

    SIGAI学习与实践平台
  • ubuntu18.04安装搜狗输入法

    然后去搜狗输入法官网:https://pinyin.sogou.com/linux/

    kevinfaith
  • Rasa 聊天机器人专栏(三):架构介绍

    磐创AI
  • gRPC在Spring Cloud中的应用

    在微服务开发中,服务间的调用一般有两种方式:Feign、RestTemplate,但在实际使用过程中,尤其是Feign,存在各种限制及局限性,如:HTTP请求方...

    xcbeyond

扫码关注云+社区

领取腾讯云代金券