将小米路由器3刷机成openwrt的方法,请参考上篇文章《 家庭宽带多运营商接入方案》
这里介绍怎么在已经刷成openwrt系统的小米路由器3上安装私有云nextcloud

openwrt开启SFTP
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install openssh-sftp-server
1
2
注意:每次系统升级后,都要重新安装openssh-sftp-server开启SFTP。

挂载移动硬盘
1. 将移动硬盘插到路由器上,分为以下四个区:
格式化分区命令:
示例:mkfs.ext4 /dev/sda4
格式化完成且,重启路由器。
查看分区命令:fdisk -l

序号 分区 分区大小 分区类型 作用
1 /dev/sda1 NTFS 作为数据存储分区
2 /dev/sda2 10G ext3 挂载到/overlay
3 /dev/sda3 5G swap 挂载为swap分区(发现最大只显示2G)
4 /dev/sda4 10G ext4 挂载到/mnt/onmp
2. 挂载并激活swap分区
mkswap /dev/sda3
swapon /dev/sda3
1
2
3. 实现开机自动挂载swap分区
我发现,在图形化界面里自动挂载swap无效,只有在命令中实现才有效。

1. 编辑swap分区配置信息,编辑/etc/fstab文件,添加内容:/dev/sda3 swap swap defaults 0 0
2. 重新读取/etc/fstab文件,挂载Swap分区:swapon -a
1
2
注:普通分区使用mount -a重读/etc/fstab文件,swap分区使用swapon -a重读/etc/fstab文件

3. 开机自动挂载
编辑/etc/rc.local文件,添加一行:swapon-a
1
2
其它命令:
查看内存和Swap空间使用情况:free
查看swap分区的详细信息,看是否运行:swapon -s
卸载swap分区:swapoff /dev/sda3

4. 挂载overlay分区
将/dev/sda2挂载到/rom/overlay
在图形化界面中操作:

安装curl
opkg install curl

手动安装命令:
升级tar(先升级tar,否则解压文件时会出错,提示 invalid tar magic):
opkg upgrade tar
下载curl安装包:
cd tmp
root@lu:/tmp# wget --no-check-certificate https://curl.haxx.se/download/curl-7.61.0.tar.gz
解压:
tar -zxvf curl-7.61.0.tar.gz
解压缩后,开始编译:
root@lu:/tmp# cd curl-7.61.0/
root@lu:/tmp/curl-7.61.0# ./configure --prefix=/usr/local/curl
如果出错,提示configure: error: ar not found in PATH. Cannot continue without ar.,说明缺少ar,需要先安装binutils。
安装binutils:
opkg install binutils
安装时,又提示这个错误:configure: error: no acceptable C compiler found in PATH,需要安装gcc:
opkg install gcc
如果提示overlay空间不足,说明没有挂载移动硬盘的overlay分区。
gcc安装时间较长,十分钟吧,安装完后,开始编译。
make;make install
又出错,缺少make命令,那就安装吧
opkg install make,再make
编译时间也很长。
然后
export PATH=/usr/local/curl/bin:$PATH
最后,看一下安装的cur版本
curl -V

安装Entware
一定要先手动方式,自动方式的话,重启路由器后,会找不到盘。
1. 建立/mnt/onmp目录
mkdir /mnt/onmp
2. 实现开机自动建立
这个目录,在重启后会消失,需要加入到开机启动项中。
vim /etc/rc.local,添加一行:mkdir /mnt/onmp
这样重启后,就会自动建立/mnt/onmp目录,后续的自动操作也可以正常进行了。
3. 将/dev/sda4分区挂载到/mnt/onmp目录下
mount -t ext4 /dev/sda4 /mnt/onmp/
用mount或df -h 查看一下是否挂载成功

如果不能挂载,尝试先格式化,再挂载

4. 开机自动挂载
使用图形化界面挂载

命令行挂载方式:
配置挂载内容:
vim /etc/fstab,添加一行: /dev/sda4 /mnt/onmp ext4 defaults 0 1
再执行:
mout -a #挂载,此命令会重读/etc/fstab文件。
配置开机自动挂载:
vim /etc/rc.local,添加一行:
mount -a #这一句加到exit 0前面
exit 0

5. 将/mnt/onmp/opt与/opt绑定
先在移动硬盘上建立一个opt目录:
mkdir /mnt/onmp/opt
将其与/opt绑定:
mout -o bind /mnt/onmp/opt /opt

使用mout或df -h查看是否绑定成功

最后,重启路由器,使用opkg update,看是不是从entware.net网站上更新了。
** 安装完Entware成功后的提示:**

Info: Congratulations!
Info: If there are no errors above then www.xgll521.com Entware was successfully initialized.
Info: Add /opt/bin & www.michenggw.com /opt/sbin to your PATH variable
Info: Add '/opt/etc/init.d/rc.unslung www.dongfan178.com start' to startup script for Entware services to start
Info: Found a Bug? Please www.taohuaqing178.com  report at https://yongshiyule178.com github.com/Entware/Entware/issues
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
NATCAP 4.0_b201807150836, Bionic
-----------------------------------------------------
安装ONMP
前面弄了一大堆,终于到了安装ONMP的时候了。

官方教程:https://github.com/xzhih/ONMP

