将小米路由器3刷机成openwrt的方法,请参考上篇文章《 家庭宽带多运营商接入方案》
这里介绍怎么在已经刷成openwrt系统的小米路由器3上安装私有云nextcloud
openwrt开启SFTP
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install openssh-sftp-server
注意:每次系统升级后,都要重新安装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
3. 实现开机自动挂载swap分区
我发现,在图形化界面里自动挂载swap无效,只有在命令中实现才有效。
1. 编辑swap分区配置信息,编辑/etc/fstab文件,添加内容:/dev/sda3 swap swap defaults 0 0
2. 重新读取/etc/fstab文件,挂载Swap分区:swapon -a
注:普通分区使用mount -a重读/etc/fstab文件,swap分区使用swapon -a重读/etc/fstab文件
3. 开机自动挂载
编辑/etc/rc.local文件,添加一行:swapon-a
其它命令:
查看内存和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 Entware was successfully initialized.
Info: Add /opt/bin & /opt/sbin to your PATH variable
Info: Add '/opt/etc/init.d/rc.unslung start' to startup script for Entware services to start
Info: Found a Bug? Please report at https://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的时候了。
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