WRITING LOG · 03

技术博客

记录技术实践、问题排查和持续成长,把每一次解决问题的过程留下来。

WORKSPACE

文章阅读

安卓上跑Linux之termux方案
2022-05-30
最近周末空闲时间多了,想着折腾下闲置的N1盒子。盒子装的YYF安卓7,想着在上面装一个deploylinux结果开机自动启动容器一直无法成功,退而求其次选了运行效率低一点的termux。
termux无需设备root,但是限制也多一些。termux设置里面没有找到开机自启动的选项,还好盒子上的沙发管家设置里面有开机指定某个APP自动打开。把termux设置为自动打开以后发现了新的问题:ssh需要手动启动一次。想把sshd服务写到/etc/rc.local里面,结果发现即使用sudo或者root身份也无法编辑开机自启动文件。那只能再次退而求其次,选择在自己家目录~/.bashrc里面写sshd。对,在使用ssh前别忘了pkg install openssl。
然后又尝试了ngrok内网穿透,因为自己有搭建穿透服务,我先去服务器上编译了arm版本的ngrok客户端,然后在termux上启动,完全没有问题。但是后续发现要穿透服务常驻的话只能自己写个守护脚本,大致是这么写的:
XRK=`ps -aux|grep ngrok_arm| wc -l`
if [ $XRK -lt 1 ]; then
  ngrok -config=ngrok配置文件 要穿透的端口
fi
然后新的问题来了,termux的crontab定时服务也没有自动运行。只能先装crontab服务,然后运行crond。还是前面的思路,在.bashrc里面加crond。然后想到每次盒子开机都跳到termux黑窗口的话家里人看个电视可能会一头雾水。那就在ngrok守护进程if语句else里面加了一句exit,唯一不好的地方在于ngrok穿透服务没启动之前ssh会在连接的第一时间闪退出来,不过也问题不大,符合预期,将就用。
php在nginx下自定义40x、50x错误页面
2022-05-07
nginx默认的错误页面很简陋,要自定义错误页面就需要自己配置。当然,如果使用主流的比如tp、laravel这些php框架采用单入口模式是能自己配置错误页面。但.php后缀的文件依旧需要nginx的配置支持。配置如下:
  error_page 404 500 502 503 504 /50x.html;
  location = /50x.html {
    root  /你的项目根目录;
  }
  location ~* \.php$ {
    fastcgi_index  index.php;
    try_files $uri = 404;
    ......其他配置......
  }
要保证项目根目录下存在自定义的50x.html
斐讯N1盒子从armbian刷回安卓
2022-05-06
N1买回来已经折腾了有一段时间了,从最开始刷armbian5.77 debian到armbian5.8 ubuntu,换了几轮桌面用上了xfce。后面发现网页播视频太卡又加了opengl驱动。然后尴尬发现这盒子跑个chromuim开十来个页面就卡得不行,更别提装wps和vscode了。桌面是用不顺手又回到无图形模式,也就配合穿透做个小博客,跑跑文件服务啥的。最后发现还不如刷回安卓,就用yyf至少能流畅看看电视啥的。于是准备刷回去了。
1、先去下载安卓固件http://www.yyfrom.com/cms/yyfrom/product/2021-7-3/166.html。
2、电脑打开线刷工具USB_Burning_Tool,导入下载好的固件img文件,去掉擦写bootloader选项。
3、格式化掉开机引导。N1进入命令行模式,umount /dev/boot指向的目录(不知道的话就df -h查看,我的目录是/dev/mmcblk1p1),然后执行 mkfs.ext4 /dev/mmcblk1p1。
4、N1断电,用USB公对公连接到电脑和N1靠近HDMI的那个USB。N1通电后在电脑线刷界面看到有设备接入了,点开始按钮等进度条走完就可以了。