lala.im:在Debian10上安装FileRun

運維技術·lala.im · 2021-01-14 · 99 人浏览

原文地址:https://lala.im/7695.html,請支持原作者!該處僅作轉載。

FileRun是一个类似于Nextcloud的PHP网盘程序,其实说实话如果不考虑多用户的话这个真的比Nextcloud好用。
Nextcloud实在是太臃肿了,性能堪忧,而FileRun很明显没有这方面的问题。
其次是在功能方面,FileRun一点都不输Nextcloud,要说槽点就是同步客户端竟然还是用的Nextcloud的客户端。。
另外就是FileRun的源代码是用ionCube加密过的,免费版还有用户数量限制,更新也没有Nextcloud频繁。如果你比较崇尚开源软件,那Nextcloud应该是更好的选择。
我很久以前水过一篇用宝塔面板的LAMP搭建这个网盘的文章,不过自从宝塔面板频繁出幺蛾子问题后,我就很久没有用过宝塔面板了。
以前的宝塔面板确实很方便,适合我这种喜欢偷懒的人,为我节省了不少时间。但是我也不想自己的服务器因为我的懒惰而出安全问题。。。
最近发现这个FileRun增加了很多新的功能,所以决定在Debian10上手动装一个LNMP环境来搭建它。其实也可以用Docker,但是这个程序我个人不建议使用Docker,原因就不细说了。
下面的部署步骤是我目前生产机器上的,有需要的可以参考一下。
安装nginx/certbot/mariadb和一些基本工具:

apt -y update
apt -y install nginx python-certbot-nginx mariadb-server unzip wget

安装php7.3:

apt -y install php7.3-fpm php7.3-mysql php7.3-mbstring php7.3-zip php7.3-curl php7.3-gd php7.3-ldap php7.3-xml php7.3-imagick

安装pngquant/imagemagick/ffmpeg,用于生成图片和视频的缩略图:

apt -y install pngquant imagemagick ffmpeg

安装stl-thumb,这也是用于生成缩略图的软件,但不是必须,你可以选择性安装:

wget https://github.com/unlimitedbacon/stl-thumb/releases/download/v0.3.1/stl-thumb_0.3.1_amd64.deb
dpkg -i stl-thumb_0.3.1_amd64.deb
apt -f install
dpkg -i stl-thumb_0.3.1_amd64.deb

设置nginx/mariadb/php的开机自启:

systemctl enable --now nginx mariadb php7.3-fpm

之前说过FileRun的源代码是使用ionCube加密过的,这里还需要安装ionCube的PHP扩展:

wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -xzvf ioncube_loaders_lin_x86-64.tar.gz -C /usr/local

修改cli的php.ini,这个其实可选,因为nginx是通过php-fpm工作的,这里只是为了后续验证一下ionCube扩展是否加载成功:

nano /etc/php/7.3/cli/php.ini

文件的末尾加入下面的配置:

zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so

修改fpm的php.ini:

nano /etc/php/7.3/fpm/php.ini

文件的末尾加入下面的配置:

zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so

执行下面的命令查看ionCube扩展是否能够加载:

php -v

有类似下面的回显说明正常:

PHP 7.3.19-1~deb10u1 (cli) (built: Jul  5 2020 06:46:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
    with the ionCube PHP Loader + ionCube24 v10.4.5, Copyright (c) 2002-2020, by ionCube Ltd.
    with Zend OPcache v7.3.19-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

对于php-fpm还需要重启才能使加载的模块生效:

systemctl restart php7.3-fpm.service

初始化mariadb数据库:

mysql_secure_installation

登录到mariadb数据库创建数据库和用户:

mysql -u root -p
CREATE DATABASE filerun CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON filerun.* TO filerun@localhost IDENTIFIED BY '设置你的数据库用户密码';
FLUSH PRIVILEGES;
quit

下载解压filerun的源码并给予正确的权限:

cd /var/www/
wget -O FileRun.zip 'https://f.afian.se/wl/?id=yjp3GfHKwTEmEJ0WEKjyfMHFUr7ZAdEn&recipient=d3d3Lmdvb2dsZS5jby5qcA%3D%3D'
unzip FileRun.zip -d filerun
chown -R www-data:www-data filerun

如果下载地址有变化,你可以到这里查看到新的下载地址:
https://filerun.com/download
现在新建nginx站点配置文件:

nano /etc/nginx/conf.d/filerun.conf

写入如下配置:

server {
  listen      80;
  server_name filerun.imlala.best; # 换成你的域名
  root        /var/www/filerun;
  index       index.php;
  client_max_body_size 0;

  location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
  }
}

使用certbot签发ssl证书:

certbot --nginx

现在创建一个数据存储目录,注意存储目录不要创建到filerun的web目录下,这样会造成文件越权访问,你可以任意创建一个目录,只要不是在/var/www/filerun下面即可。
例如在系统的根目录下创建,注意所有者权限,一定要是www-data:

mkdir /storage
chown www-data:www-data /storage

现在访问你的域名,检查之前配置的环境是否正常:

範例
配置你的数据库连接信息:

範例
安装完成之后,登录到后台,第一件事修改你的存储目录,我们之前创建了/storage目录,这里就可以写成/storage/admin,然后点击创建目录。
当然你也可以直接写/storage,就不用创建子目录了,但对于多用户而言,再细分一下会比较好:

範例
其次是关于语言的问题,程序是支持中文的,但支持的不是很全,你可以在这里下载翻译文件:
https://github.com/filerun/translations
然后通过下图所示的地方上传启用:

範例
最后我们还需要配置一下之前安装的ffmpeg等执行文件的路径:

範例
下面这两个,之前也是安装过的,如果有需要也可以启用:

範例
filerun还支持全文搜索和OCR,但我没有这方面的需求所以就不配置了,另外配置这些会比较废内存,小内存的机器就不要尝试了,如果你有这方面的需求可以看看这里的文档:
https://docs.filerun.com/file_indexing
另外关于官方的文档上面提到了一些php的参数配置,例如脚本执行超时时间,文件上传大小之类的。
我实际上测试过了,这些都不需要更改你就可以上传大文件,保持debian默认的即可。
但是如果你遇到了大文件上传出错啊之类的问题,可以尝试着改一下fpm的php.ini配置:

nano /etc/php/7.3/fpm/php.ini

主要就这几个参数:

memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 100M
post_max_size = 100M
運維技術 lala.im
Theme Jasmine by Kent Liao