如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

介绍

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使用Pydio(以前称为AjaXplorer)托管您自己的Dropbox类文件共享服务器。

Pydio提供了许多与其他文件同步服务相同的功能:Web界面,Mac,Windows和Linux的本机客户端,iOS和Android的移动客户端,以及与其他Pydio用户或公众共享文件的功能。

目标

在本文中,我们将展示一个简单的Pydio安装,即使没有强大的硬件也能很好地运行。像许多企业级开源项目一样,Pydio拥有社区版和企业版。我们将安装社区版。

就我们的软件堆栈而言,我们将使用Postfix来支持电子邮件; 默认情况下,PHP无法发送电子邮件。如果你想要一个更轻的解决方案,你可以安装ssmtp,但这个设置使用Postfix,因为它需要最少量的调整才能让PHP支持它。请注意,不需要启用电子邮件支持,但它使事情变得更简单; 没有它,Pydio将无法发送密码重置电子邮件或欢迎电子邮件。

我们还将坚持使用Apache作为我们的Web服务器(为简单起见)和SQLite数据库(而不是MySQL,以减少移动部件)。如果使用Pydio的组不大或者没有同时将大量数据推送到服务器,则此设置很好。但是,如果您需要更强大的功能,那么在结论中如何提高性能有一些指导原则。

准备

要学习本教程,您需要:

  • 一个带有sudo权限的非root用户的Ubuntu 14.04 腾讯云CVM。(你需要一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。)
  • 已安装Apache
  • FQDN(完全限定域名)。如果你没有域名,建议您先去这里注册一个域名,您需要将域名解析到您的服务器,您可以使用腾讯云云解析进行快速设置。
  • 已安装Postfix,在安装过程中出现提示时,选择“ Internet站点”配置,然后输入系统邮件名称的域名(例如example.com)。
  • 如果你有域名,保护你网站的最简单方法是使用腾讯云SSL证书服务,它提供免费的可信证书。腾讯云SSL证书安装操作指南进行设置。
  • 如果你没有域名,建议您先去这里注册一个域名,如果你只是使用此配置进行测试或个人使用,则可以使用自签名证书,不需要购买域名。自签名证书提供了相同类型的加密,但没有域名验证公告。关于自签名证书,你可以参考为Apache创建自签名SSL证书如何为Nginx创建自签名SSL证书这两篇文章。)

但为了简化设置,我们不会在步骤3中安装Pydio之前进行设置。

第1步 - 安装Pydio

在这一步中,我们将安装Pydio的依赖项和Pydio本身。

首先,更新您的包索引。

sudo apt-get update

现在,安装PHP。

sudo apt-get install php5 libapache2-mod-php5

接下来,我们需要下载Pydio tar文件并在我们的Web服务器上解压缩。Pydio下载托管在SourceForge上。您可以点击查看最接近您地理位置的镜像,也可以使用下面的链接使用英国镜像。

截至发布时间,Pydio版本为6.2.2。您可能想检查Pydio是否已更新并从SourceForge获取最新版本(如果是)。

将Pydio tar文件下载到您的主目录中。

wget -P ~/ http://vorboss.dl.sourceforge.net/project/ajaxplorer/pydio/stable-channel/6.2.2/pydio-core-6.2.2.tar.gz

解压缩tarball。

tar -xvzf ~/pydio-core-6.2.2.tar.gz

然后将其移动到Ubuntu服务器上的网站的默认位置/var/www

sudo mv ~/pydio-core-6.2.2 /var/www/pydio

目录到位后,我们需要更改其权限,以便Apache可以存储数据和更新配置文件。

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

第2步 - 设置PHP模块

有了Pydio,我们需要安装并设置一些依赖项以使Pydio正常工作。我们将在此步骤中进行大量更改,并且会在每个步骤后提示我们重新启动Apache。如果你愿意,你可以这样做,但在这里,我们将等到所有设置的最后并重启Apache一次。

首先,我们将安装并启用我们需要的额外PHP模块。

sudo apt-get install php5-mcrypt php5-gd php5-sqlite

默认情况下,未启用其中一个mcryptPHP模块。我们可以使用它phpenmod

sudo php5enmod mcrypt

除了安装和启用某些PHP模块之外,我们还需要启用a2enmodApache模块或同步客户端才能工作。

sudo a2enmod rewrite

现在PHP已完全安装,我们需要在php.ini文件中进行一些编辑。有三行需要更新。使用首选编辑器nano,编辑php.ini文件。

sudo nano /etc/php5/apache2/php.ini

找到该行output_buffering = 4096并更改4096Off

; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering = Off

接下来,找到upload_max_filesize = 2M并更改2M为任何大数字,例如1G。(M表示MB,G表示GB。)

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 1G

