antium 发表于 2020-2-13 01:53

旧安卓手机利用Deploy挂载nextcloud

本帖最后由 antium 于 2020-2-14 16:02 编辑

条件: 1. 可root 安卓手机,关闭省电类软件,系统越简单越好! (内存最好2G+ 本人Meizu pro6 4+64)
2. 手机app: busybox deploy;
3. 电脑软件:xshell 或 putty hfs
4. 域名(腾讯云1元申请附证书)动态域名(花生壳)也行,我做法是腾讯云域名解析到动态域名上
5. 最好公网IP,路由器支持upnp或DMZ
6. nextcloud包,版本随意,我用16(电脑到官网先下载,再用hgs上传)
7. 配置文件里每个字符都必须准确无误

过程:
1. 安装配置busybox,deploy;2. 安装系统;3. 搭建lamp 4. 建立数据库 5. 上传nextcloud 6. 配置apache文件 7. 登录nextcloud 8. 逐步完善优化

一、配置deploy
如何配置可以百度一下,这说下细节
1. 设置里的path变量对照busybox
2. 属性linux,发行版选ubuntu,源默认;发行版rootfs是还原系统时用
3. 属性镜像大小4G+,以后可以调
4. 属性初始化启用一定勾上,初始化系统选择:sysv
5. 属性挂载启用勾上,具体以后详说
6. 属性SSH勾上
配置好,点安装,大概安装1小时。
安装好后,点启动。其余工作以后都在电脑上完成
电脑用putty或xshell连接手机

二,添加源
安装vim:
apt-get install vim wget screen

编辑 /etc/apt/sources.list
vim /etc/apt/sources.list

添加下面两行,保存退出
deb http://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe multiverse
deb-src http://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe multiverse


三. 安装lamp
建议一键安装,到https://lnmp.org/auto.html,架构LAMP, mysql5.6, php7.3, apache2.4,离线 生成命令,复制
screen -S lamp
"粘贴命令“

注:lamp要两小时左右,用screen以防电脑连接中断。lamp装好后,浏览器打开电脑ip,看到一键和php info的话,说明装好了

四,重设mysql密码 一键装好后,mysql受容器限制并不完整,密码错误
vim /etc/my.cnf 在下添加两行user = rootskip-grant-tablesservice mysql restart

mysql -uroot -p#password处直接回车
show databases;use mysql;update user setPassword="*84AAC12F54AB666ECFC2A83C676908C8BBC381B1";#设置密码为“12345678”\q
vim /etc/my.cnf 把skip-grant-tables那行删了,保存退出service mysql restart
五 建立nextcloud数据库mysql -uroot -p #密码12345678CREATE DATABASE nextclouddb; #建立nextcloud数据库CREATE USER 'nextcloud'@'localhost'IDENTIFIED BY 'password';#创建Nextcloud的用户名和密码GRANT ALL PRIVILEGES ON nextclouddb.* TO'nextcloud'@'localhost'; #授予权限FLUSH PRIVILEGES; #权限表重新加载\q
六 用hgs上传nextcloud包nextcloud拖入hfscd /tmpwget http://192.168.0.xxx/nextcloud.zip   #192.168.0.xxx为电脑ip,下同unzip nextcloud mv /tmp/nextcloud /home/wwwroot/chown -R www:www /home/wwwroot/nextcloudchmod -R 777 /home/wwwroot/nextcloud
七 配置apache ,80端口的,443端口可以跳开vim /usr/local/apache/conf/vhost/nextcloud.conf
Alias /nextcloud "/home/wwwroot/nextcloud/"<Directory /home/wwwroot/nextcloud/>Options +FollowSymlinksAllowOverride All<IfModule mod_dav.c>Dav off</IfModule>SetEnv HOME /home/wwwroot/nextcloudSetEnv HTTP_HOME /home/wwwroot/nextcloud</Directory>
保存退出,重启apache
service httpd restart

浏览器输入192.168.0.xxx/nextcloud,出现nextcloud登录界面,这样nextcloud基本完成
路由器已做端口映射,可以尝试外网登录

