FileRun——简单强大美观的文件共享
🗂️

FileRun——简单强大美观的文件共享

标签
Docker
创建时间
Jan 10, 2022 01:26 PM
上次编辑时间
Last updated March 31, 2023
FileRun 是一款简单强大美观的网盘程序,一个网页版的文件管理器,还附带了多平台的客户端。支持多种格式在线预览,也支持 guest 访问或者通过链接直接登录账号。
notion image
官方有如何使用 Web Station 在 Synology DSM NAS 上安装 FileRun ,这个是使用 Web Station 安装,而且操作比较麻烦。而这里要记录的是使用群晖的 Docker 进行安装。(顺便官方文档中存在一个错误代码导致安装不上,具体看后面)
官方同样有如何使用 Docker 在 Synology DSM NAS 上安装 FileRun,但是这里虽然使用 docker 安装,数据库用的也是群晖的 MariaDB 10 。而不是跟官方 docker 教程中使用 docker 同时安装 MySQL 数据库那种操作。

Docker 安装方式

前置工作

因为不用 docker 安装 MySQL 数据库而是使用群晖自带的 mariadb10 所以需要提前建立相关的账号和数据库。
使用 PHPmyadmin 登录,在账号中 新增用户账号,名字为 filerun ,并且 同时创建与用户同名的数据库并授予所有权限 记住密码。

配置容器

  • 在 docker 的注册表中下载镜像 filerun/filerun
  • 下载完之后启动镜像,创建容器
  • 高级设置
    • 存储空间:映射一个文件夹为 /var/www/html ,这是 FileRun 应用程序文件
    • 存储空间:映射一个文件夹 /user-files ,这是用户主文件夹,可以将你存储文件的任何文件夹映射给他。也可以通过 /user-files/A/user-files/B 等方式映射多个文件夹或者硬盘。
    • 端口设置:映射一个本地端口对应容器端口 80
    • 环境设置:FR_DB_HOST FR_DB_PORT FR_DB_NAME FR_DB_USER FR_DB_PASS 这里分别对应数据库的地址、端口、数据库名、用户名、用户密码。这里需要注意的是因为使用的是群晖的 mariadb10 ,所以这里 docker 中需要填写的地址应该是 172.17.0.1 对应的端口是 3307 或者 3306(根据具体要求填写)
  • 启动容器,进入网页设置
或者使用ssh部署
拉取镜像
docker pull filerun/filerun:latese
查看用户
yun@CiNAS:~$ id yun uid=1026(yun) gid=100(users) groups=100(users),101(administrators)
部署容器
docker run -d \ --name=filerun \ -e APACHE_RUN_USER=yun \ -e APACHE_RUN_USER_ID=1026 \ -e APACHE_RUN_GROUP=users \ -e APACHE_RUN_GROUP_ID=100 \ -e FR_DB_HOST=172.17.0.1 \ -e FR_DB_PORT=3306 \ -e FR_DB_NAME=filerun \ -e FR_DB_USER=filerun \ -e FR_DB_PASS=Lkong425659@ \ -p 8084:80 \ -v /volume1/docker/filerun:/var/www/html \ -v /volume1/archives:/user-files \ --restart always \ filerun/filerun:latest
⚠️
如果提示无法链接到MYSQL,请注意检查服务器ip和端口号填写是否正确,以及群晖MariaDB 10 的设置中有没有启用TCP/IP连接。

设置 filerun

使用FileRun 超级用户superuser 和随机初始密码,登录并且进行设置。

设置语言

下载中文语言文件:
多国语言翻译文件:下载对应语言
使用默认账号密码登录之后,点击设置,进入后台,在 Interface - Options - Upload language file 上传你的语言文件。
或者直接将语言文件上传到 system/data/translations 文件夹下。
上传保存之后,刷新页面,选中中文,然后刷新,就显示中文了。

修改超级用户

点击用户,修改超级用户账号和密码为自己的账号密码。

重置 FileRun 超级用户密码

从命令行运行以下命令应该会给你一个新密码:
cd cron cron> php reset_superuser_pass.php your-site.com newpass
您将需要替换 your-site.com 为用于在浏览器中访问 FileRun 的实际域/主机名。如果您不指定 newpass,将随机生成一个并显示在命令的输出中。

网页链接网址缩短

FileRun 默认使用 Bitly.com 来缩短共享链接。请按照以下步骤启用该功能:
  • 单击“通用访问令牌”。您将被要求输入您的 Bitly 密码。
  • 复制生成的访问令牌并将其粘贴到 FileRun 的控制面板中,在配置 > 更多 > 第三方服务下

使用onlyoffice在线文档服务

