手机安装LinuxDeploy 使用总结 2019
linux deploy搭建环境时,从网上查阅了很多资料,感觉手机充当linux服务器时,性能差强人意。后来发现需要手机屏需要常亮,此时编译安装一些软件时,性能足够(多线程编译mysql会死机)。
如果是linux的初学者,用手机来充当服务器学习,是一个不错的选择(遇到问题,然后去解决)。
考虑到ARM下很多软件需要自己编译安装,安装部署效率较低。如果条件允许,用树莓派,台式机充当服务器,可以节约很多时间……
可以被root的手机也越来越少……
[TOC]
最初安装LinuxDeploy时,参考的文章:手机安装参考:【Linux Deploy】一、Linux Deploy安装配置使用教程 ,使用时需要注意的问题与总结:
- 在Linux Deploy设置中,Path里需要将BusyBox安装路径设置(默认/system/xbin)
- 启用允许挂载Android上的资源时,挂载点名称要注意,文档里名称,与自己手机使用的名称不一致(可通过文件管理工具查看)
- 下载网速是硬伤,安装系统时连接的国外服务器,有可能下载超时
- 不要从应用商店等下载apk,直接到github上,下载最新apk
以上问题,都可能造成ssh等服务启动失败,不能正常使用。
试用以后,决定将手机上部署centos,部署nginx服务器充当外网前置服务器:
- 亮屏使用时,部署的linux性能较好,关闭屏幕会使cpu等资源占用较高;
- 放弃使用宝塔面板安装nginx,mysql等;(宝塔面板的升级,在ARM架构下使用,会造成不必要的麻烦)
参考:
没有树莓派?没关系,手机也行!闲置安卓设备打造智能家庭中枢
MaxBill :【Linux Deploy】二、Linux Deploy上安装JDK和MYSQL
linux deploy 挂载安卓上的资源
使用环境
手机 一加3 centos
两个笔记本,一台centos8,一台win10
华为路由器,增加花生壳,映射http到手机http端口
使用ssh访问linux deploy上部署的centos
以前没有注意ssh提供了文件上传命令行工具scp,下载了xshell进行文件传输,如果是单独文件或目录,没有必要使用xshell。
推荐一款windows下的命令行终端工具:Cmder
Cmder is a software package created out of pure frustration over the absence of nice console emulators on Windows. It is based on amazing software, and spiced up with the Monokai color scheme and a custom prompt layout, looking sexy from the start.
前置服务器安装说明(linux deploy centos)
手机root
手机安装 BusyBox app
https://github.com/meefik/busybox/releases/download/1.31.1/busybox-1.31.1-44.apk
应用界面,选择install(使用默认配置/system/xbin)
手机安装 linux deploy
https://github.com/meefik/linuxdeploy/releases/download/2.5.0/linuxdeploy-2.5.0-255.apk
修改linux deploy配置
linux deploy界面,选择左上角图标-配置:
属性 | 配置 |
---|---|
屏幕常亮 | 选中 |
锁定Wi-Fi | 选中 |
CPU唤醒 | 选中 |
PATH变量 | 与BusyBox中配置一致 /system/xbin |
修改后选择“更新环境”,保存配置。
修改linux安装属性
linux deploy界面,选择右下角图标:
属性 | 配置 | 说明 |
---|---|---|
发行版本 GNU/Linux | Centos | |
架构 | aarch64 | 可以通过linux deploy右上角图标-状态,查看手机cpu架构 |
发行版本呢 | 7 | |
镜像大小 | 10000 | |
文件系统 | ext4 | |
用户名 | ssh登陆时使用 | |
用户密码 | ||
本地化 | zh_CN.UTF-8 | |
启用 允许使用初始化系统 | 启用 | centos系统安装后,根据需要启用,修改/etc/rc.local,增加启动项 |
启用允许挂载android上的资源 | 选中 | |
挂载点列表 | /mnt/sdcard:/mnt | 源名称:挂载点名称 注:不同手机名称不一样,可以通过ES文件查看工具查看 |
启用SSH服务器 | 选中 |
安装centos
linux deploy右上角图标-安装
配置服务器
安装依赖项
sudo yum install net-tools
sudo yum install wget unzip
sudo yum install make cmake gcc gcc-c++
sudo yum install openssl-devel
安装nginx
nginx doc: Building nginx from Sources
- 源码安装nginx
# 安装openssl-devel
sudo yum install openssl-devel
# 源码安装pcre(openssl-devel中已包含pcre-level,与nginx文档指定版本不一致)
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar xvzf pcre-8.43.tar.gz
cd pcre-8.43
./configure
make
sudo make install
# 源码安装zlib(openssl-devel中已包含zlib-devel,与nginx文档指定版本不一致)
wget http://zlib.net/zlib-1.2.11.tar.gz
tar xvzf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
sudo make install
# 源码安装nginx,注意pcre,zlib路径
wget http://nginx.org/download/nginx-1.17.6.tar.gz
tar xvzf nginx-1.17.6.tar.gz
cd nginx-1.17.6
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.11
make
sudo make install
- 安装后主要文件路径
文件 | 说明 | 路径 |
---|---|---|
nginx | 主程序 | /usr/local/nginx/nginx |
nginx.conf | 配置文件 | /usr/local/nginx/nginx.conf |
- 修改配置nginx.conf
# nobody改为root
user root;
# 其它访问配置参照禅道nginx配置
- 测试服务器
sudo /usr/local/nginx/nginx
安装php-fpm
sudo yum install php-fpm
修改配置 /etc/php-fpm.conf
daemonize = yes
主要文件路径
文件 | 说明 | 路径 |
---|---|---|
php-fpm.conf | 配置 | /etc/php-fpm.conf |
www.conf | 配置 | /etc/php-fpm.d/www.conf |
php-fpm | 主程序 | /usr/sbin/php-fpm |
源码安装mysql
注:安装的数据库版本是5.6,版本5.7在aarch64架构下编译有问题
- 源码下载,编译,安装
# 依赖项
sudo yum install ncurses-devel
# mysql官网速度较慢,从其它网站下载
wget http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.6/MySQL-5.6.46-1.el7.src.rpm
# 不添加指定路径,rpm会安装到home目录
rpm -ivh MySQL-5.6.46-1.el7.src.rpm
cd rpmbuild/SOURCES/
tar xvzf mysql-5.6.46.tar.gz
cd mysql-5.6.46
cmake .
make
sudo make install
- 添加数据库用户
sudo groupadd mysql
sudo useradd -r -g mysql mysql
# 修改mysql目录拥有着
sudo chown -R mysql:mysql /usr/local/mysql/data/
sudo chown -R mysql:mysql /usr/local/mysql/
useradd -r表示mysql用户是系统用户,不可用于登录系统
useradd -g表示把mysql用户添加到mysql用户组中
- 初始化数据库
sudo yum install perl
sudo yum install perl-Data-Dumper
sudo /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
- 修改配置文件
配置文件:/usr/local/mysql/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
bind-address = 127.0.0.1
server_id = 1
socket = /var/lib/mysql/mysql.sock
- mysql注册服务
# 注册服务
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo chkconfig mysql on
# 启动mysql
sudo service mysql start
- 修改管理员密码
/usr/local/mysql/bin/mysqladmin -u root -h localhost password '123456'
参考:
来源:Linux社区 作者:kylinlin CentOS 7下源码安装MySQL 5.6
注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!
注:在CentOS 7版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
注:在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
部署禅道系统
# 少了这个配置项,php 使用IP地址连接不上MySQL,连接数据库时会出现以下异常
# 数据库连接失败 SQLSTATE[HY000] [2003] Can't connect to MySQL server on '0.0.0.0' (13)
sudo setsebool -P httpd_can_network_connect=1
注:linux deploy下 SELinux相关操作实效,参数httpd_can_network_connect不能修改,连接mysql采用UNIX套接字方式。
- 下载禅道并解压到web目录
cd /usr/local/nginx/html/
sudo wgte http://dl.cnezsoft.com/zentao/11.6.5/ZenTaoPMS.11.6.5.zip
sudo unzip ZenTaoPMS.11.6.5.zip
- 修改nginx配置
/usr/local/nginx/nginx.conf
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name zentaopms;
#charset koi8-r;
#access_log logs/host.access.log main;
root html/zentaopms/www/;
location / {
index index.html index.htm index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
}
- 重启nginx,配置禅道
通过浏览器访问手机nginx网站,根据禅道系统提示,修改php等配置:
修改/etc/php.ini
# 增加
session.save_path="/var/lib/php/session
# 创建session存储目录
sudo mkdir -p /var/lib/php/session/
sudo chmod o=rwx -R /var/lib/php/session
# php插件
sudo yum install php-pdo
sudo yum install php-mysql
sudo yum install php-mbstring
- 重启php-fpm (kill 进程方式关闭php-fpm), 完成禅道配置
centos 启动初始化
- 修改linux deply设置,参考 LinuxDeploy里的Ubuntu自启动nginx(适用于其他软件)
1.点击右下角的设置图标进入设置界面
2.“初始化”选项,“启用”打上勾
- centos中修改/etc/rc.local
# 末尾增加启动项
/service mysql start
/usr/sbin/php-fpm
/usr/local/nginx/nginx
- 修改rc.local权限
sudo chmod 755 /etc/rc.d/rc.local
- 重启centos容器
TODO
- 搭建ftp文件服务器,将上传下载的文件直接保存到手机sdcard(利用挂载点),避免linux deploy部署的linux删除后,上传文件被删除。
- 利用nginx静态页面,发布个人博客(利用docify博客系统创建)
- 熟悉nginx配置,利用反向代理,将内部测试服务器发布到外网