随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使用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服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。)example.com
)。但为了简化设置,我们不会在步骤3中安装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
有了Pydio,我们需要安装并设置一些依赖项以使Pydio正常工作。我们将在此步骤中进行大量更改,并且会在每个步骤后提示我们重新启动Apache。如果你愿意,你可以这样做,但在这里,我们将等到所有设置的最后并重启Apache一次。
首先,我们将安装并启用我们需要的额外PHP模块。
sudo apt-get install php5-mcrypt php5-gd php5-sqlite
默认情况下,未启用其中一个mcrypt
PHP模块。我们可以使用它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
文件; 接下来,打开命令行访问/etc/php5/cli/php.ini
文件的php.ini
。
sudo nano /etc/php5/cli/php.ini
如上所述在此文件中进行相同的三处更改,然后保存并关闭它。
在此步骤中,我们将自定义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上存储网站的地方。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的加密脚本时,它会为我们设置一切。
使用您在设置Let的加密期间选择的FQDN,安装程序脚本将看到我们的Apache配置并为您创建SSL版本。
确保选择pydio.conf
是否询问您要选择哪个虚拟主机。因为我们希望我们的连接始终是安全的,所以请确保选择安全 -当Let的加密脚本要求时,将所有请求重定向到安全的HTTPS访问。
最后,我们可以重新启动Apache以使更改生效。
sudo service apache2 restart
应该从先决条件安装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
Pydio已安装; 在这一步中,我们将完成设置。
用您最喜爱的浏览器访问https://example.com
。您看到的第一页将标记为Pydio Diagnostic Tool。在该页面上的列表中,顶部项是关于服务器字符集编码的警告。我们马上解决这个问题。只要这是唯一的警告,其余项目都OK,点击按钮点击这里继续PYDIO。
出现提示时,单击“ 启动向导”>“按钮”。在主要选项的第一页上,填写以下字段:
如果全部填写完毕,请按右下方的红色>>按钮。
在Database Connexion的第二页上,从Database下拉菜单中选择Sqlite 3。不要将文件行修改为SQLite数据库的存储位置。单击“ 测试连接”按钮以确保一切正常。如果测试成功,您应该会看到屏幕底部会出现一个绿色框。然后单击>>按钮继续。
在高级选项的第三阶段,大多数事情将被自动检测到,因此您只需确认它们是正确的。我们需要做的一件事是启用电子邮件支持。
您可以单击“ 尝试使用已配置的数据发送电子邮件”按钮以确保一切正常。
最后,单击Install Pydio按钮完成安装。
现在安装了Pydio,我们将在登录屏幕上显示自定义欢迎消息。我们现在可以使用我们在上一步中定义的管理员用户登录。
登录后,我们会在左侧看到两个选项:Common Files和My Files。这两个选项称为工作区,它们实际上是文件共享或文件夹,您可以在其中存储文件。我的文件仅供您使用,Common Files是此Pydio安装上所有用户的共享文件夹。
我们将能够制作其他工作区并与您希望的任何人分享。现在已经安装了Pydio,单击并查看它是如何工作的,并邀请其他用户随身携带他们的文件。
虽然Web界面很有用,您可以上传,下载,排列和共享数据,但您可能会直接通过本机客户端使用Pydio上传文件。您可以在此处下载桌面客户端(Mac / Win / Linux),此处的iOS客户端以及此处的Android客户端。
安装同步客户端后,启动Pydio Sync并按照向导使其在本地同步我们的第一个工作区。
与同步您帐户下所有内容的其他文件共享工具不同,Pydio允许您选择单独同步每个工作区。第一次运行客户端时,可以选择要在本地同步的工作空间。设置第一个同步后,您可以添加其他工作区同步。
Pydio允许您控制您的数据,并与所有主要桌面和移动平台上的本机客户端一起使用,您的数据也可以随时访问。但是Pydio可以做的不仅仅是托管你的文件。有一组插件可以扩展功能。
如果您发现Pydio在此设置中的性能对于您的用例来说有点太慢,这里有一些改进它的提示:
更多Ubuntu教程请前往腾讯云+社区学习更多知识。
参考文献:《How To Host a File Sharing Server with Pydio on Ubuntu 14.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。