成功用手机搭建了一个博客,分享一下辛酸曲折的安装过程

2019-01-31 03:55:11 +08:00
 KasuganoSoras

昨天发了个帖子: https://www.v2ex.com/t/531762 尝试了一下在华为畅享 8 上安装 Linux Deploy 运行 CentOS 7 ARM,然后安装 LNMP。用了几个小时的时间终于是装好了,现在正常运行中。

博客地址: https://blog.tcotp.cn/ 是一个 Hexo 的静态博客。

使用 Sakura Frp 做了内网穿透,因为是国内服务器,没有备案,请用 https 访问。

下面介绍一下安装经过,篇幅较长,慢慢看

一、刷机

之前这部手机是装电信宽带送的,送了我两部,另一部比较小拿来听歌用,这一部比较大用来备用(我平时用的是华为 Mate8 和另一部 iPhone 6s)。去年这部畅享 8 就拿到手了,当时在百度和 Google 都没有 Root 的方案,但是我花了 10 块钱上淘宝搞了个解锁码,成功把手机解锁了。

前天晚上 12 点多,无意中在华为的花粉俱乐部发现有人发了个带 Root 的 ROM,感觉不错就下载下来试着刷了一下,刷完正常开机,感觉还是 OK 的,但是很快我就发现没这么简单!主屏翻了一页以后,看到了一大堆预装软件,并且是删不掉的!这就很蛋疼了。于是我尝试用幸运破解器删除,结果发现没有作用。再次尝试使用 RE 文件管理器手动进入 /system/app/priv-app/ 删除应用,删除成功。

刚想着终于除掉了这些预装应用,可以开始玩耍了,打算重启插个手机卡。卡插上去,开机,发现卡在第一屏了,一动不动,强制重启,按住电源键 + 音量上,进入 Recovery,恢复出厂设置,格式化 Cache 分区,再开机,依然进不去。无奈只能重新刷一次机,刷完之后按照上面的步骤再次尝试删除预装应用,结果还是发生了无法开机的情况!一脸懵逼,于是我再尝试直接修改 system.img ,删除掉预装应用再刷机,结果刷完直接开不了机……服了。

再回到花粉俱乐部,寻找相关解决方案,再次发现了这个作者发的另一个刷机包,和之前那个不同的是,这个是基于 215 版本制作的,而我之前刷的是 211,抱着试一试的态度我又尝试下载了这个刷机包。刷完了以后,又准备开始卸载预装,这回我没有用手动删除文件的方法,因为我突然想起来一个好方法:adb。

连上数据线,打开 USB 调试模式,adb devices 列出设备,然后 adb shell 连接终端。这时候需要打开 SuperSU,因为不启动它的话权限申请提示框不会弹出来。回到 Shell,输入 su 提升到 root 权限,接着用幸运破解器查看想要卸载的软件包名,例如预装了个 360 安全卫士,包名是 com.qihoo360.mobilesafe,使用命令 pm uninstall -k --user 0 com.qihoo360.mobilesafe 强制卸载它,OK,卸载成功。

很快,所有预装的垃圾软件都卸载了,尝试一下重启手机,正常启动,正常进入系统。

二、安装 Linux Deploy

装完机,安装谷歌三件套,然后在 Google Play 下载 Linux Deploy。下载完后,配置容器环境,储存模式为目录,然后开始执行容器安装,安装只用了几分钟,然后点击启动,出现了几个 fail,然后尝试连接 SSH,失败。

一开始以为是架构选错了,但是查了一下畅享 8 的高通骁龙 430 是支持 Aarch64 的啊……于是换成了 armfs 再尝试安装了一次,还是失败。最后想了一下,是不是储存模式不能是目录?于是换成了镜像模式再试一次,这回成功安装和运行,全部显示 done。

三、安装 LNMP

一开始打算用 OneinStack 的,但是发现安装到一半就报错,看起来是不支持 ARM 设备。

于是打算用 yum 安装,结果发现软件版本都太老了…… PHP 版本居然还是 5.2,Nginx 还是 1.12 ,只好自己来编译了。从官网下载 PHP 源码开始编译,下载的版本是 7.3.1,首先 configure 用了两分钟,然后提示缺少 libxxxx,用 yum 命令安装,然后再执行 configure... 又提示缺少 libxxxxx... 一共执行了十几次 configure,耗时接近 40 分钟。

接着是编译 PHP,make 第一次用了二十多分钟,最后编译失败,换了个参数再次编译,用了半个多小时,编译成功。然后安装 Composer,结果发现执行 require 的时候提示要 php_zip 扩展,于是我又得去编译个 php_zip 扩展,结果编译的时候提示我需要 libzip,只能用 yum install libzip,安装完再编译又提示版本太低!!!又得去官网下载最新版的 libzip,编译的时候又提示需要 cmake !!!又去下载编译了一个 cmake ……前前后后总共用了两三个小时!