假如有域名的,也可以编辑成如下,直接域名登录
<VirtualHost *:80>
   ServerAdmin admin@example.com
   DocumentRoot /home/wwwroot/nextcloud/
   ServerName example.com
   ServerAlias www.example.com

   Alias /nextcloud "/home/wwwroot/nextcloud/"

   <Directory /home/wwwroot/nextcloud/>
      Options +FollowSymlinks
      AllowOverride All
      Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
      SetEnv HOME /home/wwwroot/nextcloud
      SetEnv HTTP_HOME /home/wwwroot/nextcloud
   </Directory>

   ErrorLog /home/wwwlogs/nc_error.log
   CustomLog /home/wwwlogs/nc_access.log combined

</VirtualHost>


八 443端口的,https登录,举例
cd /usr/local/apache/
mkdir crt
wget http://192.168.0.xxx/example.com.key
wget http://192.168.0.xxx/example.fullchain.crt

vim /usr/local/apache/conf/httpd.conf,
#Include conf/extra/httpd-ssl.conf的#删去

vim /usr/local/apache/conf/extra/httpd-ssl.conf
把Mutex sysvsem default这行删去!!

vim /usr/local/apache/conf/vhost/nextcloud_ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
   ServerAdmin admin@example.com
   DocumentRoot /home/wwwroot/nextcloud/
   ServerName example.com
   ServerAlias www.example.com

   Alias /nextcloud "/home/wwwroot/nextcloud/"

   <Directory /home/wwwroot/nextcloud/>
      Options +FollowSymlinks
      AllowOverride All
      Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
      SetEnv HOME /home/wwwroot/nextcloud
      SetEnv HTTP_HOME /home/wwwroot/nextcloud
   </Directory>

   ErrorLog /home/wwwlogs/nc_error.log
   CustomLog /home/wwwlogs/nc_access.log combined

SSLEngine on
SSLCertificateFile /usr/local/apache/crt/example.fullchain.crt
SSLCertificateKeyFile /usr/local/apache/crt/example.com.key

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
</VirtualHost>
</IfModule>


安装完成



antium 发表于 2020-2-13 01:53

本帖最后由 antium 于 2020-2-21 21:45 编辑

旧电脑装群晖,旧手机挂不了群晖,就只好挂Nextcloud
喜欢Nextcloud有几点:1. 支持WdbDAV,电脑用NetDrive映射成本地磁盘
2. 做cardDAV服务器,可以备份同步手机联系人
3. 支持在线看文档看图,打包下载
4. 可以与群晖同步备份

系统优化,让它飞起来
Deploy系统可以备份吗?
可以的,在安装里有个导出,把整个镜像打包成tar.gz

那如何还原呢?
在属性,发行版选rootfs.tar,再重新安装,就是还原

镜像可以调整大小?
还原时,把镜像调整后,再安装

系统可以挂载SD卡,或目录吗?
属性里,挂载启用,挂载点列表,
上行填SD卡的绝对路径(路径用ES类app看),卡先新建个文件
下行填linux系统目录
进入系统查看目录,看新建的文件在否,在的话,说明挂载成功如果让nextcloud访问,还得要chown chmod改下权限

Nextcloud
登录时,不信任域名或IP提示,编辑nextcloud/config/config.php,在'trusted_domains' =>下方按格式填入ip域名,保存退出生效

lnmp 1.6目录在/etc/apt/lnmp1.6,也可能在/home/android目录里,大部分优化可以参考下方网址
https://nico.cc/archives/72/

后台任务优化
crontab -u www -e
*/15 * * * * php -f /home/wwwroot/nextcloud/cron.php

service cron start

vim /etc/rc.local,加入一行
service cron start

HTTP的请求头 "Strict-Transport-Security" 未设置为至少 "15552000" 秒.
在/usr/local/apache/conf/vhost/nextcloud.conf加入一行,重启httpd服务生效
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
service httpd restart

安装app
到https://apps.nextcloud.com,
下载对应版本,解压放到/home/wwwroot/nextcloud/apps目录
设置权限,如下载的contacts,chown -R www:www contacts; chmod -R 777 contacts
再回到应用,启用就好

mysql支持4字节
mysql> show variables like 'innodb_file_format';
如果 innodb_file_format 是‘Antelope' ,那需要改为Barracuda
mysql> SET GLOBAL innodb_file_format=Barracuda;
mysql> \q

vim /etc/my.cnf
在段最后加入
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1

重启mysql服务
service mysql restart

mysql> ALTER DATABASE nextclouddb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> \q

$/home/wwwroot/nextcloud/ sudo -u www php occ config:system:set mysql.utf8mb4 --type boolean --value="true"
$/home/wwwroot/nextcloud/ sudo -u www php occ maintenance:repair

同步联系人
apps.nextcloud.com下载contacts插件,解压放至apps目录,授予www权限
浏览器登录nextcloud,应用启用contacts
contacts新建个联系人,如MM,资料随意
苹果手机联系人先备份(QQ同步助手),设置--密码与帐号--添加帐号--其他--添加carddav帐户
服务器:https://example.com/remote.php/dav/principals/users/NEXTCLOUDUSER#https必须的,NEXTCLOUDUSER为自己的用户名
用户名:NEXTCLOUDUSER
密码:自己密码
描述:随意
手机--联系人--群组--只勾选刚刚新建的,过一会,看看联系人MM是否同步上,如同步上的可以恢复联系人了
服务器同步好后,其它手机如此炮制


其它以后想到再补充












a836321899 发表于 2020-2-13 06:32

专业人士,不知是干啥用的。。。

zijian2008 发表于 2020-2-14 21:36

这个不错,不知道速度咋样

antium 发表于 2020-2-16 13:16

本帖最后由 antium 于 2020-2-16 13:17 编辑

zijian2008 发表于 2020-2-14 21:36
这个不错,不知道速度咋样
上传下载速度在6M+,下载文件夹时自动打包zip
不过因为系统32位,所以这货上传文件大小限制在2G


gamersmile 发表于 2020-2-18 16:26

antium 发表于 2020-2-13 01:53
旧电脑装群晖,旧手机挂不了群晖,就只好挂Nextcloud
喜欢Nextcloud有几点:1. 支持WdbDAV,电脑用NetDriv ...

太专业了。以至于我这样的小白需要去搜一下才知道你说的NextCloud是啥。
简单来说,就是NAS服务器的一种。跟群晖类似,但貌似这种方案更Open?




顺便摘录下网络达人谈论NAS的一篇文章:(译文取自狗哥翻译,未校对。原文链接)

删除Dropbox,然后放弃Resilio Sync之后,我决定购买NAS。为了实现这一点,在我看来我不得不回答以下问题:
服务器类型。我是否应该在Linux上使用Nextcloud(或OwnCloud;但可能是Nextcloud)使用常规的Web服务器(设备/机器/ CPU)来滚动自己的个人服务器,或者获取NAS服务器呢?
服务器软件。假设我实际购买的盒子是NAS,我应该随盒子上安装的专有软件(任何种类)一起使用,还是应该安装Nextcloud并计划使用这些功能?
NAS供应商。实际上,这里有两个密切相关的问题。
(a)如果我决定对NAS使用专有服务器软件,应该购买哪个品牌的NAS盒?
(b)无论使用哪种包装,我都希望使用哪种专有服务器软件?这两个问题的结合将决定我要从哪个供应商那里购买。
RAID /驱动器配置。这也有两个密切相关的问题。
(a)我应该设置哪种RAID配置?
(b)我应该计划获得几个海湾?换句话说,服务器将拥有多少个驱动器,它们将如何一起用作自动备份或冗余?
强。我需要多少台机器?
驱动器。我应该将哪些驱动器放入NAS托架中?
回答这些问题有助于我决定要购买哪个盒子。
但是由于这些问题听起来有些棘手,而且(对我来说)不熟悉,所以我决定首先解决这个问题。毕竟,我确实已经知道为什么要使用NAS,以及我的一些要求。


页: [1]
查看完整版本: 旧安卓手机利用Deploy挂载nextcloud