基于LNMP搭建私有网盘FileRun

环境准备

Linux操作系统:Ubantu 20.04

推荐使用云主机
笔者使用的是,阿里云学生认证成功后,送的云服务器服务。
本地部署的虚拟机也可以,就是要自己配置好网络,使用云服务器可以偷一下懒

第1步-更新软件安装包

在安装LNMP架构之前,先在Ubantu 20.04操作系统上运行以下命令来更新存储库和软件包。

sudo apt update
sudo apt upgrade -y

在这里插入图片描述

第2步-安装Nginx Web服务器

Nginx是一个高性能的Web服务器,它可以用作反向代理和缓存服务器。输入以下命令安装Ngnix Web服务器。

sudo apt install nginx -y

在这里插入图片描述
安装完成后,设置Ngnix在启动时自动启动。

sudo systemctl enable nginx
sudo systemctl start nginx

在这里插入图片描述
在这里插入图片描述
在浏览器中打开服务器的IP地址,显示Ngnix的欢迎页面
在这里插入图片描述

第3步-安装MariaDB数据库服务器

该服务器将管理FileRun数据库,该数据库保存应用程序设置,用户设置和有关文件的信息。
开始安装数据库服务器MariaDB将安装并运行:

sudo apt install mariadb-server mariadb-client -y

在这里插入图片描述
启动MariaDB服务,并MariaDB启动时自动启动。

sudo systemctl start mariadb
sudo systemctl enable mariadb

在这里插入图片描述
现在运行安装后安全脚本。

sudo mysql_secure_installation

