使用CVM搭建FileRun私人网盘

简介

FileRun是由PHP编写的文件管理器和文件共享程序,可帮助您访问,整理,查看和编辑文件。您可以将其与Office文档,照片,音乐等文件一起使用。在本教程中,我们将在CentOS 7服务器上安装FileRun。

准备

要学习本教程,您需要:

FileRun是一个非常省内存的服务,一般情况下512MB的内存应该足够了。至于硬盘空间,FileRun及其所有必需的第三方软件将会使用不超过2GB的空间。(校者注:注意这里仅仅是指装软件的大小,非文件所需硬盘大小)

第一步、设置FileRun的数据库

FileRun使用MariaDB来管理其数据库,该数据库包含应用程序设置,用户设置和有关文件的信息。首先,我们将创建此数据库和用户帐户。

使用服务器上的root帐户登录MariaDB。

mysql -u root -p

输入MariaDB root用户设置的密码。

FileRun需要一个单独的数据库来存储其数据。您可以随意调用这个数据库; 在这里,我们使用名称 filerun

CREATE DATABASE filerun; 

接下来,创建一个单独的MariaDB用户帐户,该帐户将与新创建的数据库进行交互。从管理和安全角度来看,我们应该创建单功能数据库和帐户。

与命名数据库一样,您可以选择任何的用户名。在这里,我们使用 sammy

GRANT ALL ON filerun.* to 'sammy'@'localhost' IDENTIFIED BY 'your_database_password'; 

在用户分配了对数据库的访问权限后,刷新授权表以确保MariaDB的运行实例可以更新最新的权限分配。

FLUSH PRIVILEGES;

现在您可以退出MariaDB。

exit

记下数据库名称 filerun ,用户名 sammy 和您设置的密码。

第二步、设置PHP

PHP-FPM(FastCGI Process Manager)是另一种PHP FastCGI的实现,它具有一些针对于繁忙站点的附加功能。PHP脚本创建的文件不会被Web服务器占有。这意味着您可以通过FTP或其他方法同时访问它们。

FileRun需要PHP 5.5或更高版本。CentOS 7默认只提供较旧的PHP版本5.4,因此我们首先需要更新yum存储库。

sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

现在,安装PHP 5.6。

sudo yum install php56w-fpm

接下来,为PHP-FPM设置开机系统启动并启动。

sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service

PHP-FPM是一个守护进程(使用init脚本/etc/init.d/php-fpm),它在端口9000上运行FastCGI服务器。为了使Apache能够使用PHP-FPM,我们可以在每个应该使用PHP-FPMProxyPassMatch指令中使用vhost指令。编辑Apache配置文件:

sudo vi /etc/httpd/conf/httpd.conf

