旧手机在手,心里痒痒,不知道要干啥好,之前的旧手机网盘计划由于不熟悉环境搭建夭折了,这回我想再发起冲击,没想到居然成了
首先看知乎上的文章,了解到了一个架构很简单的私人网盘filegator
看界面很简洁,似乎不需要nginx/apache(在termux上无法使用systemctl,教程肯定不管用)
于是我就按照官方的教程部署
apt update
apt install -y wget unzip php apache2 libapache2-mod-php php-zip
cd /var/www/
wget https://github.com/filegator/static/raw/master/builds/filegator_latest.zip
unzip filegator_latest.zip && rm filegator_latest.zip
chown -R www-data:www-data filegator/
chmod -R 775 filegator/
echo "
<VirtualHost *:80>
DocumentRoot /var/www/filegator/dist
</VirtualHost>
" >> /etc/apache2/sites-available/filegator.conf
a2dissite 000-default.conf
a2ensite filegator.conf
systemctl restart apache2
exit
也怪我看都没开直接执行,这不是apache2?这不是php?
硬着头皮装吧!
systemctl理所当然报错了,但是我记得之前似乎apache2
直接运行是可行的
于是直接运行apache2,报错显示config中未定义根目录
找到/etc/apache找到相关conf,之前改过nginx的conf,似乎也能看懂
再次运行,报错,上百度查,百度给条指令,source一个conf,排除故障,但是每次启动都需要打开,我就扔到一个sh里了(具体是什么原因就不深究了,可能和termux容器的特殊环境有关)
显示80端口被占用,百度得termux在非实际root下无法使用80,改成祖传38324端口,成功host,但是显示的是apache欢迎页
反过来看官方脚本,发现在conf里写了是80端口
echo "
<VirtualHost *:80>
DocumentRoot /var/www/filegator/dist
</VirtualHost>
" >> /etc/apache2/sites-available/filegator.conf
把80改成38324,顺利启动了
测试运行时,发现大问题
之前只跑了个mirai,问题还不太严重,因为mirai本来也没什么性能需求
测试服务器时,发现只要锁屏,性能就会指数级下跌,从秒开变成超时打不开
百度安卓 后台运行,没有相关内容
我突然想到
在之前的旧版本中,termux的通知栏可以启动一个wakelock的按钮,启动后似乎性能就不会下降了
百度termux wakelock
得到结果!
https://www.zhihu.com/question/275235036
简单粗暴,新版本改入口了
但是为什么一锁屏性能就极限下降呢?
究其原因
https://blog.csdn.net/phenhorlin2/article/details/103432471
于是开始怀疑是代码中的心跳定时器在电脑上和在手机上的时间不一样。 于是写了个最简单的go程序,定时每隔1秒输出包含时间信息到日志。在电脑上输出正常。 放到termux上去执行,发现了非常诡异的结果,输出的时间信息,并不是每秒输出,几乎是每隔6到 7秒中,但是我到定时器是每隔1秒啊!! wfk, 这是什么情况,太不可思议了
就这个定时器不准到问题再次去google 了一番,发现是Android深度睡眠导致的,为了减少耗电,后台程序的运行很慢,连timer定时器也不例外
P.S. 就连timer也能变慢实在是太夸张了!能省点就省点!
运行后,性能不再下降,OHHHHHHHHHHHHHHHH
这次折腾不但做好了网盘,还成功解决了之前不懂的问题
真是皆大欢喜呢!
P.S.刚写博客的时候看了termux官方文档
Since the default login shell is bash; it could be useful to call termux-wake-lock in your ~/.profile (or ~/.bash_profile where appropriate) and termux-wake-unlock in your ~/.bash_logout; for single session usage. For multiple sessions, you’ll have to manage the unlock call yourself. But it is an option to call bash once and use byobu to get a multiple bash session running within a single termux session.
似乎每个wakelock只能管到一个session…说的是在profile里写上启动时锁关闭时解锁,但是新建的session不能覆盖
这是不是意味着每个wakelock只能管到一个session呢?
不管了,把手机打开,mirai的session也给加锁
但是
FileGator是轻量,功能实在太少
既然apache配置成功,既然php启动成功,那不如….
当当当当,kodexplorer部署计划启动!
kod explorer,可道云,不需要数据库,最低仅需要一个php内置测试服务器即可运行
但是一看kod官网,却发现官方正在推下一代产品kodbox
看了看官方给出的介绍,kodbox完美覆盖kodexplorer的功能,而且移动端做到了全功能支持,还额外支持webdav挂载等NB功能
但是问题有二
- 必须安装数据库才能使用
- 不再支持直接访问文件,文件会被储存到数据库
- 在某些地方存在性能问题
考虑到termux下折腾一个完全没考虑过有傻逼玩家用手机运行,mysql又要折腾,众所周知我不会数据库。。。
所以果断kodexplorer,移动端用桌面端的页面或者单纯当成网盘用(就算这样,移动端的功能也是吊打FileGator的。不是FileGator不好,定位不一样,轻量级的能做到快速启动,但是论各种其他功能,比如在线预览,列表显示,个性化设置,文件分享,账户管理等方面,是真的不行(还有一个就是FileGator的移动端界面比KodExplorer还要屎
仿照FileGator脚本写kodexplorer脚本,换个文件夹照猫画虎放上去
pkill apache2
apache2
正确启动!
发达了同志们!
爽诶
于是开始从各个设备把资源集中到VIVO X21A上,清理储存空间
浩浩荡荡的大上传,开始了!