一、介绍
FileRun 是一个自托管文件管理应用程序,支持多种文件格式,如 CSV、JPEG、Markdown、文本、MP3 和 MP4。它还集成了WebDav协议,该协议支持各种桌面应用程序,包括Windows上的Windows资源管理器和macOS上的Finder。
本文解释了如何在运行 LEMP (Linux、Nginx、MySQL、PHP) 堆栈的 Vultr 云服务器上安装 FileRun。本文使用一键式 Ubuntu 20.04 LEMP 服务器实例,但这些步骤适用于运行相同堆栈的任何其他系统。
二、准备工作
- 从 Vultr 市场部署一键式 LEMP 实例。
- 设置指向服务器的子域。
- 使用 SSH 以具有 sudo 权限的非 root 用户身份访问服务器。
- 更新服务器。
三、设置文件运行数据库
- 查看 MySQL 根密码。
$ sudo cat /root/.my.cnf
- 登录到 MySQL。
$ mysql -u root -p
- 创建新数据库。
CREATE DATABASE filerun;
- 使用强密码创建新的数据库用户。
CREATE USER 'fileuser'@'localhost' IDENTIFIED BY 'your-strong-password-here';
- 授予用户对 FileRun 数据库的完全权限。
GRANT ALL ON filerun.* TO fileuser@localhost;
- 刷新 MySQL 权限。
FLUSH PRIVILEGES;
- 退出 MySQL 控制台。
EXIT
四、安装 PHP 扩展
默认情况下,Vultr 一键式 LEMP 应用程序运行 PHP 版本 7.4。使用以下命令验证已安装的版本。
$ php -v
- 安装 FileRun 所需的 PHP 扩展。
$ sudo apt install php7.4-fpm php7.4-mysql php7.4-gd php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-mbstring php7.4-xml php7.4-zip php7.4-gd php7.4-curl php7.4-ldap php7.4-imagick unzip
- 要安装 ionCube PHP 扩展,请下载其最新版本文件。
$ wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
- 将文件解压缩到目录。
/usr/lib/php
$ sudo tar -xvf ioncube_loaders_lin_x86-64.tar.gz -C /usr/lib/php
- 使用您选择的文本编辑器,创建一个新的 PHP 文件以启用扩展名。
00-ioncube.ini
$ sudo nano /etc/php/7.4/fpm/conf.d/00-ioncube.ini
- 将以下指令添加到文件中。
zend_extension = /usr/lib/php/ioncube/ioncube_loader_lin_7.4.so
保存并关闭文件。
- 创建文件运行 PHP 配置文件。
$ sudo nano /etc/php/7.4/fpm/conf.d/filerun.ini
- 将以下 PHP 设置添加到文件中。
expose_php = Off error_reporting = E_ALL & ~E_NOTICE display_errors = Off display_startup_errors = Off log_errors = On ignore_repeated_errors = Off allow_url_fopen = On allow_url_include = Off variables_order = "GPCS" allow_webdav_methods = On memory_limit = 256M max_execution_time = 300 output_buffering = Off output_handler = "" zlib.output_compression = Off zlib.output_handler = "" safe_mode = Off register_globals = Off magic_quotes_gpc = Off upload_max_filesize = 25M post_max_size = 25M enable_dl = Off disable_functions = "" disable_classes = "" session.save_handler = files session.use_cookies = 1 session.use_only_cookies = 1 session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_httponly = 1 date.timezone = "UTC"
保存并关闭文件。
- 重新启动 PHP-FPM 以保存更改。
$ sudo systemctl restart php7.4-fpm
五、安装文件运行
- 创建一个新的 FileRun Web 根目录。
$ sudo mkdir /usr/share/nginx/filerun
- 下载最新的文件运行发布文件。
$ wget -O FileRun.zip https://filerun.com/download-latest-ubuntu-nginx
- 将文件从文件提取到 Web 根目录。
FileRun.zip
$ sudo unzip -d /usr/share/nginx/filerun FileRun.zip
- 在目录中创建一个主文件夹。
superuser
$ sudo mkdir /usr/share/nginx/filerun/example-home
- 授予对目录的 Nginx 所有权权限。
$ sudo chown -R www-data:www-data /usr/share/nginx/filerun
六、配置 Nginx
- 创建一个新的 FileRun Nginx 配置文件。
$ sudo touch /etc/nginx/conf.d/filerun.conf
- 打开并编辑文件。
$ sudo nano /etc/nginx/conf.d/filerun.conf
- 添加以下内容。替换为您的实际域名。
filerun.example.com
server { listen 80; listen [::]:80; server_name filerun.example.com; root /usr/share/nginx/filerun; index index.php index.html; location / { try_files $uri $uri/ /index.php; } location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass 127.0.0.1:9000; } location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { expires 360d; } location ~ /\.ht { deny all; } }
保存并关闭文件。
- 测试 Nginx 配置是否存在错误。
$ sudo nginx -t
- 重新启动 Nginx 以保存更改。
$ sudo systemctl restart nginx
七、安全
FileRun 不需要任何特殊端口即可运行,除了 HTTP 和 HTTPS 访问。默认情况下,UFW 在 Vultr 一键式 LEMP 实例上处于活动状态。将其配置为允许访问 FileRun Web 界面。
- 验证 UFW 防火墙状态。
$ sudo ufw status
如果处于非活动状态,请运行以下命令以激活 UFW。
$ sudo ufw enable
- 允许在端口 上进行 HTTP 访问。
80
$ sudo ufw allow 80/tcp
- 允许端口上的 HTTPS 。
443
$ sudo ufw allow 443/tcp
- 重新启动防火墙以保存更改。
$ sudo ufw reload
7.1、安全文件使用有效的 SSL 证书运行
- 验证快照是否为最新。
$ sudo snap install core; sudo snap refresh core
- 安装 Certbot Let’s Encrypt 应用程序。
$ sudo snap install --classic certbot
- 激活 Certbot 命令。
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
- 请求免费的 SSL 证书。替换为您的实际域名,并在出现提示时打开自动重定向。
filerun.example.com
$ sudo certbot -d filerun.example.com --agree-tos
- 测试证书自动续订。
$ sudo certbot renew --dry-run
- 重新启动 Nginx 以保存更改。
$ sudo systemctl restart nginx
八、配置文件运行
- 使用您选择的 Web 浏览器,访问您的服务器域。
https://filerun.example.com
- 在“欢迎使用 FileRun”向导中,单击“下一步”检查所有最低服务器要求。
- 在“数据库设置”页上,保留为 MySQL 主机名和端口。
localhost
3306
- 输入您之前创建的数据库名称、用户名和密码。
- 单击“下一步”安装所有“文件运行”数据库表。
- 将默认帐户用户名和密码复制到剪贴板,然后转到“下一步”以访问“FileRun 登录”页面。
- 使用您的用户名和默认密码登录。
superuser
- 在主 FileRun 仪表板上,单击左下角的控制面板。
- 将管理员用户名更改为自定义用户名,然后在密码:字段中输入新的强密码。
superuser
- 导航到基本信息旁边的权限选项卡。
- 输入您之前在主文件夹部分中创建的完整主目录路径。
/usr/share/nginx/filerun/example-home
- 单击检查路径以验证目录,然后单击保存更改以加载更改。
- 要创建其他用户,请单击管理员用户,然后按用户名和密码设置新用户。
- 退出控制面板以开始在 FileRun 服务器上上传和共享文件。