介绍
随着云采用的增加,越来越多的数据被远程存储。 从音乐到图片再到个人文档,许多人将文件上传到他们不管理的服务器上。 如果您希望将文件保存在您控制的服务器上,您可以使用 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 Droplet。
- 已安装 Apache,您可以按照本 LAMP 教程 的 步骤 2 进行操作。
- 一个 FQDN(Fully Qualified Domain Name),您可以按照 this host name tutorial 进行设置。
- Postfix已安装,您可以按照本Postfix安装教程中的“配置Postfix”的步骤进行设置。 安装过程中出现提示时,选择 Internet Site 配置,然后输入您的域名(例如
example.com
) 用于 系统邮件名称 。
我们还将使用 Let's Encrypt 为您的域设置 SSL 证书。 您将关注 this Let's Encrypt on Apache 教程 ,但为了简化设置,在第 3 步安装 Pydio 之前,我们不会进行设置。
如果您想了解有关 SSL/TLS 证书如何工作的更多信息,请阅读 这篇 OpenSSL 基本文章 。
第 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
解压压缩包。
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
这些 PHP 模块之一 mcrypt
默认情况下未启用。 我们可以使用 phpenmod
来启用它。
sudo php5enmod mcrypt
除了安装和启用一些 PHP 模块外,我们还需要启用 a2enmod
Apache 模块,否则同步客户端将无法工作。
sudo a2enmod rewrite
现在 PHP 已完全安装,我们需要在 php.ini
文件中进行一些编辑。 有三行需要更新。 使用您喜欢的编辑器,例如 nano
,编辑 php.ini
文件。
sudo nano /etc/php5/apache2/php.ini
找到带有 output_buffering = 4096
的行并将 4096
更改为 Off
。
更新了 /etc/php5/apache2/php.ini
; 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 的缩写。)
更新了 /etc/php5/apache2/php.ini
; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 1G
最后,找到 post_max_size = 8M
并将其更改为与 upload_max_filesize
相同或更大的数字。 如果您认为您将同时进行多个大型上传或多个用户同时使用系统,您可以选择更大的数量。
更新了 /etc/php5/apache2/php.ini
; 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 安装添加了一些附加块,例如文档根目录和日志文件。
/etc/apache2/sites-available/pydio.conf
<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 服务器的 DNS 名称或您的服务器的 IP。 如果您从一个 IP 开始,以后想更改它,您可以,或者您可以保留 IP,但添加一个带有新 DNS 名称的ServerAlias
行; 两者都可以。DocumentRoot
是网站存储在您的 Droplet 上的位置,Apache 需要为其提供服务器。ErrorLog
和CustomLog
定义保存 Apache 日志的位置。 如果您需要非常自定义的日志记录设置,这些日志选项可能会变得非常复杂,但这些默认值将适用于我们的目的。
将此配置粘贴到文件中,然后保存并关闭它。 有了我们的 Apache 配置文件,我们现在需要禁用默认的 Apache 配置。
sudo a2dissite 000-default
现在,启用我们的两个配置文件。
sudo a2ensite pydio
在先决条件中,我们提到我们将设置 Let's Encrypt 以启用 SSL/TLS 加密。 这可以保护我们的登录信息和我们的数据免受那些可以在我们的本地网络或互联网上嗅探数据包的人的影响。 因为我们使用 Apache 作为我们的网络服务器,所以 Let's Encrypt 支持为我们自动配置 Apache。 为方便起见,我们设置了没有 SSL 的 Apache,所以当我们运行自动 Let's Encrypt 脚本时,它会为我们设置好一切。
现在是时候关注 Let's Encrypt on Apache 教程 。 使用您在设置 Let's Encrypt 期间选择的 FQDN,安装程序脚本将看到我们的 Apache 配置并为您创建 SSL 版本。
如果系统询问您要选择哪个虚拟主机,请务必选择 pydio.conf
。 因为我们希望我们的连接始终是安全的,所以请确保选择 Secure — 当 Let's Encrypt 脚本询问时,使所有请求重定向到安全的 HTTPS 访问。
最后,我们可以重新启动 Apache 以使我们的更改生效。
sudo service apache2 restart
第 4 步 — 自定义 PHP Mailer 支持
应从先决条件安装 Postfix。 接下来,我们将要进行快速更改以防止本地应用程序以外的任何内容使用它。
要进行此更改,我们需要编辑 Postfix 配置文件 /etc/postfix/main.cf
。
sudo nano /etc/postfix/main.cf
搜索 inet_interfaces
行并将其从 all
更新为 localhost
。
/etc/postfix/main.cf
. . . recipient_delimiter = + inet_interfaces = localhost inet_protocols = all . . .
现在重新启动 Postfix 服务以启用更改。
sudo service postfix restart
第 5 步 — 完成 Pydio 设置
Pydio 已安装; 在这一步中,我们将完成设置。
在您喜欢的浏览器中访问 https://example.com
。 您看到的第一页将标记为 Pydio 诊断工具 。 在该页面的列表中,最上面的项目是关于 Server charset encoding 的警告。 我们稍后会解决这个问题。 只要这是唯一的警告并且其余项目是 OK,单击按钮 单击此处继续 PYDIO。
出现提示时,单击 启动向导 > 按钮。 在 主要选项 的第一页上,填写以下字段:
- Application Title,就是在浏览器的标题栏中看到的
- 欢迎信息,显示在登录屏幕上
- 管理员登录,管理员用户名
- Admin Display Name,就是这个样子
- 管理员密码
全部填好后,按右下角的红色 >> 按钮。
在Database Connexion的第二页,从Database下拉菜单中选择Sqlite 3。 不要将文件行修改为将存储 SQLite 数据库的位置。 单击 Test Connection 按钮以确保一切正常。 如果测试成功,您应该会看到屏幕底部会出现一个绿色框。 然后单击 >> 按钮继续。
在高级选项的第三阶段,大部分东西都会被自动检测到,所以你只需要确认它们是正确的。 我们需要做的一件事是启用电子邮件支持。
- 对于启用电子邮件,从下拉菜单中选择是
- 对于 Php Mailer,选择 Mail
- 为 管理员电子邮件 输入您的电子邮件地址
您可以单击 尝试发送带有配置数据的电子邮件 按钮以确保一切正常。
最后,单击 Install Pydio 按钮完成安装。
第 6 步 — 使用 Pydio
现在 Pydio 已安装,我们将在登录屏幕上显示自定义欢迎消息。 我们现在可以使用我们在上一步中定义的管理员用户登录。
登录后,我们将在左侧看到两个选项:Common Files 和 My Files。 这两个选项称为 工作区 ,它们本质上是文件共享或文件夹,您可以在其中存储文件。 My Files 只适合你,而 Common Files 是此 Pydio 安装中所有用户的共享文件夹。
我们将能够制作其他工作区并与您希望的任何人共享它们。 现在已经安装了 Pydio,点击查看它是如何工作的,并邀请其他用户与您一起存储他们的文件。
尽管 Web 界面很有用,您可以上传、下载、整理和共享数据,但您可能会直接通过本地客户端使用 Pydio 上传文件。 您可以在这里下载桌面客户端 (Mac/Win/Linux),iOS客户端在这里和Android客户端在这里。
安装同步客户端后,启动 Pydio Sync 并按照向导在本地同步我们的第一个工作区。
如果您选择使用自签名证书(而不是 Let's Encrypt),您将收到有关证书的错误消息。 如果这样做,请选中警告后出现的底部的 Trust SSL Certificate 框,然后再次单击 Connect 按钮。
与其他将同步您帐户下所有内容的文件共享工具不同,Pydio 允许您选择单独同步每个工作区。 首次运行客户端时,可以选择本地同步哪个工作区。 设置第一次同步后,您可以添加其他工作场所同步。
结论
Pydio 让您可以控制您的数据,并使用所有主要桌面和移动平台上的本机客户端,您的数据也可以在您需要时随时访问。 但是 Pydio 可以做的不仅仅是托管你的文件。 有一组 插件 来扩展功能。
如果您发现 Pydio 在此设置中的性能对于您的用例来说有点太慢,这里有一些改进它的提示:
- 将 Pydio 与 MySQL 或 PostgreSQL 后端而不是 Sqlite 结合使用。
- 使用 Nginx 作为 Web 服务器而不是 Apache。
- 升级您的服务器以获得更多 RAM 和 CPU
- 您甚至可以在您的服务器上 启用 WebDAV 访问 以进行 WebDAV 感知的 3rd 方应用同步。