介绍
随着云的采用增加,越来越多的数据被远程存储。 从音乐,图片到个人文档,许多人正在将文件上传到他们不管理的服务器上。 如果你宁愿让你控制的服务器上的文件,可以使用托管自己的Dropbox般的文件共享服务器Pydio (原AjaXplorer)。
Pydio提供了许多与其他文件同步服务相同的功能:Web界面,Mac,Windows和Linux的本地客户端,iOS和Android的移动客户端,以及与其他Pydio用户或公众共享文件的能力。
目标
在本文中,我们将站立一个简单的Pydio安装,运行良好,即使没有强大的硬件。 与许多企业级开源项目一样,Pydio有一个社区版和企业版。 我们将安装社区版本,但请注意,对于小于10人的团队,企业许可证是免费的。
在我们的软件,我们将使用Postfix电子邮件支持; 默认情况下,PHP无法发送电子邮件。 如果您想更轻的解决方案,可以安装ssmtp
,但这一设置使用Postfix的,因为它需要调整,以让PHP支持它的最少。 请注意,启用电子邮件支持不是必需的,但它使事情更简单; 没有它,Pydio将无法发送密码重置电子邮件或欢迎电子邮件。
我们还将坚持使用Apache作为我们的Web服务器(为简单起见)和一个SQLite数据库(而不是MySQL,更少的移动部分)。 这个设置是伟大的,如果使用Pydio的组不大或不推送大量的数据到服务器在同一时间。 然而,如果你需要一些更强大的功能,有一些指导如何提高性能的结论。
先决条件
要遵循本教程,您需要:
一个Ubuntu的14.04Droplet与Sudo非root用户 。
Apache安装,您可以通过以下做到这盏灯教程的第2步 。
一个FQDN(完全合格域名),您可以通过以下设置该主机名教程 。
Postfix的安装,您可以通过以下通过“配置Stapling”从步骤设置此Stapling的安装教程 。 在安装过程中提示时,选择互联网站点的配置,并输入您的域名(例如
example.com
的系统邮件名称 )。
我们还将使用Let's Encrypt为您的域设置SSL证书。 你会是下面这让我们在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
解压缩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
其中一个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
。
; 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
文件; 接下来,打开命令行访问php.ini
文件在/etc/php5/cli/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
是那里的网站存储在您的DropletApache需要服务器最多。ErrorLog
和CustomLog
定义在哪里保存的Apache日志。 如果您需要非常自定义的日志记录设置,这些日志选项可能会变得非常复杂,但这些默认值将适用于我们的目的。
将此配置粘贴到文件中,然后保存并关闭它。 使用我们的Apache配置文件,我们现在需要禁用默认的Apache配置。
sudo a2dissite 000-default
现在,启用我们的两个配置文件。
sudo a2ensite pydio
在前提条件中,我们提到我们将设置Let's Encrypt以启用SSL / TLS加密。 这使我们的登录信息和我们的数据安全,从而可以在我们的本地网络或互联网上嗅探数据包。 因为我们使用Apache作为我们的网络服务器,Let's Encrypt支持为我们自动配置Apache。 为了方便起见,我们设置了没有SSL的Apache,所以当我们运行Auto Let's Encrypt脚本时,它会为我们设置。
现在是时候按照咱们在Apache教程加密 。 使用您在设置Let's Encrypt期间选择的FQDN,安装程序脚本将看到我们的Apache配置并为您创建一个SSL版本。
一定要选择pydio.conf
如果你问,你想选择哪种虚拟主机。 因为我们希望我们的连接永远是安全的,请务必选择安全-使所有请求重定向时,让我们加密脚本要求,以安全的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
。
. . .
recipient_delimiter = +
inet_interfaces = localhost
inet_protocols = all
. . .
现在重新启动Postfix服务以启用更改。
sudo service postfix restart
第5步 - 完成Pydio设置
Pydio已安装; 在此步骤中,我们将完成设置。
访问https:// example.com
在你喜欢的浏览器。 你看到的第一页将被标记Pydio诊断工具 。 在该页面的列表,上面的项目是关于服务器charset编码警告。 我们会解决这个问题。 只要这是唯一的警告,而其余项目都OK,点击按钮点击这里继续PYDIO。
出现提示时,单击开始向导>按钮。 对主要选项的第一页,填写字段:
- 应用程序标题 ,这是什么在浏览器标题栏中看到
- 欢迎辞 ,这被视为在登录屏幕上
- 管理员登录的管理员用户名
- 管理员显示名称 ,这是它听起来像
- 管理员密码
当你拥有所有的填写,右下角按下红色>>按钮。
对数据库联接的第二页上,从数据库下拉菜单中选择SQLite的3。 不要将文件行修改为存储SQLite数据库的位置。 点击测试连接按钮,以确保一切正常。 如果测试成功,您应该会看到一个绿色框将出现在屏幕的底部。 然后通过点击>>按钮继续。
对高级选项第三阶段,大部分的东西会被自动检测到,所以你只需要确认他们是正确的。 我们需要做的一件事是启用电子邮件支持。
- 对于启用电子邮件 ,从下拉菜单中选择Yes
- 对于PHP梅勒 ,选择邮件
- 输入您的电子邮件地址管理员电子邮件
您可以点击尝试发送一封电子邮件,配置数据按钮,以确保一切正常。
最后,通过点击安装按钮Pydio完成安装。
第6步 - 使用Pydio
现在Pydio已安装,我们将在登录屏幕上显示我们自定义的欢迎消息。 我们现在可以使用我们在上一步中定义的管理员用户登录。
一旦我们登录了,我们会看到左侧列出两个选项: 常见的文件和我的文件 。 这两个选项是所谓的工作空间 ,这基本上是文件共享或文件夹,在那里你可以存储的文件。 我的文件是只为你和Common Files是对这个Pydio安装的所有用户的共享文件夹。
我们将能够做出其他工作区,并与任何人分享他们。 现在Pydio已安装,单击,看看它是如何工作,并邀请其他用户存储他们的文件与您。
虽然网络界面很有用,您可以上传,下载,安排和共享您的数据,您可能会直接通过本机客户端上传您的文件与Pydio。 您也可以下载此桌面客户端 (苹果机/运/ Linux)的,在这里的iOS客户端和Android客户端在这里 。
安装同步客户端后,启动Pydio Sync并按照向导让它同步本地第一个工作区。
如果您选择使用自签名证书(而不是Let's Encrypt),您会收到有关证书的错误。 如果你这样做,检查信任SSL证书框的警告后,将出现在底部,然后再次单击连接按钮。
与其他文件共享工具将同步您的帐户下的所有内容,Pydio允许您选择同步每个工作区单独。 首次运行客户端时,可以选择要在本地同步的工作空间。 设置第一个同步后,您可以添加其他工作空间同步。
结论
Pydio允许您控制您的数据,并与所有主要的桌面和移动平台上的本机客户端,您的数据可以访问,无论何时你需要它。 但Pydio可以做的不仅仅是托管您的文件。 有集合插件来扩展功能。
如果你发现Pydio在这个设置的性能对你的用例来说太慢了,这里有一些提高它的提示:
- 几个Pydio与MySQL或PostgreSQL后端而不是Sqlite。
- 使用Nginx的作为Web服务器的代替的Apache。
- 升级您的服务器以拥有更多的RAM和CPU
- 你甚至可以启用WebDAV访问您的服务器对于那些了解WebDAV的第三方应用程序同步的。