手机安装LinuxDeploy 使用总结 2019

手机安装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 启动初始化

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配置,利用反向代理,将内部测试服务器发布到外网
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容