分类
Linux 笔记

安装nextcloud,初识snap

家里的台式机是win10系统,装了vmware workstation,启动两个虚拟机,使用frp内网穿透,做一些服务。本来是为了快速建设环境,所以用虚拟机,客户机没换掉。结果24小时开机,坚持了4、5天,win10直死掉了。所以决定一步到位,重新建设一个真正的服务器。

重装系统选择ubuntu desktop 18.04 TSL版,没有选择server版,是因为平时还要拿来做开发和日常使用。这个版本是今年4月发布,加入不少特性。打开应用市场发现推荐nextcloud,这正是我需要安装的服务之一。既然应用市场有,而且也是官方发布,于是决定通过应用市场安装。

安装很简单,点击安装完成,服务直接可用了。我预想的是会安装apache、mysql。结果发现没有这些,而且端口只有一个80在占用。这是怎么做到的?突然一下懵了。

使用前,我注意到了在home目录下有一个snap文件夹,打开发现有nextcloud文件夹,但是进入是一个空的。同时通过apt命令搜索,没有找到nextcloud包。

是不是和snap有关?在上个版本ubuntu就有推新的打包方式,当时没细看,于是用snap查找。

果然找到了。原来snap包是独立的,从ubuntu手机版移移过来的。相当于win10下的应用市场,应用市场的那些是手机移动来,和exe安装包完全不同。

这样一来就能理解了。那么为什么nextcloud所必须的mysql没有看到端口占用?
linux系统结构还是很清晰的,数据一般在/var里。通过ps查看进程信息,可以找到运行文件的路径。经过一番查找,观察到,在根目录下,多了/snap文件夹。进入后,里面有/nextcloud。再打开,各种文件,apache,mysql,redis一个都不少。然后再看看连接mysql的配置文件,指向的是mysql的pid文件。这是第一次见,我想应该是通过pid再找到mysql进程。mysql不是没有启动,而是因为没有指定端口。同理redis也一样。

感觉snap这样做有点像现在流行的docker,把环境都打包好。这样nextcloud所专用的apache、mysql都不会与我本地开发环境的配置有交集。我个人觉得这是很好的。当时用虚拟机做服务器,也是为了隔离。虽然两种方式不同,各有场景,但现在这种布署方式比较适合我。现在仅需要应用隔离就行了,不用维护那么多系统。

那么在nextcloud中,怎样去修改apache默认端口,访问mysql呢?其实nextcloud带了很多工具,可以通过nextcloud.mysql-client访问。至于修改apache的端口,在官方的github可以找到,使用:
snap set nextcloud ports.http=81 ports.https=443

更多的参数设置可以参考:https://github.com/nextcloud/nextcloud-snap
至于snap的使用,其实和apt命令差不多。需要注意的是snap包和apt是分开的。所以升级snap应用,应该用snap命令检测升级。

第一次使用snap,可能看得还不够全面,使用过程中如果有新发现,会记录下来。

“安装nextcloud,初识snap”上的一条回复

发表评论

电子邮件地址不会被公开。