最后,找到post_max_size = 8M并更改相同upload_max_filesize或更大的数字。如果您认为同时有多个大型上传或多个用户同时使用该系统,您可以使用更大的数字。

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 1G

您可以保存并关闭/etc/php5/apache2/php.ini。这是Apache的php.ini文件; 接下来,打开命令行访问/etc/php5/cli/php.ini文件的php.ini

sudo nano /etc/php5/cli/php.ini

如上所述在此文件中进行相同的三处更改,然后保存并关闭它。

第3步 - 配置Apache

在此步骤中,我们将自定义Apache配置。

首先,使用您喜欢的文本编辑器创建并打开一个新文件pydio.conf

sudo nano /etc/apache2/sites-available/pydio.conf

以下Apache配置是000-default配置文件的副本,其中删除了注释,并为此特定Pydio安装添加了一些额外的块,如文档根目录和日志文件。

<VirtualHost *:80>
    ServerAdmin sammy@your_server_ip
    ServerName your_server_ip
    DocumentRoot /var/www/pydio
​
    ErrorLog ${APACHE_LOG_DIR}/pydio-error.log
    CustomLog ${APACHE_LOG_DIR}/pydio-access.log combined
​
    <Directory /var/www/pydio/>
        AllowOverride All
    </Directory>
</VirtualHost>

在复制并粘贴之前pydio.conf,让我们回顾一下其中的内容:

  • <VirtualHost *:80>定义虚拟主机,允许在单个服务器上托管多个站点。此行专门将此虚拟主机定义为此服务器上的默认站点,并且它将通过端口80连接。
  • ServerAdmin 如果以这种方式设置错误处理,则定义Apache向其发送错误的电子邮件地址。
  • ServerName是Pydio服务器或服务器IP的DNS名称。如果您从IP开始并希望稍后更改它,您可以,或者您可以保留IP但添加一个ServerAlias具有新DNS名称的行; 两者都有效。
  • DocumentRoot 是Apache需要服务器在Droplet上存储网站的地方。
  • ErrorLogCustomLog定义保存Apache日志的位置。如果您需要非常自定义的日志记录设置,这些日志选项会变得非常复杂,但这些默认设置将适用于我们的目的。

将此配置粘贴到文件中,然后保存并关闭它。有了我们的Apache配置文件,我们现在需要禁用默认的Apache配置。

sudo a2dissite 000-default

现在,启用我们的两个配置文件。

sudo a2ensite pydio

在先决条件中,我们提到我们将设置Let's Encrypt以启用SSL / TLS加密。这样可以保护我们的登录信息和数据免受那些可以在我们的本地网络或互联网上嗅探数据包的人的攻击。因为我们使用Apache作为我们的网络服务器,所以Let's Encrypt支持为我们自动配置Apache。为了简单起见,我们设置了没有SSL的Apache,所以当我们运行auto Let的加密脚本时,它会为我们设置一切。

使用您在设置Let的加密期间选择的FQDN,安装程序脚本将看到我们的Apache配置并为您创建SSL版本。

确保选择pydio.conf是否询问您要选择哪个虚拟主机。因为我们希望我们的连接始终是安全的,所以请确保选择安全 -当Let的加密脚本要求时,将所有请求重定向到安全的HTTPS访问

最后,我们可以重新启动Apache以使更改生效。

sudo service apache2 restart

第4步 - 自定义PHP邮件程序支持

应该从先决条件安装Postfix。接下来,我们将要进行快速更改,以防止本地应用程序使用它。

要进行此更改,我们需要编辑Postfix配置文件/etc/postfix/main.cf

sudo nano /etc/postfix/main.cf

搜索inet_interfaces线和更新alllocalhost

. . .
recipient_delimiter = +
inet_interfaces = localhost
inet_protocols = all
. . .

现在重新启动Postfix服务以启用更改。

sudo service postfix restart

第5步 - 完成Pydio设置

Pydio已安装; 在这一步中,我们将完成设置。

用您最喜爱的浏览器访问https://example.com。您看到的第一页将标记为Pydio Diagnostic Tool。在该页面上的列表中,顶部项是关于服务器字符集编码的警告。我们马上解决这个问题。只要这是唯一的警告,其余项目都OK,点击按钮点击这里继续PYDIO

出现提示时,单击“ 启动向导”>“按钮”。在主要选项的第一页上,填写以下字段:

  • 应用程序标题,这是在浏览器的标题栏中看到的
  • 欢迎消息,可在登录屏幕上看到
  • 管理员登录,管理员用户名
  • 管理员显示名称,这听起来像
  • 管理员密码

如果全部填写完毕,请按右下方的红色>>按钮。

