手机需要root
需要root权限,请自行寻找root方法。
手机上的操作
我用的手机是小米10pro,其他手机应该也能用相同的方法安装成功。
安装Linux Deploy,然后给它root权限。
Linux Deploy.apk(17.10 MB)
点击左上角的菜单按钮。
点击+号,创建一个名为debian的配置文件。如果已经有了名为debian的配置文件,选择它即可。
返回首页,点击右下角的配置按钮。
按如下配置(没有提到的选项保持默认):
发行版: Debian
架构: arm64
(如果手机不支持64位,选择armhf)
发行版版本: buster
源地址: http://mirrors.tuna.tsinghua.edu.cn/debian/
(如果要用其他源,注意得选择支持arm64的源。阿里云镜像不支持arm64,安装时会得到404错误)
安装类型: 目录
安装路径: /data/linux/debian
(debian的文件会保存在这个文件夹,可以用安卓的root文件管理器往里面复制文件)
用户名: android
(可以改成你想要的,下文中的android都得改成你这里设置的用户名)
用户密码: 123456
(可以改成你想要的,下文中的123456都得改成你这里设置的密码)
特权用户: 不用改,改了也没用,会被自动改回来
本地化: zh_CN.UTF-8
DNS: 自动
初始化-启用: 勾选
(注意这个一定要勾选,否则宝塔不能自启动)
初始化系统: sysv
(注意这个一定要选对,否则宝塔不能自启动)
SSH-启用: 勾选
长图:
返回到首页,点击右上角的下拉按钮。
点击安装。
等出现<<< deploy,说明安装好了,点“启动”。
如果看到:: Starting extra/ssh ... done字样,说明SSH启动好了,可以去连接了。
注意不是下面的ssh ... done,这个即使变成ssh ... fail也没关系,因为上面那个extra/ssh才是真正的SSH服务。
注意,首页顶部显示的IP可能不是手机的WiFi IP,而是数据网络的IP,使用该IP可能无法连接到手机(比如这里是10.131.37.68)!
手机的WiFi IP应该去WiFi状态页面查看(比如我的WiFi IP是192.168.144.177,等下连接SSH时就用这个):
电脑上的操作
如果你没有电脑,也可以在手机上完成后续操作。你可以在手机上安装JuiceSSH来连接SSH服务。不过,因为在电脑上操作更方便,所以后续步骤我会在电脑上完成。
使用你喜欢的SSH客户端连接到手机上已经启动的SSH服务,使用以下信息:
主机名: 手机的WiFi IP,比如我的是192.168.144.177
端口: 22
用户名: android (如果你改了,换成你自己的)
密码: 123456 (如果你改了,换成你自己的)
比如我使用SSH命令连接:
安装wget,然后使用宝塔官方安装教程中的Debian安装命令安装宝塔:
sudo -i apt update apt install wget wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
注意:安装时手机不要锁屏,否则安装速度会变慢!只要一直处于Linux Deploy应用界面,手机就不会自动锁屏(但是OLED不要连续几天不锁屏,否则可能会有烧屏问题。降低亮度有助于避免烧屏)。
等宝塔、PHP和MySQL等都安装完了就可以锁屏,网站运行慢点就慢点,不会有太大的影响。
不过,如果你的手机锁屏后会断开WiFi,则必须禁用该功能。
等待宝塔安装完成。注意Building wheel for gevent (setup.py) ...需要很久时间才能完成,因为涉及到代码编译。不要觉得是卡死了。
如果你觉得卡住了,不知道安装程序在做什么,你可以打开另一个SSH窗口,然后安装htop任务管理器:
sudo -i apt install htop htop
这样你就能看到安装程序在做什么了。
按q退出。
宝塔安装好了,用时约30分钟。可以去浏览器打开宝塔面板了。
不要急着关闭SSH。安卓和GNU/Linux不同,需要手动授权才能让采用非默认用户启动的进程联网,所以待会儿还要用到SSH。
注意:这里的内网面板地址显示的还是数据网络IP,不是WiFi IP。地址中的10.164.145.41得替换成192.168.144.177,我才能打开。
不用担心我密码泄露,我待会儿就删了这个宝塔。不过你可不能把这个信息共享给别人。
浏览器内的操作
访问面板地址,输入用户名密码登陆。
比如我的面板地址是: http://192.168.144.177:8888/a71ce884
用户名和密码都显示在SSH里了。
一键安装LNMP,但不要安装FTP。如果你真的要使用类似FTP的功能,可以使用SFTP(基于SSH的FTP)代替,无需安装,只要启动了SSH服务就可用。Windows里可以使用WinSCP来连接,登陆方式同SSH。
我不会介绍让FTP正常工作的方法,所以如果你一定要安装FTP,请自行寻找让其正常工作的方法。
等待安装完成。注意手机不要锁屏,否则安装速度会变慢!只要一直处于Linux Deploy应用界面,手机就不会自动锁屏(但是OLED不要连续几天不锁屏,否则可能会有烧屏问题。降低亮度有助于避免烧屏)。
安装完了,花了约40分钟。
现在进入软件商店>已安装里看看,你会发现MySQL没启动。就算你点击启动,MySQL也启动不了,因为它现在没有访问网络的权限。
我说过,安卓和GNU/Linux不同,需要手动授权才能让采用非默认用户启动的进程联网。现在让我们回到SSH。
SSH里的操作
给nginx、MySQL、php-fpm等组件必要的权限:
sudo usermod -a -G aid_inet,aid_net_raw www sudo usermod -a -G aid_inet,aid_net_raw mysql
解释:
nginx和php-fpm是用www用户运行的,所以第一行结尾是www。
mysql是用mysql用户运行的,所以第二行结尾是mysql。
把用户加入某个aid_开头的组,用户就获得了该组所具有的权限。
aid_inet代表通过IP协议联网的权限,aid_net_raw代表发送/接受以太网原始数据帧的权限(比如ping操作就需要该权限)。
完整的权限用户组可以用以下命令获得:
cat /etc/group | grep aid
为了让新加的权限生效,必须在Linux Deploy里点停止再点启动才行。单单在宝塔里重启服务是无效的。
sendmail服务我们并不需要,而且它启动要很久的时间,所以我们可以把它卸载了:
sudo apt purge sendmail sendmail-bin
有个文件夹/var/lock/subsys需要手动创建一下,否则在宝塔里重启某些服务(比如memcached)时可能会报错。
sudo mkdir -p /var/lock/subsys
手机里的操作
打开Linux Deploy,点底部的“停止”,再点底部的“启动”。
如果你看到以下内容:
mysqld ... done php-fpm-xx ... done …… bt ... done nginx ... done
说明所有组件都启动成功了。其中的bt是宝塔面板,并不是蓝牙。
浏览器内的操作
现在再回到面板,所有组件就都是启动状态了。可以愉快的使用了。
常见问题
问:MySQL的默认root密码是什么,我用了面板上给出的,不对,无法登陆PHPMyAdmin。
答:默认root密码是空,面板显示的不对,而且PHPMyAdmin禁止空密码登陆。
不过,你只需要在面板上修改一次root密码,就可以登陆了。输入一个新密码,或者点输入框后面的重置按钮随机生成一个,然后点击提交即可。
问:我在Linux Deploy点启动时为什么没有看到mysqld,php-fpm-xx,bt和nginx?
答:你可能选错了初始化系统,必须选sysv:
安装完成后再改也可以,改完点停止再点启动就能生效。
问:我装了memcached,启动不了怎么办?
答:memcached使用memcached用户运行,但是它仅使用该用户,不使用用户组。所以无法通过前面提到的方法给它授予访问网络的权限。
最简单的解决方法是改用aid_inet用户运行,如图所示:
此外如果遇到以下错误:
警告消息: touch: 无法创建 '/var/lock/subsys/memcached': 没有那个文件或目录
运行以下命令可解决:
sudo mkdir -p /var/lock/subsys
问:我的PHP连不上memcached怎么办?或者看起来好像连上了,但是完全获取不到里面的数据!
必须给运行php-fpm进程的用户(默认是www)联网权限,否则它就连不上memcached,但是它也不会报错,只会静默失败。
可以用以下命令授权:
sudo usermod -a -G aid_inet,aid_net_raw www
然后手机上打开Linux Deploy,点底部的“停止”,再点底部的“启动”,让授权生效。
问:为什么网站根目录的.user.ini文件删不掉也不能修改?
答:该文件被设为禁止修改、禁止删除。用以下命令可以解除:
cd /www/wwwroot/网站目录名 sudo chattr -i .user.ini
然后你就可以修改、删除它了。修改完后,请务必再次加锁,防止内容被恶意PHP程序修改:
sudo chattr +i .user.ini
问:宝塔的防火墙功能似乎无效?
答:对,因为Debian默认使用systemd启动ufw防火墙,但安卓不支持systemd,所以只能使用sysv,从而导致ufw防火墙默认无法启动。
如果你想启动防火墙,可以运行以下命令:
sudo apt install sysv-rc-conf sudo sysv-rc-conf ufw on
然后手机上打开Linux Deploy,点底部的“停止”,再点底部的“启动”,让防火墙自启动。
但是,防火墙依然可能会不生效,因为ufw设置防火墙规则的方法可能和安卓不兼容。如果真的出现这种情况,你可以再关闭ufw的自启动:
sudo sysv-rc-conf ufw off
安装一个WordPress,试试宝塔的功能是否正常
创建一个新网站
通过SSH下载、解压WordPress程序
sudo -i cd /www/wwwroot/wordpress wget https://cn.wordpress.org/latest-zh_CN.tar.gz tar --strip-components=1 -xf latest-zh_CN.tar.gz chown -R www:www .
出现以下提示是正常的,忽略即可:
chown: 正在更改'./.user.ini' 的所有者: 不允许的操作
开始WordPress安装:
登陆WordPress:
评论