前言
旧安卓手机利用起来当个小服务器,部署点项目玩玩,也不用买树莓派了。
arm上安装lamp是真的坑多啊,折腾了一整天,终于搞定了,赶紧备份下系统。
- 机型:Huawei P8
- 配置:Kirin 935 + 3g + 64g
- 系统:LineageOS 14.1(Android 7.1.2)
安装列表
- Ubuntu 18.04 arm64
- JDK 1.8
- LAMP apache 2.4 | mysql 5.7 | php 7.1
- KodExplorer 可道云
- Seafile 云盘
1 安装 Linux deploy
2 部署 ubuntu 18.04 arm64
3 修改 源
sudo sed -i 's#http://ports.ubuntu.com/#http://mirrors.ustc.edu.cn/ubuntu-ports/#' /etc/apt/sources.list
sudo apt update
4 修改 bash
sudo sed -i 's#/home/android:/bin/sh#/home/android:/bin/bash#' /etc/passwd
5 安装 常用软件
sudo apt install -y vim git lrzsz wget screen unzip
6 设置 ROOT 密码
sudo passwd root
7 安装 JDK
arm64版本的jdk自行搜索下载下
tar zxvf jdk-8u201-linux-arm64-vfp-hflt.tar.gz
sudo vim /etc/profile
# set java environment
export JAVA_HOME=/opt/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile
8 安装 LAMP
参考:LAMP一键安装包
由于当前平台是arm64,LAMP一键安装脚本的作者并没有测试和支持arm平台,目前遇到的问题和解决方案已经列出。
-
问题1:
php选7.0.33版本会编译不通过,查阅资料发现应该是php7.0的一个bug,Bug#73898 ,然后选择 php-7.1.33版本编译通过。 -
问题2:
apache编译成功启动报错,咨询了脚本作者,是apr版本的问题,修改了 config.sh apr-1.7.0修改为apr-1.6.5,支持arm64,以下命令中clone的仓库地址我已经改为自己码云fork的仓库并修改了apr的版本。 -
问题3:
mysql不是编译安装的,所以除此之外,还要手动编译一个arm64平台的mysql。
git clone https://gitee.com/westinyang/lamp.git
cd lamp
chmod 755 *.sh
./lamp.sh
9 安装 MySQL 5.7
参考1:Linux Deploy Ubuntu 安装 MySQL
参考2:arm64架构下Ubuntu安装配置mysql5.7
安装或重装备份的系统时,需要重新执行以下命令才能启动mysql
ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Android使用了一个激活的特殊内核补丁CONFIG_ANDROID_PARANOID_NETWORK。此修补程序允许网络访问属于具有硬编码ID的特定特殊组的系统用户。
这是因为Android通常仅在特定应用具有网络权限时才将用户(即应用)添加到这些组
说是Android内核已使用CONFIG_ANDROID_PARANOID_NETWORK进行编译。可以通过将mysql用户添加到aid_inet和aid_net_raw组来修复它。
usermod -a -G aid_inet,aid_net_raw mysql
错误信息
本次使用的是参考1里面的教程,安装完会有个错误,但是貌似不影响mysql正常使用。
查到的解决方案是:ERROR: Package mysql-server-5.7 is not configured yet.
dpkg: error processing package mysql-server-5.7 (--configure):
installed mysql-server-5.7 package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-server-5.7; however:
Package mysql-server-5.7 is not configured yet.
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mysql-server-5.7
mysql-server
解决不用密码也能登录
安装完mysql发现不用输入密码也能登入,并且改了密码也没用。可能是arm版的问题多多吧,暂时不想那么多了,以下是解决方案。参考:https://www.jianshu.com/p/37f823e45496
mysql mysql -uroot
use mysql;
update user set authentication_string=PASSWORD("root") where user='root';
update user set plugin="mysql_native_password";
flush privileges;
quit;
/etc/init.d/mysql restart
mysql -uroot -proot
phpMyAdmin报错
参考:phpMyAdmin报错:mysqli_real_connect(): (HY000/2002): No such file or directory 错误正确解决方法
- 使用命令:
cat /etc/mysql/mysql.conf.d/mysqld.cnf
找到mysqld.sock位置:socket = /var/run/mysqld/mysqld.sock
- 修改php配置文件:
vim /usr/local/php/etc/php.ini
,修改内容如下:
pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock
mysqli.default_socket = /var/run/mysqld/mysqld.sock
解决 phpMyAdmin 的 “Configuration of pmadb…错误” 问题
10 安装 KodExplorer 可道云
上一步的LAMP一键安装脚本,选项中最后一项可选择安装。单独安装最新版待尝试...
11 安装 Seafile 云盘
还没尝试,先挂个参考链接:Seafile server on arm64 (aarch64). - WORKING