1. 安装命令:
sh -c “$(curl -kfsSl https://raw.githubusercontent.com/xzhih/ONMP/master/oneclick.sh)”
安装完成后,观察提示信息,是否有失败信息:

现在开始初始化ONMP
----------------------------------------
|********** onmp命令已经生成 **********|
|********** 管理 onmp open **********|
|********* 启动 停止 重启ONMP *********|
|***** onmp start|stop|restart *****|
|******* 查看网站列表 onmp list *******|
----------------------------------------
onmp正在启动
nginx 启动成功
php-fpm 启动成功
mysqld 启动失败
onmp启动失败
这里mysql启动失败,是因为需要挂载swap分区,才能启动mysqld。按上面的步骤挂载swap分区。

2. 使onmp开机自动运行
vim /etc/rc.local
在exit 0之前加一句:onmp start

一个运行正常的rc.local文件示例:

root@hello:~# cat /etc/rc.local
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
mkdir /mnt/onmp
mount -a
swapon -a
mkdir -p /opt
mount -o bind /mnt/onmp/opt /opt
/opt/etc/init.d/rc.unslung start
exit 0
安装nextcoud
onmp启动成功后,就可以安装nextcloud了。
启动onmp:
onmp open
选择7,安装网站程序,
选择4,nextcloud
安装需要15分钟左右的时间
安装后提示:

正在解压…
解压完成…
正在配置Nextcloud…
Nextcloud安装完成
浏览器地址栏输入:192.168.15.1:99 即可访问

首次打开要求配置用户和数据库信息
地址默认 localhost
用户名和密码是你自己设置的,或者是默认的root/123456

nextcloud升级失败,退出维护模式
opkg install sudo
sudo -u nobody php-cli occ maintenance:mode --off

Windows查看进程CMD命令和终止进程CMD命令的更多相关文章

  1. windows 查看端口号,关闭端口进程

    1.打开cmd,输入:netstat -ano | findstr 8080,根据端口号查找对应的PID.结果如下: 2.根据PID找进程名称,输入命令:tasklist | findstr 1789 ...

  2. windows 查看端口占用以及关闭该进程

    win+r -> 输入cmd netstat -ano 找到占用端口进程的pid control+shift+esc 打开 任务管理器 menu->'查看'->'选择列->勾选 ...

  3. windows查看和杀死占用端口的进程

    1.首先使用 netstat -ano查看占用端口的进程号 2.然后使用 taskkill /PID (进程号)杀死进程

  4. Windows查看指定端口是否占用和查看进程

    Winodows上查看指定端口号的使用情况和占用进程以及终止所占用端口进程进程用到.下面主要描述如何操作. 1.查看所有端口占用情况 C:\Users\Administrator>netstat ...

  5. Linux查看进程和终止进程的技巧

    1. 在LINUX命令平台输入1-2个字符后按Tab键会自动补全后面的部分(前提是要有这个东西,例如在装了tomcat的前提下,输入tomcat的to按tab). 2. ps 命令用于查看当前正在运行 ...

  6. Linux服务器管理: 系统的进程管理终止进程kill命令

    在Linux中如何用kill终止进程: kill -l [root@localhost~]#kill -l   可以看到kill中有很多的 常用:  -1 是重启一个进程    -9 是强制杀死进程 ...

  7. Linux 进程管理 kill、killall、pkill命令

    Linux常用信号(进程间通信) 系统中可以识别的信号较多,我们可以使用命令"kill -l"或"man 7 signal"来查询.命令如下: [root@lo ...

  8. 使用 kill 命令杀死 java进程,你用对了吗?

    在本地调试agent相关功能,需要经常性的杀掉Java进程,验证一些极端情况. 每次都是本能执行如下步骤 jps kill -9 <pid> reboot 有一次验证,发现代码中添加的Sh ...

  9. kill 根据PID终止进程

    根据PID终止进程 kill [option] PID-list kill 通过向一个或多个进程发送信号来终止进程.除超级用户外,只有进程的所有者才可以对进程执行kill 参数 PID-list为ki ...

随机推荐

  1. 【php学习-4】

    var_1=11; print $var1->var_1.$var2->var_1; ?> print_Color(); ?> y=self::$x; # code... } ...

  2. centOS下更新yum源

    CentOS下更新yum源 1.使用如下命令,备份/etc/yum.repos.d/CentOS-Base.repo. cp /etc/yum.repos.d/CentOS-Base.repo /et ...

  3. 记一次防火墙导致greenplum装机失败及定位修复过程

    一.问题现象 20180201:15:06:25:028653 gpinitsystem:sdw1-2:gpadmin-[INFO]:--------------------------------- ...

  4. 某CTF收集的Mysql爆表、爆字段语句

    Mysql特性 获取数据库名未知函数可爆数据库名 FUNCTION youcanneverfindme17.a does not exist 获取表名and linestring(pro_id)    ...

  5. R语言绘图:雷达图

    使用fmsb包绘制雷达图 library("fmsb") radarfig <- rbind(rep(90, 4), rep(60, 4), c(86.17, 73.96, ...

  6. Servlet生命周期与线程安全

    上一篇介绍了Servlet初始化,以及如何处理HTTP请求,实际上在这两个过程中,都伴随着Servlet的生命周期,都是Servlet生命周期的一部分.同时,由于Tomcat容器默认是采用单实例多线程 ...

  7. struts2学习笔记一

    一.框架概述 1.框架的意义与作用: 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面. 特点:封装了很多细节,程序员在使用的时候会非常简单. 2 ...

  8. Mysql双主操作

    MySQL双主(主主)架构方案   在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果 ...

  9. 为什么在默认情况下无法修改被block捕获的变量? __block都做了什么?

    默认情况下,block里面的变量,拷贝进去的是变量的值,而不是指向变量的内存的指针.使用__block修饰后的变量,拷贝到block里面的就是指向变量的指针,所以我们就可以修改变量的值.

  10. iOS中如何根据UIView获取所在的UIViewController

    原理 Responder Chain 事件的响应者链 大概的传递规则就是从视图顶层的UIView向下到UIViewController再到RootViewController再到Window最后到Ap ...