安装onlyoffice可以参照
📝
onlyoffice ——在线文档服务
设置 - 文件 - Plugins 中找到 ONLYOFFICE
选中,点击上方的 修改
在设置中 Plugin settings 中填入 ONLYOFFICE服务器URL
这里建议使用可以公网访问的域名地址,我这里使用的是群晖反代的onlyoffice域名地址,输入网址之后,保存更改即可。

高级配置

通过编辑文件“ customizables/config.php”来设置其他配置选项。如果文件不存在,您可以简单地创建它。注意:PHP 文件需要从 <?php 第一行开始。
或者直接下载编辑:

同步时间

date_default_timezone_set("Asia/ShangHai"); //将 FileRun 安装配置为使用您的时区来调整时差

隐藏某些文件夹或者文件夹

这个用于隐藏某些系统文件或者配置文件,比如隐藏因为群晖全局搜索出现在每个文件夹的 @eaDir 文件夹
$config['app']['hidden_file_names'][] = "_*"; //隐藏名称以“_”开头的所有文件夹。您可以像这样添加多个配置行,以隐藏其他文件夹。

隐藏垃圾文件夹 缩略图文件夹 和 版本文件夹

文件或者文件夹被删除之后,会在用户文件夹生成一个隐藏文件夹 .filerun.trash
同时还可能有缩略图文件夹 .filerun.thumbnails
以及开启版本控制之后存在 .filerun.versioning
这些文件夹在 filerun 中是隐藏的,但是在群晖的文件夹中是可见的,如果需要隐藏这些个文件夹,可以将垃圾文件夹和缩略图设置到其他盘或者文件夹中去,比如 设置到映射 /var/www/html 的文件夹中去。
这里根据 官方文档-高级配置 设置 config.php,在其中添加这样两行。
一个是将垃圾文件夹放到 /var/www/html/permission/,一个是允许删除文件和文件夹到其他分区。
在对应的群晖 docker/filerun 文件夹中新建一个 permission 文件夹
$config['system']['fm']['use_safe_move'] = true; //如果您的垃圾文件夹位于单独的设备/分区/文件系统上,您可能需要设置这一项; 否则,由于 PHP 限制,您将无法将文件夹删除到垃圾箱。 $config['path']['trash'] = '/var/www/html/permission/'; // 垃圾文件夹设置到 映射的配置文件夹中 $config['path']['thumbnail_cache'] = '/var/www/html/permission/';
版本文件夹 .filerun.versioning 则需要在 设置 -文件 - misc选项 选项 中将版本控制填写为 0 即关闭版本控制。

账号自动登录

自动登录有两种方式

使用自定义链接

http://YOUR-SITE.COM/FILERUN/?page=login&action=login&nonajax=1&username=USERNAME&password=PASSWORD
这里 USERNAME 对应登录的 用户名PASSWORD 对应的 该用户的密码
重点是,如果是群晖 docker 安装 这里应该是 YOUR-SITE.COM/FILERUN/ 等于你的访问网站,也就是你访问的域名,不再需要在域名后面加 /FILERUN,直接使用域名接后面的即可。

以编程方式设置