终于把 cmake 装好了,开始编译 libzip,编译成功了!接着开始编译 php_zip 扩展,结果编译失败!仔细看了看报错,再复制到 Google 搜了一下,并没有什么结果,于是看了看源码报错的地方,注释掉了两行代码,再次编译成功了(但是不知道这样会不会出什么问题)

好……我忍着终于把 Composer 装好了,然后安装 Mariadb 和 Redis,因为官方提供的二进制版本没有 ARM,只能自己编译,下载了几十 MB 的源码开始编译,耗时 1 小时 35 分钟编译完成。

配置 LNMP

由于是运行在容器里,当执行 systemctl 或者 service 类的命令时,都会提示 Running in chroot, ignore request. 这个问题是没法解决的,只能在前台运行。

于是使用 screen 将 mariadb 和 redis 放在后台运行,接着是各种蛋疼的配置,使用了 php-fpm 运行,我找了我另一台机子的 php.ini 复制过来,改一改配置就可以了。

Mariadb 我是第一次用源码编译安装,所以装的时候一脸懵逼,上 Google 找了很多安装教程,用了二十多分钟搞定了。

小插曲

我为了能够读取手机本身的文件,设置了将 / 挂载到容器的 /mnt/rootfs,结果我在容器里手贱执行了一下 chmod -R 771 /mnt/rootfs/data/*

然后……然后我发现我手机几乎所有的应用都打不开了……我慌的一批

好在系统设置还能打开,进入设置启用 adb,然后电脑链接,定位到 /data 下,执行 chmod -R 777 ./ 成功挽救。

搭建网站

一开始装了个翼龙面板,这是一个游戏管理面板,装来没啥意义,只是截图给群里那些人看看,装逼用 2333

然后就没有然后了,装完面板就是第二天的中午 12 点了,我通宵了 12 个小时!一觉醒来就到下午 6 点了,起来随便吃了点东西继续研究,然后想着搭个博客玩玩,于是装了个 Hexo,很轻松,几分钟就搭建好了。

总体而言,安卓机 Root 了以后可玩性还是很高的,特别像我这种喜欢捣鼓各种设备的人来说是最好的。各位有兴趣的话也可以试试,利用自己闲置的手机来搭个小网站之类的还是可以的。

写完这篇帖子,又快 4 点了,所以我打算先去睡个觉,晚(早)安各位。

—— 完 ——

11633 次点击
所在节点    程序员
62 条回复
Archeb
2019-01-31 03:58:55 +08:00
真能折腾................给耐心点个赞
IllBeBack
2019-01-31 05:08:28 +08:00
想起了我年轻的时候,那时候玩的是 多普达
irainsoft
2019-01-31 05:14:50 +08:00
Play Store 里有一些 lnmp 的 app,之前各种试过,有一两个还是能用的
yuikns
2019-01-31 05:49:45 +08:00
感觉现在玩 raspberry pi 的不太多了啊。手机性能好太多,没有串口大多数时候似乎也没那么重要了
Trumeet
2019-01-31 06:29:01 +08:00
何必呢,Raspberry Pi 都会好点
asdqaz
2019-01-31 07:17:18 +08:00
国内服务器才需要备案
precisi0nux
2019-01-31 07:41:13 +08:00
搭个 hexo 直接用 github pages 不就好了。
Hazurt
2019-01-31 08:05:00 +08:00
自家宽带搭网站安全么?试着在自家搭了几个网页,偶尔有顺着 ip 造访的,比较担心路由出现问题影响正常使用。
xiri
2019-01-31 08:05:53 +08:00
额,,,你花了那么长的时间编译 php 和 mariadb,结果搭了个静态博客?
搭静态博客不是编译个 nginx 就够了嘛,,,,,,
KasuganoSoras
2019-01-31 08:06:34 +08:00
@Hazurt #8 这些通常是扫爆的,只要网站自身做好防护,屏蔽掉不用的端口即可
LokiSharp
2019-01-31 08:08:32 +08:00
用 Ubuntu 就没自己编译的事情了
Wyane
2019-01-31 08:09:11 +08:00
先收藏了,有机会试试看
KasuganoSoras
2019-01-31 08:17:59 +08:00
@xiri #9 为了搭建一个 Pterodactyl 翼龙面板,这个是 PHP 写的
xuanbg
2019-01-31 08:23:09 +08:00
装个 docker,然后就没有那么多环境问题了。。。
huangdayu
2019-01-31 08:35:13 +08:00
点赞
hly9469
2019-01-31 08:42:06 +08:00
为什么不 docker …
Kazuhira
2019-01-31 09:01:31 +08:00
centos 的话尝试一下 ius 源?
lzj307077687
2019-01-31 09:06:56 +08:00
想起上次树莓派 3b 装完 centos7 装 lnmp
php 编译了 3 小时....
MKDJOJO
2019-01-31 09:08:42 +08:00
不试试 ksweb ?
guoyuchuan
2019-01-31 09:10:25 +08:00
6

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/532019

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX