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

介绍

随着云的采用越来越多,越来越多的数据被远程存储. 从音乐到图片到个人文档,许多人正在将文件上传到他们无法管理的服务器上。

Pydio 提供许多与其他文件同步服务相同的功能:网页接口、Mac、Windows 和 Linux 的原生客户端、iOS 和 Android 的移动客户端以及与其他 Pydio 用户或公众共享文件的能力。

目标

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

在我们的软件堆栈方面,我们将使用 Postfix 来支持电子邮件;默认情况下,PHP 无法发送电子邮件. 如果您想要更轻的解决方案,您可以安装ssmtp,但此设置使用 Postfix,因为它需要最少的调整才能获得 PHP 来支持它。

我们还将坚持使用Apache作为我们的Web服务器(为了简单)和SQLite数据库(而不是MySQL,用于更少的移动部件)。

前提条件

要遵循这个教程,你需要:

我们还将使用 Let's Encrypt 为您的域设置 SSL 证书,您将遵循 This Let's Encrypt on Apache 教程,但为了简化设置,我们不会在步骤 3 中安装 Pydio 之前设置。

如果您想了解更多关于 SSL/TLS 证书如何工作,请阅读 这篇 OpenSSL 关键文章

步骤 1 - 安装 Pydio

在此步骤中,我们将安装Pydio的依赖和Pydio本身。

首先,更新您的包索引。

1sudo apt-get update

现在安装PHP。

1sudo apt-get install php5 libapache2-mod-php5

接下来,我们需要下载Pydio tar文件,并在我们的Web服务器上解压缩它。Pydio下载是托管在 SourceForge

截至发布时间,Pydio 处于 6.2.2 版本中,您可能想要检查 Pydio 是否已更新,并从 SourceForge 获取最新版本。

下载 Pydio tar 文件到您的家庭目录。

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

解压 tarball。

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

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

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

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

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

第2步:设置PHP模块

有了Pydio,我们需要安装和设置一些依赖性以使Pydio正常工作,我们将在这个步骤中做出很多更改,我们将被要求在每个步骤后重新启动Apache。

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

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

其中一个PHP模块,即mcrypt,默认不启用,我们可以使用phpenmod启用。

1sudo php5enmod mcrypt

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

1sudo a2enmod rewrite

现在PHP已经完全安装了,我们需要对php.ini文件进行一些编辑,有三行需要更新,使用您喜爱的编辑器,如nano,编辑php.ini文件。

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

尋找「output_buffering = 4096」的行,然後將「4096」變為「關閉」。

1[label Updated /etc/php5/apache2/php.ini]
2; Default Value: Off
3; Development Value: 4096
4; Production Value: 4096
5; http://php.net/output-buffering
6output_buffering = Off

接下来,找到 upload_max_filesize = 2M并将2M更改为任何大的数字,例如1G

1[label Updated /etc/php5/apache2/php.ini]
2; Maximum allowed size for uploaded files.
3; http://php.net/upload-max-filesize
4upload_max_filesize = 1G

最后,找到post_max_size = 8M并将其更改为同一个数字为upload_max_filesize或更大。

1[label Updated /etc/php5/apache2/php.ini]
2; Maximum size of POST data that PHP will accept.
3; Its value may be 0 to disable the limit. It is ignored if POST data reading
4; is disabled through enable_post_data_reading.
5; http://php.net/post-max-size
6post_max_size = 1G

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

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

在此文件中做相同的三个更改,如上所示,然后保存并关闭它。

步骤 3 – 配置 Apache

在此步骤中,我们将定制我们的Apache配置。

首先,使用您最喜欢的文本编辑器创建并打开名为「pydio.conf」的新文件。

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

下面的Apache配置是000默认配置文件的副本,评论被删除,并为此特定Pydio安装添加了一些额外的块,如文档根和日志文件。

 1[label /etc/apache2/sites-available/pydio.conf]
 2<VirtualHost *:80>
 3    ServerAdmin sammy@your_server_ip
 4    ServerName your_server_ip
 5    DocumentRoot /var/www/pydio
 6
 7    ErrorLog ${APACHE_LOG_DIR}/pydio-error.log
 8    CustomLog ${APACHE_LOG_DIR}/pydio-access.log combined
 9
10    <Directory /var/www/pydio/>
11    	AllowOverride All
12    </Directory>
13</VirtualHost>