将用户重定向到这样的 PHP 脚本:
<?php //start FileRun session session_name('FileRunSID'); session_start(); $username = "admin"; //set logged in username $_SESSION['FileRun']['username'] = $username; //You are now logged in as $username //Redirect to FileRun: header('Location: https://www.your-site.com/filerun/');
  • 将上述代码复制到名为“autologin.php”的文件中,并将其放置在 FileRun 安装文件夹中。这里也就是之前映射的应用程序文件中。
  • 编辑代码以匹配所需的 FileRun 用户名和 FileRun 安装的 URL。这里主要编辑 username = "admin" 中的 admin 换成你所对应的用户名,以及最后的 https://www.your-site.com/filerun/ 换成你所用的域名。群晖 docker 安装,这里应该是直接群晖的域名,不需要加 /filerun/
  • 访问创建的文件的 URL(“ http://www.your-site.com/filerun/autologin.php ”),按照群晖 docker 安装的,这里就应该是 : http://www.your-site.com/autologin.php

通过 WebDAV 访问

filerun 自带 webdav,访问 FileRun 的 WebDAV 的 URL 示例如下 https://demo.filerun.co/dav.php/ ,请注意,URL 必须在“dav.php”之后包含尾部斜杠字符。
使用 Nextcloud 桌面同步应用程序时,URL 应该是 FileRun 安装的根目录(例如:)https://demo.filerun.co。不要在其后附加“/dav.php/”。
Mac os 在 Finder 中,选择“前往” >“连接到服务器”,在“服务器地址”字段中键入服务器的地址,然后单击“连接”。服务器地址应采用类似于以下形式的格式:ADDRESS/filerun/dav.php/。 假设您的 FileRun 实例安装在 https://www.your-site.com/filerun,对于我们的示例,这将是:https://www.your-site.com/filerun/dav.php/ 按照我这种安装方法,则应该是 https://www.your-site.com/dav.php/

如何使用 Web Station 在 群晖 上安装 FileRun

在 Synology 自己的应用程序上使用 FileRun 的好处:
  • 轻巧快速。
  • 在浏览您的照片、音乐或视频之前,无需再等待索引。
  • 无需应用程序即可移动友好(尽管有一些可用)。
  • 高分辨率缩略图和预览。
  • 查看和管理照片、音乐、视频和文档。所有这些都在一个应用程序中。

1. 安装 Web Station

这一步很简单:
  1. 在浏览器中打开 Synology DSM
  1. 打开套件中心应用程序。
  1. 搜索 Web Station 并安装找到的软件包。

2. 安装 PHP 7.4

打开刚刚安装的 Web Station 软件包,然后单击 PHP 7.4 后端软件包的管理图标:
这将打开套件中心并让您安装 PHP 7.4 。完成安装并关闭 套件中心
回到 Web Station, 您现在应该看到 PHP 7.4 标记为 已安装

3.配置 PHP

切换到 PHP 设置选项卡并单击 Create 按钮以添加新的 PHP 配置文件。
键入 Profile NameDescription 并选择 PHP 7.4PHP version
在 下 Extensions,启用以下内容:
  • curl
  • exif
  • gd
  • imagick
  • openssl
  • pdo_mysql
  • zip
  • zlib
⚠️
确保未启用 PHP 缓存 选中该选项。
并单击 确定。
切换到常规设置选项卡。
使用 PHP version 下拉菜单,选择刚刚添加的 PHP 7.4 配置文件,然后单击 应用:

安装 ionCube 扩展

ionCube 是 FileRun 运行所需的 PHP 扩展。
对于这一步,我们将使用 SSH。
ssh 连接后:
将当前文件夹更改为 /usr/local/lib/php74/modules
cd /usr/local/lib/php74/modules
下载 ionCube:
对于 64 位 Intel CPU:
sudo wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
对于 32 位 Intel CPU:
sudo wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
⚠️
重要提示:某些 Synology 设备使用 ARM CPU 而不是 Intel,在这种情况下,您需要下载不同的 ionCube 版本:
sudo wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_armv7l.tar.gz
⚠️
请注意,可能会要求您再次提供管理员密码以运行这些命令。
提取下载的存档:
sudo tar xvfz ioncube_loaders_lin_x86-64.tar.gz
现在创建一个额外的自定义 PHP 配置文件:
sudo vim /run/php-fpm/conf.d/filerun.ini
i 进入编辑模式,然后 right-click 在里面粘贴以下内容:
zend_extension = /usr/local/lib/php74/modules/ioncube/ioncube_loader_lin_7.4.so
要保存更改,请按 Esc:wq!Enter
有一个报告的问题,重新启动服务器后上述更改丢失。您可能想尝试将上述配置放入文件中 /volume1/@appstore/PHP7.4/misc/php-fpm.ini。
要使更改生效,群晖7.0以上请通过运行以下命令重新启动 PHP 7.4
sudo synosystemctl restart pkgctl-PHP7.4
您也可以从 套件中心 重新启动它,方法是选择 PHP 7.4 ,然后 启用。
回到 SSH 控制台,安装并加载 ionCube:
info.php 在您的 Web 服务器的根目录中创建一个名为 file 的文件:
sudo vim /volume1/web/info.php
将以下内容粘贴到文件中,然后保存并关闭它。
<?php phpinfo();
按 i 打开编辑模式,键 right-click 粘贴文本,Esc 退出编辑模式,:wq! 随后 Enter 保存并退出。
然后
sudo chmod 755 info.php
调整文件的权限。
现在 http://<nas_ip_address>/info.php 在您的网络浏览器中访问。您打开的网页应如下所示:
notion image
⚠️
注意“ =使用 ionCube PHP Loader(启用)= " 屏幕截图底部的文字。

4. 安装 MariaDB

这是一个简单的步骤:
  1. 打开套件中心应用程序。
  1. 搜索 MariaDB 并安装找到的软件包。
打开 MariaDB 并单击更改 MariDB 密码以设置密码。请务必记下此密码。

5. 添加 MariaDB 新用户

如果您尚未安装 phpMyAdmin 软件包,请使用本指南
  1. 打开 phpMyAdminroot 使用您之前设置的密码登录。
  1. 导航到用户帐户选项卡,然后单击添加用户帐户
  1. 输入一个 User name. 在下面的屏幕截图中,用户名 filerun 已填写。
  1. 选择 LocalHost name
  1. 键入 Password 您选择的 a 和 Re-type 它。
  1. 确保 Create database with same name and grant all privileges. 选中该选项。
单击 Go 页面底部的按钮以添加用户帐户。
您现在可以关闭 phpMyAdmin

6. 安装 FileRun

回到 SSH 控制台。
您可以将 FileRun 安装在网络服务器的根文件夹 ( /var/services/web/) 或您选择的子文件夹中。
cd /volume1/web/
如果您希望使用 Web 服务器的根目录(无子文件夹),请确保 index.html 从其文件夹中删除默认文件。
rm index.html
下载文件运行:
sudo wget -O FileRun.zip https://filerun.com/download-latest-dsm-web
解压下载的存档:
sudo 7z x FileRun.zip
允许 PHP 写入临时数据:
sudo chown http:http -R system/data/
从这里开始,您只需遵循基于 Web 的安装程序,只需单击几下即可帮助您运行 FileRun。

基于 Web 的安装程序

打开浏览器并将其指向 http://YOUR-NAS-IP/
⚠️
注意:如果您将 FileRun 放在子文件夹中,请将子文件夹名称添加到 URL。
如果您没有看到安装程序网页,但可能是一个 500 Internal Server Error 页面,请更改 PHP 配置,将 启用 display_errors 以显示错误信息 勾选. 然后,同一页面将提供带有故障排除信息的错误消息。
如果您收到诸如 之类的错误 Fatal error: Uncaught --> Smarty: unable to write file,请知道您还可以使用 Synology File Station 浏览到 FileRun 文件夹并更改该文件夹的权限 system/data,从而允许 http 使用该 Write 权限。
单击 Next 以继续。查看服务器要求检查并确保没有红色错误消息:
单击 Next 以继续数据库连接设置:
  • 输入 Database name. 这与您在上述第 5 步(filerun 在我们的示例中)用于 MariaDB 用户名的相同。
  • 输入 MySQL user:(filerun 同上)。
  • 输入 Password 您为 MariaDB 用户帐户配置的。
  • 然后点击 Next
您将看到以下屏幕,让您知道 FileRun 已成功安装:
⚠️
重要: 在继续之前,请确保您复制了屏幕上显示的用户名和密码。这一步密码是随机生成的。不要使用本教程屏幕截图中的密码,它不适用于您的安装。
单击 Next 以打开 FileRun。您应该会看到登录页面:
该表格应预先填写,以便您只需点击 Sign in

排除 MySQL 连接问题

在某些 Synology 设备上,用户报告出现错误 SQLSTATE[HY000] [2002] No such file or directory。 解决方案是稍微调整 PHP 配置。
  1. 在 Synology 桌面上,单击以打开主菜单并选择 MariaDB
  1. 记下 Port(数字,通常为 3306)和 Domain Socket(文件路径,类似于 /run/mysqld/mysqld.sock)信息并将它们写在某处。您现在可以关闭“MariaDB”选项面板。
  1. 回到 主菜单 ,打开 Web Station
  1. 选择 PHP 设置选项卡,然后单击 高级设置
  1. 选择扩展选项卡。
  1. 搜索 pdo_mysql 并定位该字段 pdo_mysql.default_socket
  1. 将该字段的值设置为 Domain Socket 您在步骤 2 中记下的路径。
  1. 点击 Ok
此外,如果您注意到 MariaDB 服务器在与默认 3306 不同的端口上运行 MySQL hostname,请在 FileRun 安装程序中配置 时,设置 localhost:3306,其中 3306 是您的实际端口号。

7. 准备使用 FileRun!

具体配置可以参照前文

8. 调整 FileRun 的配置

您希望在 FileRun 的配置中启用的第一件事是 ImageMagickFFmpeg 。 这些服务器组件赋予 FileRun 处理大量图像和视频文件的能力,为您提供快速的图像预览和缩略图。
  1. 登录到 FileRun ,打开 控制面板
  1. 选择 Image Preview 从菜单。
  1. 选中“启用 ImageMagick 支持”选项。
  1. 将 ImageMagick 转换二进制路径更新为 /bin/convert.
  1. 选中“启用 FFmpeg 支持”选项。
  1. 将 FFmpeg 二进制路径更新为 /bin/ffmpeg
点击 Save Changes,你就完成了!

9. 备注

可以从 FileRun 的控制面板启用对 NGINX X-Accel 功能的支持。要在 Synology 内部启用该功能,您需要:
sudo vim /volume/@appstore/WebStation/misc/nginx_default_server.mustache
并添加如下内容:
location /volume { internal; root /; }
然后像这样重新启动 NGINX:
sudo synoservicecfg --restart nginx
现在 FileRun 将能够以更有效的方式提供文件下载。

10. 结论

您现在已在 Synology NAS 服务器上成功安装 FileRun。是时候上传您的文件、照片、音乐或工作文档并开始共享了。