内容简介:自建云盘系列——Pydio (原AjaXplorer)
Pydio、Seafile、 NextCloud (OwnCloud),我感觉来说,目前市场上只有这三者能够同台竞技,其它的免费(或开源)的私人云存储方案大多不够成熟。所以说完了其它两个就不得不提Pydio了,当然之后还有些甜点级别的会介绍下。
Pydio是纯正的外国血统,所以……貌似汉化好像不太完全,之前玩的时候好像总有些没翻译的地方,不知道新版本是啥情况。它的话和NextCloud(OwnCloud)倒是有点像,有很多插件支持,虽然不少都是一般人用不着的,另外,它除了社区版外还是有企业版的,很贵,真的贵_(:з」∠)_,而且不像Seafile一样有几个用户内是免费的,所以这次测试的也是社区版。
一.下载
官方下载页面: https://pydio.com/en/get-pydio 不过貌似我今天看的时候官网在维护(????),运气爆棚……不过只是简单的加了个div,被我ublock origin直接咔擦掉了
另外官方页面会让你填表,虽然不填也能直接下载,但是,如果你们懒得访问的话也可以直接用这个地址下载 https://download.pydio.com/pub/core/archives/pydio-core-8.0.0.tar.gz
二.安装
对了,Pydio提供基于RPM的一键安装,不过还是那句话,这种一键安装比较"dirty",我也没奢侈到一台机器只跑这一个服务,所以,看你需求吧,我就单纯介绍下
①依次装下,epel, scl和remi 负责提供一些需要的软件包,没注释掉的是Centos6的,如果是7或者RedHat的请仔细切换
yum install epel-release scl-utils yum install centos-release-scl #RedHat7 #yum-config-manager --enable rhel-server-rhscl-7-rpms #Centos6 rpm -Uvh https://www.softwarecollections.org/en/scls/remi/php56more/epel-6-x86_64/download/remi-php56more-epel-6-x86_64.noarch.rpm rpm -Uvh https://download.pydio.com/pub/linux/centos/6/pydio-release-1-1.el6.noarch.rpm #Centos7 #rpm -Uvh https://www.softwarecollections.org/en/scls/remi/php56more/epel-7-x86_64/download/remi-php56more-epel-7-x86_64.noarch.rpm #rpm -Uvh https://download.pydio.com/pub/linux/centos/7/pydio-release-1-1.el7.centos.noarch.rpm
这样就软件源的准备就完成了,接下来可以一波yum了
②Pydio核心以及插件的安装
yum clean all yum update yum install pydio-core #请自行替换pluginName为插件名,也可以用pydio-all安装全部插件 yum install pydio-plugin-pluginName yum install pydio-all
③如果需要升级的话请参照官方说明——> 传送门
好了,讲完了基于RPM的安装我们回到正常的流程,上传之前下载的程序包,解压然后一波mv,之后就是修改所有者咯,这些不多讲,当然也可以在服务器上下载
cd /path/to/siteroot wget https://download.pydio.com/pub/core/archives/pydio-core-8.0.0.tar.gz tar xzf pydio-core-8.0.0.tar.gz mv pydio-core-8.0.0/* . #虽然我们是Nginx环境,不需要htaccess,不过还是留下来吧 mv pydio-core-8.0.0/.htaccess . rm -rf pydio-core-8.0.0 chown -R www:www *
接着访问域名就行,然后我们会看到一个安装环境的诊断,我这儿有些小问题
不过还是完全不在意
因为第一个关乎你的数据安全,在Apache下这个会默认由.htaccess配置,Nginx下只能手动咯,所以这部分我们把Nginx的vhost配置修改一波
在你网站的vhost配置文件中加入如下内容,部分请自行修改,还有啥HTTPS之类也配了吧,虽然我OneInStack创建的时候就有了,修改完记得重启Nginx
#增大上传文件大小 client_max_body_size 20G; client_body_buffer_size 128k; #防止隐藏Frame攻击 add_header X-Frame-Options "SAMEORIGIN"; keepalive_requests10; keepalive_timeout 60 60; #把请求重定向到index.php if (!-e $request_filename){ rewrite ^/data/public/([a-zA-Z0-9_-]+)$ /public/$1?; rewrite ^(.*)$ /index.php last; } #目录访问安全设置 location ~* ^/(?:\.|conf|data/(?:files|personal|logs|plugins|tmp|cache)|plugins/editor.zoho/agent/files) { deny all; } location ~ \.php$ { #这儿我修改过,请参照原来的 fastcgi_pass unix:/tmp/php-cgi.sock; include fastcgi.conf; try_files $uri =404; } #缓存设置 location ~* \.(ico|css|js)$ { expires 7d; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; }
第二个要求 PHP 启用CLI模式,不过由于Pydio默认只认/usr/bin/php,所以你装在其它地方它没法检测出来
第三个是Session的保存目录,你可以修改,不过好像默认不配置的话会保存在/tmp,建议可以修改下php.ini中的session.save_path = "/tmp" 一般默认有,去掉注释就好
第四个是PHP的输出缓存,我建议你不要在php.ini里修改,而是在你安装pydio的目录下创建.user.ini文件并加入如下内容
#vi .user.ini max_file_uploads = 20000 post_max_size = 20G upload_max_filesize = 20G memory_limit=512M mbstring.func_overload=0 always_populate_raw_post_data=-1 default_charset='UTF-8' output_buffering=Off
第五个是服务器的字符编码问题,这个我建议要处理下,否则容易出乱码,不过它好像有些时候即使正确也检测不出来……
vi /etc/sysconfig/i18n #修改为如下 LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16"
好了,刷新,然后点击开始安装,我们会看到如下
然后就是惯例的安装填空了,基本没啥问题,稍等片刻我们就能跳转到登陆界面,美滋滋
额,进去马上大吃一斤,这绝逼是我熟悉的Pydio,这种一片英文掺着几句中文的感觉,还是那个味……第一次看到吓得我以为选错了语言
三.配置与优化
好吧,到这儿其实已经安装完了,但是,Pydio还有很多插件,我就不细讲了,有个叫Pydio Booster的倒是不能错过,这个算是Pydio的增强组件,用于提供WebSocket来跳过PHP的限制以及增强性能
下载地址: https://download.pydio.com/pub/booster/release/1.2.0/linux_amd64/pydio
其它版本自己调到这个地址的上级目录去翻,我就不在这记录了
首先我们需要访问https://你的Pydio域名/settings/parameters/core.mq 翻到页面下方生成API密钥来方便后面使用
密钥生成后会存储在 你的Pydio目录/data/plugins/core.mq/apikey 文件中,自己cat来查看,这是一个密钥对,用冒号分隔
将上面下载的pydio文件放到/usr/bin目录,建议把所有者改成www用户
wget -O /usr/bin/pydio https://download.pydio.com/pub/booster/release/1.2.0/linux_amd64/pydio
chown www:www /usr/bin/pydio
创建个配置文件夹
mkdir /etc/pydio
创建 /etc/pydio/pydioconf 填入如下内容,需要记得替换YOUR_HOSTNAME为你的域名(这个需要全部替换),TOKENP是密钥对的前半部分,TOKENS是后半部分(这个只替换pydioconf里的就行)
{ "scheduler": { "host": "http:\/\/YOUR_HOSTNAME", "tokenP": "TOKENP", "tokenS": "TOKENS", "minutes": 2 }, "nsq": { "host": "0.0.0.0", "port": 4150 }, "caddyFilePath": ".\/pydiocaddy" }
创建 /etc/pydio/pydioconf 填入如下内容
http://127.0.0.1:8090 { pydiows /ws { pre { if {>Cookie} has "AjaXplorer" type request url http://YOUR_HOSTNAME:YOUR_OPTIONAL_PORT?get_action=keystore_generate_auth_token&device=websocket cookie AjaXplorer out token } pre { type request url http://YOUR_HOSTNAME:YOUR_OPTIONAL_PORT/api/pydio/ws_authenticate?key=TOKENP:TOKENS query auth_hash query auth_token out user } } header /io { Access-Control-Allow-Origin http://YOUR_HOSTNAME:YOUR_OPTIONAL_PORT Access-Control-Request-Headers * Access-Control-Allow-Methods POST Access-Control-Allow-Headers Range Access-Control-Allow-Credentials true } pydioupload /io { pre { type node out node } pre { if {query} has "minisite_session" type request url http://YOUR_HOSTNAME:YOUR_OPTIONAL_PORT?get_action=keystore_generate_auth_token&device=upload query minisite_session cookie AjaXplorer_Shared out token } pre { if {query} not_has "minisite_session" if {>Cookie} has "AjaXplorer=" type request url http://YOUR_HOSTNAME:YOUR_OPTIONAL_PORT?get_action=keystore_generate_auth_token&device=upload cookie AjaXplorer out token } pre { type request url http://YOUR_HOSTNAME:YOUR_OPTIONAL_PORT/api/{repo}/upload/put/{nodedir}?xhr_uploader=true header X-File-Direct-Upload request-options header X-Pydio-Admin-Auth TOKENP:TOKENS header X-File-Name {nodename} query * out options } post { type request url http://YOUR_HOSTNAME:YOUR_OPTIONAL_PORT/api/{repo}/upload/put/{nodedir}?xhr_uploader=true header X-File-Direct-Upload upload-finished header X-Pydio-Admin-Auth TOKENP:TOKENS header X-File-Name {nodename} query auth_hash query auth_token out body } } pydioadmin /admin basicauth /admin TOKENP TOKENS }
我选择使用supervisor来后台运行Pydio Booster,至于要问怎么安装supervisor的话请看我之前那篇syncthing的文章 ——> 传送门
所以修改/etc/supervisor.conf 添加如下内容
[program:pydio] command=/usr/bin/pydio -c /etc/pydio/pydioconf autostart=true autorestart=true user=www redirect_stderr=true stdout_logfile=/var/log/pydio.log
然后supervisord来启动,之后在Pydio后台那儿配置启用就行了
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning Web App Development
Semmy Purewal / O'Reilly Media / 2014-3-3 / USD 29.99
Grasp the fundamentals of web application development by building a simple database-backed app from scratch, using HTML, JavaScript, and other open source tools. Through hands-on tutorials, this pract......一起来看看 《Learning Web App Development》 这本书的介绍吧!