在这里插入图片描述
该提示要求输入当前的MariaDB根密码。由于刚安装MariaDB,没有根密码,所以将期留空。然后按照提示设置密码:ENTER
在这里插入图片描述
设置root密码(我设的是:Huawei12#$)
在这里插入图片描述
剩下的步骤分别是移除默认的匿名账户、禁止root账户的远程登录、删除test数据库、重新加载特权表让更改生效等,一路按Y确认即可。
在这里插入图片描述

第4步-设置FileRun的数据库

先使用root账户登录MySQL;

sudo mysql

在这里插入图片描述
FileRun数据库可以随意命名,为了方便记忆,本示例使用filerun为该数据库的名称。

CREATE DATABASE filerun;

在这里插入图片描述
然后创建一个单独的MySQL用户账户来管理新创建的数据库。从管理和安全的角度来想,创建单一功能的数据库和账户更安全。与数据库的命名一样,这里使用’filerun’为用户名,。

CREATE USER 'filerun'@'localhost' IDENTIFIED BY 'YOUR-DB-PASSWORD';  

注:这里的’YOUR-DB-PASSWORD’ 是设置你filerun数据库的filerun用户的密码,笔者设置为了’Huawei12#$’
在这里插入图片描述
现在授予用户对于新创建的数据库的所有权限:

GRANT ALL ON filerun.* TO 'filerun'@'localhost'; 

在这里插入图片描述
在用户分配了对数据库的访问权限后,执行刷新权限操作以确保正在运行的MySQL实例知道最近的权限分配:

FLUSH PRIVILEGES;  

在这里插入图片描述

结束MySQL的配置,退出会话:

exit

在这里插入图片描述
记下数据库名称filerun、用户名filerun和密码,后续的配置会再次使用到这些数据。

第5步-安装PHP 7.4

输入以下命令安装PHP 7.4和FileRun所需的扩展。

sudo apt install php7.4 php7.4-fpm php7.4-mysql 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-gd php7.4-ldap php7.4-imagick  -y

在这里插入图片描述
安装完成后,可以运行以下命令来确认PHP版本:

php -v

在这里插入图片描述
安装memcached,安装之后网页加载速度有明显的提升,因此建议安装。

sudo apt install memcached libmemcached-tools php-memcached -y

在这里插入图片描述

第6步-安装PHP ionCube 扩展

手动安装PHP扩展ionCube:

下载软件包(Linux 64位)

sudo wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz  

在这里插入图片描述
解压压缩包

sudo tar -xzf ioncube_loaders_lin_x86-64.tar.gz -C /usr/lib/php  

在这里插入图片描述
配置PHP扩展的基础配置:

sudo vim /etc/php/7.4/fpm/conf.d/00-ioncube.ini  

在这里插入图片描述
并在里面粘贴以下内容:

zend_extension = /usr/lib/php/ioncube/ioncube_loader_lin_7.4.so 

在这里插入图片描述

安装ionCube扩展后,创建一个文件,PHP会自动将其附加到其配置中。这将包括FileRun的所有设置。

sudo vim /etc/php/7.4/fpm/conf.d/filerun.ini  

在这里插入图片描述
将以下内容粘贴到创建的文件中

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            = 128M  
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     = 20M  
post_max_size           = 20M  
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"  


在这里插入图片描述
注意:可以在这里找到FileRun建议的最新PHP设置:http://docs.filerun.com/php_configuration

笔者实测 upload_max_filesize = 20M post_max_size = 20M两个值可以适当改大一些,可以提高上传大文件时的速度,但不能太大,否则可能适得其反,两个值要相同,个人建议设置在20M-200M之间。(实验时,两个数据笔者填了100M)

最后,重新启动PHP-FPM,并设置开机自启动。

sudo systemctl restart php7.4-fpm  
sudo systemctl enable php7.4-fpm  

在这里插入图片描述
检查运行状态:

systemctl status php7.4-fpm  

在这里插入图片描述
输出的状态时 active (running).
如果上述命令运行后没有立即退出,需要按q 才能退出。

第7步-使用PHP配置NGINX

创建一个 Nginx 服务器块。NGINX 服务器块就像 Apache 中的虚拟主机。不使用默认服务器块,因为它不足以运行 PHP 代码,如果修改它,它就会变得一团糟。因此,通过运行以下命令删除 sites-enabled 目录中的默认符号链接。(它仍然可以作为 /etc/nginx/sites-available/default 使用。)

sudo rm /etc/nginx/sites-enabled/default  

在这里插入图片描述
然后在目录下创建一个全新的服务器块文件*/etc/nginx/conf.d/*

sudo vim /etc/nginx/conf.d/default.conf  

在这里插入图片描述

在里面粘贴以下内容:

server {  
  listen 80;
  listen [::]:80;
  server_name _;
  root /var/www/html/;
  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;
    include snippets/fastcgi-php.conf;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

在这里插入图片描述

配置文件上传网盘的最大值
1.打开nginx的配置文件(通常位于/etc/nginx/nginx.conf)。

sudo vim /etc/nginx/nginx.conf

2.在http块中,找到或添加以下行:

client_max_body_size 100M;

这将设置请求值的最大大小为1024MB。可以根据自己的需要增加或减少这个值。
在这里插入图片描述
3. 保存并关闭文件。

/wq! 

然后测试NGINX配置:

sudo nginx -t  

在这里插入图片描述
如果测试成功,重新加载NGINX:

sudo systemctl reload nginx  

以上服务器的配置需求基本完成,可以继续安装FileRun。
如果测试不成功,检测上面步骤有没有出错的地方。

第8步-安装FileRun

从网络服务器的根文件夹中清除默许文件 /var/www/html

cd /var/www/html/  
sudo rm index.nginx-debian.html

在这里插入图片描述
下载文件运行

sudo wget -O FileRun.zip https://filerun.com/download-latest-ubuntu-nginx 

在这里插入图片描述
在2023年7月6号,发现FileRun官方已经不公开个人免费版的客户端了,可以下载以下的百度云链接里面的客户端文件,然后通过远程连接工具传输文件到云服务器里,推荐的工具有FinalShell、Xshell等等。
传输成功后就安装uzip工具在云服务器里面解压文件。

FileRun客户端文件下载链接:https://pan.baidu.com/s/1hVbkrSbho7v9xB7QoPbt4A?pwd=8888

在这里插入图片描述
安装unzip

sudo apt-get install unzip  

在这里插入图片描述
提取下载的FileRun存档

sudo unzip FileRun.zip 

在这里插入图片描述
注意:下载百度云链接的文件,要先传输到云服务器再解压,以实际下载的文件名为准,切记不要照搬)

使HTTP服务器成为文件夹的所有者,以便它可以进行更改

sudo chown -R www-data:www-data /var/www/html/  

在这里插入图片描述
同时给最高权限

sudo chmod -R 777 /var/www/html

在这里插入图片描述
打开浏览器并将其指向 http://YOUR-SERVER-IP
然后按照提示来完成操作
在这里插入图片描述

单击以继续。查看服务器要求检查并确保没有红色错误消息: Next
在这里插入图片描述
单击以继续数据库连接设置: Next
 输入在上述步骤2中的使用的: Database name filerun
 输入: MySQL user filerun
 输入: Password YOUR-DB-PASSWORD
 然后单击Next
在这里插入图片描述
FileRun安装成功
在这里插入图片描述
注意要记下密码
在这里插入图片描述
登录成功
在这里插入图片描述
在这里插入图片描述
接下来先改上传中文翻译文件把界面改成中文

或者:
汉化文件Chinese.php :https://pan.baidu.com/s/1IktZsVBVyIf5EBh6Xn8Iww?pwd=8888 

在这里插入图片描述
然后导入汉化文件
在这里插入图片描述
在这里插入图片描述
Save changes 之后,需要刷新一下页面,但是在 Chrome浏览器 中似乎并没有完全汉化,删了 cookie 也一样,换Edge浏览器登录filerun就好了
在这里插入图片描述
更改superuser密码(密码设置为:Huawei12#$)
在这里插入图片描述

第9步-配置目录+安装缩略图

安装完成后FileRun需要写权限的唯一目录是system/data,因此可以仅允许PHP对system/data有写权限,其他文件需要root权限才能修改:

sudo chown -R root:root /var/www/html  

在这里插入图片描述
FileRun 文件夹是 PHP 需要写访问权限的唯一文件夹

sudo chown -R www-data:www-data /var/www/html/system/data  

在这里插入图片描述

为superuser配置存储文件的主目录

现在让我们设置 FileRun 超级用户的主文件夹。主文件夹路径指向位于 Web 服务器公共区域之外(即外部)的文件夹非常重要。
可以创建一个文件夹并将所有FileRun文件存储在其中:/var/www/html/files

sudo mkdir /files  
sudo chown www-data:www-data /files  

在这里插入图片描述
以 root 身份连接到 MySQL 服务器:

sudo mysql  

在这里插入图片描述
更新配置的 MySQL 用户帐户并删除ALTER和DROP权限。
撤销 ALTER 和 DROP 权限是出于安全和数据完整性的考虑。ALTER 权限允许用户修改数据库中的表结构,而 DROP 权限允许用户删除数据库中的表,如果不仔细控制这两个权限,可能会导致用户无意中或有意删除或修改重要的数据,从而造成数据丢失或破坏数据完整性。

REVOKE ALTER, DROP ON filerun.* FROM 'filerun'@'localhost';  

在这里插入图片描述
刷新 MySQL 的权限表,使最新的权限更改生效

FLUSH PRIVILEGES;  
exit  

在这里插入图片描述
注意:在将来安装任何 FileRun 软件更新之前,需要重新添加这些权限。为此,再次连接
到数据库服务器并运行以下命令:
让 ‘filerun’@‘localhost’ 用户能够在 filerun 数据库中对表结构进行修改和删除表的操作。这通常是在开发或维护数据库应用程序时需要的权限,以便进行必要的表结构变更或删除操作。

sudo mysql  
GRANT  ALTER, DROP ON filerun.* TO 'filerun'@'localhost';  
FLUSH PRIVILEGES;  
exit;  

在这里插入图片描述

在控制面板里为superuser用户设置主目录
在这里插入图片描述

安装ImageMagick和Ffmpeg

为了生成图像文件,摄影文件甚至PDF文档的缩略图,按以下方式安装ImageMagick:

sudo apt install imagemagick -y

在这里插入图片描述
并在控制面板的 FileRun 中启用它,在Configuration> Interface>Thumbnails and preview部分下,通过将ImageMagick support的设置Mode为IMagick PHP Extension. 请按下Check version按钮以确保 FileRun 可以使用该设置。
在这里插入图片描述
为了生成视频文件的缩略图,按以下方式安装FFmpeg:

sudo apt install ffmpeg -y

在这里插入图片描述
并使用路径在 *System configuration > Files >*部分下的控制面板的 FileRun 中启用它。Image preview /usr/bin/ffmpeg
在这里插入图片描述
以上基本网盘配置完成,可以直接使用网盘,直接IP地址访问
在这里插入图片描述
现在,可以上传文件并可以看到不同格式文件的缩略图啦(域名是申请的)
在这里插入图片描述

第10步-实现self-signed(自签名)证书保护网盘

  1. 安装 OpenSSL 工具
    您需要先在服务器上安装 OpenSSL 工具。在 Ubuntu 上,可以使用以下命令安装 OpenSSL:
sudo apt update
sudo apt install openssl

在这里插入图片描述
2. 生成私钥
使用以下命令创建该目录,并确保您有写入该目录的权限:

sudo mkdir -p /etc/nginx/ssl
sudo chown -R $USER:$USER /etc/nginx/ssl

在这里插入图片描述
接下来,使用以下命令生成一个 2048 位的 RSA 私钥:

sudo openssl genrsa -out /etc/nginx/ssl/mydomain.key 2048

在这里插入图片描述
这将在 /etc/nginx/ssl 目录下生成一个名为 mydomain.key 的私钥文件。

  1. 生成自签名证书
    然后,使用以下命令生成一个有效期为 365 天的自签名证书:
sudo openssl req -new -x509 -days 365 -key /etc/nginx/ssl/mydomain.key -out /etc/nginx/ssl/mydomain.crt

在这里插入图片描述
可以按提示输入信息或者自己回车键跳过就好
在执行此命令时,需要为申请的网站提供一些信息,例如组织名称、国家/地区、城市、常用名等。

  1. 配置 Nginx
    打开配置文件
sudo vim /etc/nginx/conf.d/default.conf

在这里插入图片描述
在 Nginx 的配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name mydomain.com;  # 域名或 IP 地址
    ssl_certificate /etc/nginx/ssl/mydomain.crt;
    ssl_certificate_key /etc/nginx/ssl/mydomain.key;

    ...  # 其他配置
}

在这里插入图片描述

注意,需要将 server_name 指令设置为域名或 IP 地址。

  1. 重启 Nginx
    最后,重新启动 Nginx 使配置生效:
sudo systemctl restart nginx

在这里插入图片描述
现在,已经成功生成了自签名证书,并在 Nginx 服务器上配置了 SSL/TLS。注意,因为自签名证书不受信任,访问者可能会看到浏览器警告。如果网站是公共可访问的,仍然应该使用经过验证的 SSL/TLS 证书以确保访问者的安全性和信任。

最后-关于申请域名

申请域名不是必要的步骤,也可以没有域名,单纯的IP地址访问网盘。
申请域名是为了申请CA证书,申请CA证书是为了保护网站的访问安全(没域名申请不了CA证书)。
没有CA证书的保护,搭建的网盘容易数据泄露、篡改攻击、中间人攻击等等
域名申请的网站有很多,有免费的,有付费的,这里只写我推荐的。
域名申请及域名绑定IP地址教程
:https://www.bilibili.com/video/BV11E411L7AA/?share_source=copy_web&vd_source=11c796490f067784641c56082eab1526

注意:国内的使用域名和域名解析服务是需要申请备案的,备案网站的用途,备案时间很长很麻烦。所以建议国外的云主机+国外域名,不用审核。

步骤省略了… 试着自己去怎么实现为自己的私有网盘申请域名啦!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值