Database Connexion的第二页上,从Database下拉菜单中选择Sqlite 3。不要将文件行修改为SQLite数据库的存储位置。单击“ 测试连接”按钮以确保一切正常。如果测试成功,您应该会看到屏幕底部会出现一个绿色框。然后单击>>按钮继续。

高级选项的第三阶段,大多数事情将被自动检测到,因此您只需确认它们是正确的。我们需要做的一件事是启用电子邮件支持。

  • 对于启用电子邮件,请从下拉菜单中选择
  • 对于Php Mailer,请选择Mail
  • 输入管理员电子邮件的电子邮件地址

您可以单击“ 尝试使用已配置的数据发送电子邮件”按钮以确保一切正常。

最后,单击Install Pydio按钮完成安装。

第6步 - 使用Pydio

现在安装了Pydio,我们将在登录屏幕上显示自定义欢迎消息。我们现在可以使用我们在上一步中定义的管理员用户登录。

登录后,我们会在左侧看到两个选项:Common FilesMy Files。这两个选项称为工作区,它们实际上是文件共享或文件夹,您可以在其中存储文件。我的文件仅供您使用,Common Files是此Pydio安装上所有用户的共享文件夹。

我们将能够制作其他工作区并与您希望的任何人分享。现在已经安装了Pydio,单击并查看它是如何工作的,并邀请其他用户随身携带他们的文件。

虽然Web界面很有用,您可以上传,下载,排列和共享数据,但您可能会直接通过本机客户端使用Pydio上传文件。您可以在此处下载桌面客户端(Mac / Win / Linux),此处iOS客户端以及此处Android客户端

安装同步客户端后,启动Pydio Sync并按照向导使其在本地同步我们的第一个工作区。

与同步您帐户下所有内容的其他文件共享工具不同,Pydio允许您选择单独同步每个工作区。第一次运行客户端时,可以选择要在本地同步的工作空间。设置第一个同步后,您可以添加其他工作区同步。

结论

Pydio允许您控制您的数据,并与所有主要桌面和移动平台上的本机客户端一起使用,您的数据也可以随时访问。但是Pydio可以做的不仅仅是托管你的文件。有一组插件可以扩展功能。

如果您发现Pydio在此设置中的性能对于您的用例来说有点太慢,这里有一些改进它的提示:

  • 使用MySQL或PostgreSQL后端而不是Sqlite来耦合Pydio。
  • 使用Nginx作为Web服务器而不是Apache。
  • 升级服务器以获得更多RAM和CPU
  • 您甚至可以在服务器上启用WebDAV访问以便识别WebDAV的第三方应用程序同步。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。

参考文献:《How To Host a File Sharing Server with Pydio on Ubuntu 14.04》

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程微刊

微信小程序从零开始开发步骤(六)4种页面跳转的方法

1773
来自专栏云计算教程系列

如何在Ubuntu 16.04上将BIND配置为专用网络DNS服务器

管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

7850
来自专栏FreeBuf

如何在安卓移动终端进行一次渗透实验?

下面的实验将通过使用一个虚拟Android系统作为实验主体来进行展示。在这个实验中,通过使用虚拟Android系统,模拟移动终端的操作,来帮助我们逐步实现使用一...

3246
来自专栏xcywt

《Linux命令行与shell脚本编程大全》第十章 使用编辑器

主要介绍vim, nano, emacs,KWrite,Kate,GNOME 10.1 vim Unix系统最初的编辑器 10.1.1检查vim软件包 先搞明白...

2068
来自专栏网络

CobaltStrike团体服务器部署并后台运行

大家好,我是你们的老朋友Alex。Cobaltstrike的部署安装很简单,但是在实际使用中出现了问题。我把团队服务器放在ECS上,出现了两个问题:1.客户端无...

3206
来自专栏铭毅天下

干货 | Elasticsearch 集群健康值红色终极解决方案

题记 Elasticsearch当清理缓存( echo 3 > /proc/sys/vm/drop_caches )的时候,出现 如下集群健康值:red,红...

8348
来自专栏Golang语言社区

HTTP协议漫谈

简介 园子里已经有不少介绍HTTP的的好文章。对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将H...

35213
来自专栏北京马哥教育

HTTP 协议漫谈

简介 网络上已经有不少介绍 HTTP 的好文章,对HTTP的一些细节介绍的比较好,所以本篇文章不会对 HTTP 的细节进行深究,而是从够高和更结构化的角度将 H...

29711
来自专栏耕耘实录

关于SUID、SGID、SBIT,我们必须了解的几个关键点

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

811
来自专栏博客园迁移

jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例

1.先配置好jenkins需要用到的其他外部组件  jdk,maven,git/svn

2013

扫码关注云+社区

领取腾讯云代金券