背景

路由器刷了koolshare梅林的384版,挂上移动硬盘,移植了armv7l的frps适配384软件中心,upx压缩二进制文件,搭好内网穿透……一顿操作下来还感觉差了一块功能–私有云的文件管理.

自带的airDisk功能薄弱,samba的目录和权限配置简单粗暴,易有云倒是挺不错的,但是奔溃太频繁了,也不是很满足个人需求.

这时候就想起以前使用的web文件管理器KodExplorer了,整体安装流程还是比较简单的: 外接磁盘上装Enware->opkg安装nginx+php->配置web站点和扩展.

安装步骤

这篇文章没太多技术含量,主要还是作个备忘,哪天路由再刷机了还能用上。另外koolshare论坛由于有onmp一键脚本,手动搭建的文章比较少,也可供有需要的人参考。

1, 安装Entware

安装Entware可参考:
https://koolshare.cn/thread-178594-1-1.html

ssh登录路由器,执行entware-setup.sh
ep 安装 Entware packages,选择挂载的磁盘

enware-setup

e,退出Entware界面

2, 安装nginx+php7

1
2
opkg update && opkg upgrade
opkg install nginx php7

3, 配置nginx站点

1,编辑nginx配置

1
vi /opt/etc/nginx/nginx.conf

http {后一行添加多站点配置

1
include /opt/etc/nginx/sites-enabled/*.conf;

如果要能访问整个路由器的文件,需要以admin角色运行(高权限运行需慎重考虑,暴露到外网请注意风险):

1
2
# 将 user nobody; 改为admin和root用户组
user admin root;

2,添加kod站点配置文件

1
vi /opt/etc/nginx/sites-enabled/kodExplorer.conf

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
# 监听http端口号
listen 29080;
server_name localhost;
root /opt/share/nginx/kod;

location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.html;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

location ~ \.php$ {
root /opt/share/nginx/kod;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

4, 下载kodExplorer

kodExplorer可道云(即原来的芒果云),是一款基于php的web文件管理系统,而且附带了各种花式的功能,具体可以见它的官网.

官网: https://kodcloud.com/

github仓库: https://github.com/kalcaddle/KodExplorer

在线Demo体验地址: http://demo.kodcloud.com/

这里直接从github上下载解压到配置好的nginx站点目录下

1
2
3
4
mkdir /opt/etc/nginx/sites-enabled
cd /opt/share/nginx && wget https://github.com/kalcaddle/KodExplorer/archive/master.zip -O kod.zip

unzip kod.zip && chmod +x -R kod/*

5, 配置php&安装kodExplorer所需的php扩展

1
opkg install php7-mod-mbstring php7-mod-curl php7-mod-iconv php7-mod-session php7-mod-json php7-mod-gd

编辑php.ini:

1
vi /opt/etc/php.ini

使用;注释掉doc_root,然后:

1
2
3
4
5
6
7
8
9
10
11
12
13
;配置告警级别和日志
error_reporting = E_ERROR & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
log_errors = On
error_log = /opt/var/log/php_errors.log
;display_errors = Off

;配置扩展
extension=session.so
extension=iconv.so
extension=curl.so
extension=mbstring.so
extension=gd.so
extension=json.so

6, 启动服务

1
2
/opt/etc/init.d/S80nginx restart
/opt/etc/init.d/S80php7-cgi restart

访问 http://192.168.50.1:29080 可以看到效果:

kod-login-ui

配合frpc反带到公网再Let’s encrypt绑个泛域名证书,一套外网可访问的私有云文件管理器就搞定了.

整体功能上基本该有的都有了:

  • web界面拖拽上传到挂载磁盘:

file-upload

  • 在线播放:
    video-play

  • 代码高亮&MarkDown预览:

    markdown-view

  • 文件加密分享:

image-20200614153855054

  • 插件(免费版能用的不多)

image-20200614154240962