正好手边 有一部几年前的手机,oppo n1 mini,平常它也没有事情干,看着它每天闲着躺尸,觉得它的人生太悲催了,不能这么懒啊,还不如装个linux做成服务器玩一下。大学的时候其实也用过安卓手机建站,准备还是尝试之前的方式。
准备
- 已经root的安卓手机一台
- busybox
- linux deploy
- SSH客户端(xshell等,安卓手机juicessh也是可以的)
- Sakura Frp
- 一颗爱折腾的心
安装linux环境
Linux我最熟悉的也就是Ubuntu了,所以就它了。
安装busybox
在安装之前需要先安装busybox框架,关于它的介绍网上一堆,这里就直接开始安装,如果你的手机是安卓5以下的,建议安装一个手机乐园客户端,在里面直接搜索busybox,没有前缀和后缀的那个就是,安装最新的版本就可以了。
安装之后点击install,给root权限。
部署linux
打开linux deploy点击右下角设置
容器类型:chroot
发行版:Ubuntu
架构:(用默认的就好)
发行版版本:xenial
源地址:由于官网太慢我们换成清华大学的开源镜像
1 | https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ # 清华大学开源镜像 |
安装类型:目录(选文件的话是img文件,之后服务器文件修改需要用sftp或ssh操作,选目录的话文件可以直接本地操作)
安装路径:默认路径为${ENV_DIR}/rootfs/linux,即安装在/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux目录下(选文件的话是储存在/Linux.img中)
用户名:(自己设置,之后作为Linux 的登录账户)
用户密码:(自己设置,之后作为Linux 的登录密码)
特权用户:root
DNS:自动(有特殊需求自己设置)
本地化:POSIX(有特殊需求自己设置)
初始化:不启用(有特殊需求自己设置)
挂载:不启用(有特殊需求自己设置)
SSH:启用
SSH设置:默认(有特殊需求自己设置)
声音服务:不启用(有特殊需求自己设置)
图形界面:不启用(有特殊需求自己设置)
[album type=”photos”]
[/album]
到此配置完毕,返回Linux deploy主界面 点击右上角选择安装=>OK。
终端输出 ‘>>>deploy’ 时,表示安装已开始。
根据网络速度,下载时间可能需要十分钟左右。
终端输出 ‘<<<deploy’ 时,表示安装已结束。
安装完成后可以按下方启动键启动。
[album type=”photos”]
[/album]
至此,完成系统部署。
安装WEB服务环境
安装宝塔面版
首先我尝试了使用对小白极其友好的宝塔面版。
因为是32位的安卓系统,所以只能安装宝塔5.9
1 | wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh |
如果无法安装,显示wget之类的错误,需要先安装wget
1 | sudo apt-get install wget |
然后再安装宝塔,等待安装完毕。
然后安装LNMP环境
然后我就发现宝塔面版可以正常启动,但是却无法安装任何的环境,然后我就决定直接手动编译安装lnmp环境。
换源
由于使用的是Ubuntu1604,且系统是基于arm架构的,国内的源很慢所以先换成清华大学镜像
安装nginx
首先来到官网下载:http://nginx.org/en/download.html
可以直接使用wget下载或者使用ftp传过去
1 | wget http://nginx.org/download/nginx-1.16.1.tar.gz |
配置依赖
安装gcc g++的依赖库
1 | sudo apt-get install build-essential |
安装pcre依赖库(http://www.pcre.org/)
1 | sudo apt-get update |
安装zlib依赖库(http://www.zlib.net)
1 | sudo apt-get install zlib1g-dev |
安装SSL依赖库(16.04默认已经安装了)
1 | sudo apt-get install openssl |
编译安装
1 | #在shell里面通过命令解压 |
启动报错
nginx 启动报错 nginx: [emerg] getgrnam(“root”) failed
解决方式:打开/usr/local/nginx/conf/nginx.conf
添加user root root;
如果你可以使用vim的话,建议直接vim,我安装不了vim,所以使用ftp修改之后传回。
重新启动
1 | sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf |
没有消息则是说明没有问题,然后查看进程
1 | ps -ef | grep nginx |
配置软链接
1 | sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx |
现在就可以不用路径直接输入nginx启动。
配置开机启动
这部分参考:
https://www.cnblogs.com/EasonJim/p/7806879.html
https://www.cnblogs.com/piscesLoveCc/p/5794926.html
我就不再写了。
检查配置文件是是否错误
启动nginx
1 | cd /usr/local/nginx/sbin/nginx |
然后在浏览器访问手机的ip地址:192.168.31.151(这个取决于你的手机,建议设置一个静态ip)
出现以下解密则是启动成功。
常用命令
启动 Nginx
1 | /usr/local/nginx/sbin/nginx` `./sbin/nginx |
停止 Nginx
1 | ./sbin/nginx -s stop` `./sbin/nginx -s quit |
-s都是采用向 Nginx 发送信号的方式。
Nginx重新加载配置
1 | ./sbin/nginx -s reload |
指定配置文件
1 | ./sbin/nginx -c /usr/local/nginx/conf/nginx.conf |
-c表示configuration,指定配置文件
查看 Nginx 版本
有两种可以查看 Nginx 的版本信息的参数。第一种如下:
1 | ./sbin/nginx -v` `nginx: nginx version: nginx/1.0.0 |
另一种显示的是详细的版本信息:
1 | poechant@ubuntu:/usr/local/nginx$ ./sbin/nginx -V``nginx: nginx version: nginx/1.0.0``nginx: built ``by` `gcc 4.3.3 (Ubuntu 4.3.3-5ubuntu4)``nginx: TLS SNI support enabled``nginx: configure arguments: --with-http_ssl_module --with-openssl=/home/luming/openssl-1.0.0d/ |
检查配置文件是否正确
1 | poechant@ubuntu:/usr/local/nginx$ ./sbin/nginx -t``nginx: [alert] could not open error log file: open() ``"/usr/local/nginx/logs/error.log"` `failed (13: Permission denied)``nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax ``is` `ok``2012/01/09 16:45:09 [emerg] 23898#0: open() ``"/usr/local/nginx/logs/nginx.pid"` `failed (13: Permission denied)``nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed |
如果出现如上的提示信息,表示没有访问错误日志文件和进程,可以sudo(super user do)一下:
1 | poerchant@ubuntu:/usr/local/nginx$ sudo ./sbin/nginx -t``nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax ``is` `ok``nginx: configuration file /usr/local/nginx/conf/nginx.conf test ``is` `successful |
如果显示如上,则表示配置文件正确。否则,会有相关提示。
显示帮助信息
1 | poechant@ubuntu:/user/local/nginx$ ./sbin/nginx -h |
或者:
1 | poechant@ubuntu:/user/local/nginx$ ./sbin/nginx -? |
Sakura Frp 内网穿透
打开官网,使用邮箱注册登录。
创建隧道
使用方式参考https://moe.do/archives/sakurafrp_help.html#%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%BE%E7%BD%AE(Linux)
开启穿透
启动命令
1 | ./frpc_linux_arm -t 访问密钥 -s 服务器ID |
我测试的时候显示连接超时,服务有点崩了,所以就先放一个连接,万一启动成功了呢!
花生壳内网穿透
虽然花生壳流量少又贵,但是无奈只能尝试一下它喽!
下载客户端
因为架构是armhf,所以直接到官网下载树莓派的包
https://hsk.oray.com/download/
安装
1 | dpkg -i phddns_3.0.4_systemd.deb |
等待安装完成,然后配置就可以了!
话说我这个是在抽风嘛?
最后
其实还可以使用sunny-ngork来穿透,不过今天就先不折腾了,明天继续把内网穿透的事情给搞定。
如果你也在折腾,那么也许不会出现我这里的错误。