IncludeOptional conf.d/*.conf之前的末尾添加此块。

添加到httpd.conf的部分如下:

<IfModule proxy_module>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
</IfModule>

它应该如下所示:

. . .
#EnableMMAP off
EnableSendFile on

<IfModule proxy_module>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
</IfModule>

# Supplemental configuration
#
# Load  config files in the "/etc/httpd/conf.d" directory if any.
IncludeOptional conf.f/*.conf

接下来,在同一个文件中上面的位置,找到DirectoryIndex指令添加index.php。,具体代码如下:

. . .
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
. . .

重新启动Apache以完成PHP的安装。

sudo systemctl restart httpd.service

FileRun还需要以下额外的PHP模块:

  • php56w-mbstring:允许FileRun处理多字节字符。
  • php56w-pdo和php56w-mysql:它允许FileRun使用MySQL / MariaDB数据库。
  • php56w-mcrypt:它为FileRun提供加密功能。
  • php56w-gd:可选,但这可以允许FileRun生成用户头像,QR码和其他类似图像。
  • php56w-opcache :可选,能大大提高PHP的性能。

我们可以使用以下命令安装以上所有内容:

sudo yum install php56w-mbstring php56w-mcrypt php56w-opcache php56w-pdo php56w-mysql php56w-gd

ionCube是一种广泛使用的PHP扩展,用于运行受保护的PHP代码,以提高网站安全性,阻止恶意软件并提高性能,但是他未包含在yum存储库中,所以我们需要将最新的ionCube版本下载到目录/usr/lib64/php/modules中。

sudo wget -P /usr/lib64/php/modules http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

然后解压该目录中的文件。

sudo tar xvfz /usr/lib64/php/modules/ioncube_loaders_lin_x86-64.tar.gz -C /usr/lib64/php/modules

接下来,让我们创建一个文件,该文件将由PHP配置,包括特定的FileRun的设置。

sudo vi /etc/php.d/filerun.ini 

将以下内容粘贴到创建的文件中:

date.timezone  = "UTC"
zend_extension = "/usr/lib64/php/modules/ioncube/ioncube_loader_lin_5.6.so"

此操作将会设置时区并让PHP加载ionCube扩展。我们选择了UTC时区,但您可以选择自己的时区。

注意: 此命令可以附加到文件/etc/php.d/filerun.ini中,您可以在此处查看FileRun推荐的所有PHP设置

最后,我们需要重新启动PHP-FPM服务才能使更改生效:

sudo systemctl restart php-fpm.service

接下来,我们可以继续安装FileRun。

第三步、安装FileRun

在webserver(/var/www/html/)的根目录下载FileRun :

cd /var/www/html/
sudo wget -O FileRun.zip http://www.filerun.com/download-latest

我们需要用unzip命令提取FileRun安装程序。

sudo yum install unzip

现在,解压缩FIleRun。

sudo yum install unzip

给Apache赋予权限,以便允许PHP安装FileRun。

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

打开浏览器并将其指向http://your_server_ip从这里开始,您只需要打开网页即可安装程序,点击几下即可帮助您运行FileRun。

欢迎使用FileRun!界面 上,单击右下角蓝色的" 下一步" 按钮继续。查看下一页上的服务器要求检查以确保没有红色错误消息,然后再次单击" 下一步"

下一页设置数据库连接。填写如下字段:

  • MySQL主机名 应该是 localhost
  • 数据库名称 应该是您在本教程的第2步中使用的名称。我们的例子使用了 filerun
  • MySQL用户 应该是您在本教程的第2步中使用的名称。我们的例子使用了 sammy
  • 密码 应该是您在步骤2中选择的密码。

填写完成后,单击" 下一步" 。您将看到一个 全部完成 的界面,这意味着FileRun已成功安装。

注意 :您将在此界面上看到用户名和(随机生成的)密码。请保存好这个密码。

单击" 下一步" 打开FileRun。您将看到一个登录页面。登录表单会自动填写,因此您只需单击" 登录即可 。

第四步、保证FileRun安装的安全性

登录FileRun,系统就会提示您更改密码。

警告: FileRun的超级用户是唯一不受强力登录攻击保护的帐户,因此设置一个难以猜测的密码非常重要。密码应当包含大写字母,数字和符号。

FileRun应用程序文件的权限不应允许PHP(或任何其他Web服务器应用程序)对它们进行更改,因此请立即更新它们。

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

/var/www/html/system/data文件夹是PHP需要写访问的唯一文件夹,因此也需要更新。

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

默认情况下,超级用户的主文件夹位于/var/www/html/system/data/内部。所以,从FileRun控制面板编辑用户帐户,并将主文件夹路径设置为位于Web服务器公共区域外(即/var/www/html外部)的文件夹是一个非常重要的步骤。

一个简单的解决方案是创建一个名为/files的目录,并将所有FileRun文件存储在其中:

sudo mkdir /files
sudo chown apache:apache /files

接下来,再次连接到MariaDB服务器:

mysql -u root -p

更新配置的MariaDB用户帐户并删除ALTER和DROP的权限:

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

然后输入CTRL+D退出MariaDB 。

注意:在将来安装任何FileRun软件更新之前,您需要先添加这些权限。为此,请再次连接到数据库服务器并运行GRANT ALTER, DROP ON filerun.* TO 'sammy'@'localhost';在运行FLUSH PRIVILEGES;

现在,我们可以确保FileRun是安全的并且是可以运行的。接下来,让我们选装一些安装包来提供一些不同文件类型的缩略图支持。

第五步、添加缩略图支持(可选)

要为图像文件,摄影文件和PDF文档生成缩略图,您需要安装ImageMagick。

sudo yum install ImageMagick* 

接下来,使用/usr/bin/convert路径从控制面板的 System Configuration > Files > Image preview 下的FileRun中启用它。

要为视频文件生成缩略图,您需要安装ffmpeg,它可以在ATrpms包存储库中找到。

sudo rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms
sudo rpm -ivh http://dl.atrpms.net/el6-x86_64/atrpms/stable/atrpms-repo-6-7.el6.x86_64.rpm

安装它。

sudo yum install ffmpeg 

同样,使用/usr/bin/ffmpeg路径从控制面板,在 系统配置 > 文件 > 图像预览 部分下,在FileRun中启用它。

如果您在浏览器中访问FileRun,您将可以看到文件的缩略图。

总结

您现在已经在自己的私有安全CVM服务器上成功部署了FileRun。您可以上传或分享文件,照片,音乐,工作文档等。

您也可以设置SSL。SSL证书将加密浏览器与FileRun安装之间的通信。它不仅可以显著提高数据的隐私性和安全性,还可以让您使用免费的FileRun Android应用程序访问您的文件。免费使用SSL证书详见:https://cloud.tencent.com/product/ssl


参考文献:《How To Share Files with FileRun on CentOS 7》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博客

MVC项目开发中那些用到的知识点(js css优化-- 合并和压缩)

在项目框架中,首先要引用很多css和js文件,80%的用户响应时间都是浪费在前端。而这些时间主要又是因为下载图片、样式表、JavaScript脚本、flash等...

23420
来自专栏张戈的专栏

Nginx开启fastcgi_cache缓存加速,支持html伪静态页面

张戈博客不久前分享过 Nginx 开启缓存为 WordPress 加速的教程,其中分享了 2 种缓存模式:代理模式和本地模式。我一直以为单个 ngx_cache...

1K50
来自专栏木子昭的博客

5分钟将简书markdown文章批量迁移到django站点

链接地址: https://fangyuanxiaozhan.com (欢迎访问, 哈哈!)

11530
来自专栏linux、Python学习

Linux基础教程之linux文件权限深度解读

基本命令—— 1.cut : cat /etc/passwd | cut -d’:’ -f7| uniq -c| sort -nr

10500
来自专栏运维小白

linux基础(day 32)

10.6 监控io性能 监控系统状态 iostat -x 磁盘使用 iotop 磁盘使用 查看磁盘使用情况 在运维工作中,除了查看CPU和内存之外,磁盘的io...

32280
来自专栏散尽浮华

进程管理利器-supervisor部署记录

一、简单介绍 supervisor是用来管理进程的一个工具,止于为什么要用supervisor,是因为相对于linux传统的进程管理方式来说,它有很多的优势: ...

43980
来自专栏依乐祝

asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程

最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下...

13610
来自专栏流星博客

WordPress内外链自动添加GO跳转

经常看到一些博客点击外链跳转到其他网站上的时候都会有一个跳转页面,很是漂亮。据说是有利于SEO,保护站点权重,不过个人只是觉得好看、高逼格便加上了 。网上相关的...

25440
来自专栏张戈的专栏

WordPress免插件生成完整站点地图(sitemap.xml)的php代码

前言:站点地图(sitemap.xml)的作用,相信站长们都有所了解,我就不献宝了。而免插件生成 sitemap.xml,网络上也早就有了纯代码生成的方法。 一...

41550
来自专栏Java开发

Linux中bond网卡绑定方法

HWADDR对应mac地址 # ifconfig -a 可以查看 UUID对应网卡UUID Linux 查看网卡UUID

27810

扫码关注云+社区

领取腾讯云代金券