MT7621-openwrt安装可道云kodexplorer轻量化NAS
最近把家里的OpenWrt路由器翻出来折腾,想着挂个私有云玩玩。可道云现在有新版Kodbox和旧版Kodexplorer,两个我都试过,还是Kodexplorer操作丝滑一点。Kodbox功能是多了,但跑在路由器这孱弱的硬件上,明显感觉拖不动,点个文件夹都要转半天。Kodexplorer就轻快多了,响应迅速,毕竟本来就是为低配环境设计的。
于是决定在OpenWrt上部署Kodexplorer。网上的教程七零八碎,自己踩了不少坑,这里把完整的步骤记录下来,供有需要的朋友参考。
安装 PHP 8 及相关组件
首先通过SSH登录OpenWrt,执行以下命令安装PHP 8及其相关模块。一个关键点是,KodExplorer的图片处理功能依赖于php8-mod-gd模块,这个模块必须安装,否则缩略图生成不了。
opkg update opkg install php8 php8-cgi php8-mod-gd php8-mod-mbstring php8-mod-session php8-mod-ctype php8-mod-curl php8-mod-iconv php8-mod-xml php8-mod-sqlite3 php8-mod-pdo-sqlite php8-mod-json
如果提示php8-mod-json找不到,不必担心。在部分OpenWrt版本中,json扩展已集成到PHP核心,无需单独安装。直接往下进行即可[reference:0][reference:1]。
配置 Web 服务器(uHTTPd)
OpenWrt自带的uHTTPd本身就是个轻量级Web服务器,不用额外装Nginx,省资源[reference:2]。关键是uHTTPd支持多实例运行,每个实例可以监听不同的端口,拥有独立的文档根目录[reference:3]。这样就不会影响LuCI管理页面(默认80端口)的正常访问。
修改/etc/config/uhttpd,在最后段落加入以下配置[reference:4]。我的做法是单独开一个实例,监听5666端口(HTTP)和5667端口(HTTPS),根目录指向/wwwkodexplorer:
config uhttpd 'kodexplorer'
list listen_http '0.0.0.0:5666'
list listen_http '[::]:5666'
list listen_https '0.0.0.0:5667'
list listen_https '[::]:5667'
option redirect_https '0'
option home '/wwwkodexplorer'
option rfc1918_filter '1'
option max_requests '3'
option max_connections '100'
option cert '/etc/uhttpd.crt'
option key '/etc/uhttpd.key'
option cgi_prefix '/cgi-bin'
list lua_prefix '/cgi-bin/luci=/usr/lib/lua/luci/sgi/uhttpd.lua'
option script_timeout '60'
option network_timeout '30'
option http_keepalive '20'
option tcp_keepalive '1'
option ubus_prefix '/ubus'
list index_page 'index.php'
list index_page 'index.html'
list interpreter '.php=/usr/bin/php8-cgi'
如果路由器闪存空间不够,可以把home目录指向U盘或移动硬盘上的挂载点,比如/mnt/sda1/wwwkodexplorer。
配置完成后重启uHTTPd服务使配置生效[reference:5]:
/etc/init.d/uhttpd restart
调整 PHP 配置
接下来编辑/etc/php.ini,有几处关键配置必须改[reference:6][reference:7]:
-
注释掉doc_root:找到
doc_root = "/www"这一行,在前面加一个英文分号;将其注释掉,避免和uHTTPd的网站根目录设置冲突。 -
调整memory_limit:将
memory_limit = 8M修改得大一些,比如memory_limit = 24M,能让程序运行更顺畅。如果路由器内存比较大,可以适当再增加。 -
设置时区:找到
;date.timezone =,去掉前面的分号,并设置为date.timezone = Asia/Shanghai。 -
short_open_tag = On:允许使用
<?作为 PHP 代码的短标签。如果关闭(Off),则必须用完整的<?php。KodExplorer 可能需要这个,保持开启。 -
display_errors = On:在网页上直接显示 PHP 的错误信息。调试时建议开启,正式使用后可关闭(Off)避免暴露敏感信息。
-
log_errors = On:将错误信息写入日志文件(而非显示在网页上)。结合 display_errors 使用,可以同时记录和显示。
-
doc_root =:留空,PHP脚本允许访问的根目录不限制,由 Web 服务器(uHTTPd)的 home 路径决定。
-
user_dir =:用户目录的路径。通常留空,不用管它。
-
file_uploads = On:允许通过表单上传文件。必须开启,否则 KodExplorer 无法上传任何文件。
-
upload_tmp_dir = "/tmp":文件上传过程中的临时存放目录。
/tmp是路由器的内存文件系统,重启后会清空,这是正常行为。 -
upload_max_filesize = 2048M:单个文件的最大上传大小限制。2048MB(2GB)对路由器来说相当大了,实际可能受限于硬件性能,可以根据自己需求调整。
-
max_file_uploads = 200:单次请求最多可以上传的文件数量。允许同时上传 200 个文件。
-
max_execution_time = 3600:PHP 脚本的最大执行时间(秒)。3600 秒 = 1 小时,对大文件上传和长时间任务很有用。
-
max_input_time = 3600:PHP 脚本解析输入数据(如 POST)的最大时间(秒)。同样设为 1 小时。
-
post_max_size = 150M:通过 POST 方法提交的数据总量上限(包含所有表单字段和文件)。如果上传的文件接近 2GB,这个值需要同步调大(如设为 2048M)。
具体配置可以参考可道云官方文档。查找以上内容,如果前面带有分号的,删掉分号。doc_root和user_dir留空。
部署可道云程序文件
去可道云官网下载最新的KodExplorer(注意不是Kodbox)程序包[reference:8]。KodExplorer 4.50及以上版本已经兼容PHP 8[reference:9]。
在uHTTPd配置文件指定的目录(option home '/wwwkodexplorer')下解压程序包。如果目录不存在,先创建:
mkdir -p /wwwkodexplorer
将程序包解压到/wwwkodexplorer下,然后设置权限[reference:10]:
chmod -R 0777 /wwwkodexplorer
配置存储目录(将数据独立存放)
默认情况下,KodExplorer的用户数据存放在/wwwkodexplorer/data目录下。但我不想把用户文件和Web程序混在一起,万一哪天系统崩了或者想重刷固件,数据还得备份一遍,太麻烦了。
我的做法是把数据目录独立出来,放到外挂的NTFS硬盘上。这样如果真着急了,直接把硬盘拔了插到任何一台电脑上都能读取,方便得很。
编辑/wwwkodexplorer/config/config.php,找到以下内容[reference:11][reference:12][reference:13]:
define('DATA_PATH',BASIC_PATH.'data/');
改为(注意路径末尾的斜杠不能少)[reference:14]:
define('DATA_PATH','/mnt/sda1/kodexplorerdata/');
其中/mnt/sda1/kodexplorerdata/是我的挂载分区(NTFS格式)。你的挂载点可能不同,根据实际情况修改。
接下来,把/wwwkodexplorer/data目录下的内容复制到新目录,避免丢失原有数据:
cp -r /wwwkodexplorer/data/* /mnt/sda1/kodexplorerdata/
收尾与远程访问
至此,一切OK了。浏览器访问 http://路由IP:5666 就能看到可道云的初始化页面了。
如果配合DDNS-GO + IPv6,还可以实现远程访问,在外网也能随时管理自己的文件。
折腾了一圈下来,虽然中间踩了几个坑,但最终跑起来还是挺顺的。Kodexplorer在路由器上跑得飞起,比Kodbox那种"重"方案舒服多了。
点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)
饿了么红包
本站附件分享,如果附件失效,可以去找找看