http://www.senra.me/build-your-own-cloud-storage-series-pydio-formerly-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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #增大上传文件大小 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 填入如下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | 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后台那儿配置启用就行了
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/994.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
打赏微信支付宝扫一扫,打赏作者吧~
休息一下~~