在你复制并粘贴到pydio.conf之前,让我们来看看里面是什么:

  • <VirtualHost *:80> 定义了一个 virtual host,允许多个网站在一个服务器上托管。这条线明确定义了这个虚拟主机作为该服务器上的默认网站,它将通过端口80连接
  • ServerAdmin 定义了一个电子邮件地址,让Apache发送错误,如果错误处理是这样设置的
  • ServerName 是 Pydio 服务器或您的服务器的 IP 的 DNS 名称。 如果您开始使用 IP 并希望稍后更改,您可以,或者您可以离开 IP,但可以添加一个 ServerAlias 线与新的 DNS 名称;这两者都将工作
  • `Document

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

1sudo a2dissite 000-default

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

1sudo a2ensite pydio

在前提中,我们提到我们将设置Let's Encrypt以启用SSL/TLS加密,这将使我们的登录信息和数据免受人们在本地网络或互联网上扫描包的安全。由于我们正在使用Apache作为我们的Web服务器,Let's Encrypt有支持自动为我们配置Apache。

现在是时候遵循 Let's Encrypt on Apache 教程。使用您在安装 Let's Encrypt 时选择的 FQDN,安装程序脚本将看到我们的 Apache 配置并为您创建 SSL 版本。

如果您被问及您想要选择哪个虚拟主机,请确保选择pydio.conf,因为我们希望我们的连接始终是安全的,所以请确保选择安全 – 请所有请求重定向以确保HTTPS访问**,当Let’s Encrypt脚本要求时。

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

1sudo service apache2 restart

步骤 4 – 定制 PHP 邮件支持

Postfix 应该从先决条件下安装,接下来,我们将想要快速更改,以防止除了本地应用程序之外的任何东西使用它。

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

1sudo nano /etc/postfix/main.cf

搜索inet_interfaces行,并将其从all更新到localhost

1[label /etc/postfix/main.cf]
2. . .
3recipient_delimiter = +
4inet_interfaces = localhost
5inet_protocols = all
6. . .

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

1sudo service postfix restart

步骤 5 – 完成 Pydio 设置

Pydio 已安装,在此步骤中,我们将完成设置。

在您最喜欢的浏览器中,请访问 https://example.com。 您看到的第一个页面将被标记为 Pydio 诊断工具. 在该页面上的列表中,顶部的项目是关于 Server charset encoding的警告。 我们将在一瞬间修复此问题。 只要这是唯一的警告,其余的项目都是 OK,请点击按钮 Click HERE TO CONTINUE TO PYDIO

当被提示时,点击启动向导按钮,在主要选项的第一页上,填写以下字段:

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

当你已经填写了所有这些,按下右下角的红色 **>>**按钮。

Pydio installer Main Options

数据库连接的第二页上,从数据库下载菜单中选择Sqlite 3,不要修改文件行,以便将 SQLite 数据库存储在哪里。点击测试连接按钮,以确保一切正常工作。如果测试成功,您应该看到屏幕底部的绿色框。然后继续点击测试连接按钮。

高级选项的第三阶段,大多数东西都会自动被检测到,所以你只需要确认它们是正确的。

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

您可以点击 试用配置数据按钮发送电子邮件,以确保一切正常工作。

最后,通过点击 Install Pydio按钮完成安装。

步骤6 - 使用 Pydio

现在Pydio已安装,我们将与我们的自定义欢迎消息在登录屏幕上。

一旦我们登录,我们将看到左侧列出的两个选项: Common FilesMy Files. 这两个选项被称为 workspaces,这基本上是文件共享或文件夹,您可以存储文件。

我们将能够创建其他工作区,并与您想要的人共享它们.现在Pydio已安装,点击周围,看看它是如何工作的,并邀请其他用户与您一起存储他们的文件。

虽然 Web 界面是有用的,你可以上传,下载,安排和共享你的数据,你可能会上传你的文件与 Pydio 直接通过本地客户端. 你可以下载 桌面客户端在这里(Mac/Win/Linux), iOS 客户端在这里Android 客户端在这里

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

Pydio Sync wizard

如果您选择使用自签名的证书(而不是 Let's Encrypt),则会收到关于该证书的错误。

与其他文件共享工具不同,这些工具将同步您的帐户中的所有内容,Pydio允许您选择单独同步每个工作区。当您首次运行客户端时,您可以选择哪个工作区将本地同步。

结论

Pydio 允许您控制您的数据,并且在所有主要的桌面和移动平台上的原生客户端,您的数据可以随时随地访问,但 Pydio 可以做更多的事情,而不仅仅是托管您的文件。

如果您发现 Pydio 在此设置中的性能对于您的使用案例来说有点太慢,那么以下是改善它的一些技巧:

  • 将 Pydio 与 MySQL 或 PostgreSQL 后端相结合,而不是 Sqlite.
  • 使用 Nginx 作为 Web 服务器而不是 Apache.
  • 升级您的服务器以获得更多的 RAM 和 CPU
  • 您甚至可以 启用 WebDAV 访问 在您的服务器上进行 WebDAV 了解的第三方应用程序同步
Published At
Categories with 技术
comments powered by Disqus