EMO的WEB开发技术日记 - 2018年5月
type: channel
link: /2018/05/
items: 在路由器上搭建NextCloud作为个人网盘

在路由器上搭建NextCloud作为个人网盘
type: item
link: /%E5%8E%9F%E5%89%B5-80.html
date: 2018-05-05T16:27:00+08:00
description: 缘由自以为很明智地买了32G的手机,应该能用上3,4年.没想还不到两年,女王就天天抱怨手机木有空间.还好,不像我整个手机装的都是各种软件,她手机里占空间的主要还是照片和视频.那就弄个远程备份咯.可是放眼在线云盘,国内的说真的不敢用,要担心那天挂掉,或者那天数据泄露.免费用户还得忍受龟速下载.国外的虽然节操比国内的好些,但是订阅的价钱不低,还有墙的存在,始终放心不下.既然家里的城中村宽带在万能淘宝加持下变成了200M下行/30M上行,那就得用起来.开搞家里的路由器跑的梅林,早已经搭好了Optware-Ng的环境了,综合的各家评论,觉得搭个NextCloud云盘好了.下载源码包,配置nginx,开始安装,路由器是EA6500V2,armv7的CPU,256M的内存,挂载了一个1T的硬盘和远古时代的2G MiniSD卡,几分钟下来,终于是装好了,可是一登录,就来一个500错误!调试虽说有了心里准备,在路由上跑大型软件会有坑,可这登录就摸门钉,太...二话不说,看日志,可是这日志记录的太长了,被截断了.本来还想看看源码的,可面对着这庞大的项目却不知从何下手,算了,还是编译个xdebug慢慢追吧.既然抛出一个NotFoundException,那就在报错的地方,抛异常前打几个断点.试了几次,终于找到问题所在了.本来在获取一个文件时,应该返回该文件的元信息,例如创建时间,修改时间,文件大小之类的.可程序的到的却是一个个的null.这些元信息是原本是通过PHP的stat方法获取的.但是,如果PHP_INT_SIZE===4的话,却是通过系统命令stat获取的,而这梅林却没有这命令,stat命令不存在,PHP自然就返回null了,继而就抛出了NotFoundException.解决方法也很简单.查到stat命令是属于coreutils-stat这个包的,ipkg update && ipkg install coreutils-stat装上stat命令后果然正常了,创建个账号,试了下手机客户端,可以正常备份了.