Pages

Wednesday, 25 October 2017

运用Pydio搭建精美个人云

大家都知道国内的云盘提供商目前来讲只剩下百度云盘.那么除了在线网盘.我们其实还可以用VPS部署一个私人网盘.也就是个人云.今天为大家带来比OC和NC更加精美的Pydio部署教程

准备&注意事项

  • Pydio消耗资源比较高.数据库和前端加起来应该要去掉300MB左右内存.望知悉
  • Hyperapp
  • 一个已经解析正确的域名(ping验证)
  • 耐心.仔细.认真

在Hyperapp对服务端进行设置

  1. 请确保这时候Nginx Proxy以及Nginx SSL Support正常默认安装并且启动了
  2. 转到商店页面.找到MariaDB然后选择服务器并且保存进入配置界面
  3. 转到商店页面.找到Docker Image然后选择服务器并且保存进入配置界面
  4. 请确认你完全按照按照下图对两个应用进行了设置.有中文提示的相应修改.其他不要动.
  5. 保存并且进行安装。

对Pydio进行设置

  1. 稍等一段时间等应用都正常启动之后.访问Pydio的域名会看到这样一张图:

  1. 前面三个警告是可以忽略的的.因为跟宿主机部署不一样.有些工作放在docker来做了.总之这时候点击绿色的CONTINUE即可.
  2. 这里选择简体中文.然后点击开始向导.然后一路配置.先是网站名称.然后是管理员账户创建.
  3. 接着来到配置数据库这里.重点来了.按照图片中的提示进行配置.
    • 注意Host一定要写ip然后后面半角冒号并加上端口.例如8.8.8.8:8888
    • 密码写Pydio数据库密码.不是数据库Root密码.
    • 然后选择TEST DB CONNECTION通过之后一路下一步即可.稍等片刻跳转到登录页面登录即可.

客户端的使用方法

  • 网页版
    • 网页版的操作其实非常直观.打开网址登陆操作即可.有些可能存在汉化不完整的情况.自行琢磨
  • iOS
    • iOS方面需要在App Store下载购买一个叫做Pydio Pro的应用(RMB 6元).那个免费的应用不能连接到我们部署的最新服务端
    • iOS连接方法有两个
    • 方法1:打开登陆网页版之后.会在左边栏看到一个二维码.用手机应用扫描即可.然后填写完密码就可以正常登陆
    • 方法2:首先先点击一下前缀的http://让他变成https://.然后填写域名.然后正确填写用户名和密码.再然后点击一下右上角的.稍等片刻.不行就点多两下.成功之后会跳转回主页.点击进入即可

大功告成

  • 这时候去访问你的域名吧。
  •  
----------------------------------

Pydio-美观强大的开源私有云盘


一直想找一个比较合适的私人网盘程序,试过比较出名的Seafile,OwnCloud,NextCloud,都有这样那样的不满意,功能上都差不多,但是用户界面实在是不对胃口,用起来就像在用山寨产品。直到前段时间找到Pydio,用了大概一个月,各方面都比较满意。

Pydio官网:https://pydio.com/

Pydio Gayhub:https://github.com/pydio/pydio-core

一、环境部署

Pydio安装环境需求:

PHP:5.6+,官方推荐7.0

数据库:MySQL/MariaDB, PostgreSQL or Sqlite

我的习惯还是用LNMP,LNMP1.4安装代码:

wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

LNMP安装完后,创建一个虚拟机

虚拟机目录为/home/wwwroot/pydio

同时添加数据库名pydio,开启SSL

lnmp vhost add

下载Pydio到虚拟机目录并授权目录

wget https://download.pydio.com/pub/core/archives/pydio-core-8.0.1.zip
unzip pydio-core-8.0.1.zip
mv ./pydio-core-8.0.1/* /home/wwwroot/pydio
chown -R www:www /home/wwwroot/pydio
二、Nginx配置

打开Nginx配置文件

vi /usr/local/nginx/conf/vhost/域名.conf

在80端口段添加强制https

rewrite ^(.*)$ https://$host$1 permanent;

443端口段加入下面代码,代码来源于官方文档

include enable-php.conf;
client_max_body_size 60G;
client_max_body_size 60G;
add_header X-Frame-Options "SAMEORIGIN";
add_header Strict-Transport-Security "max-age=16070400; includeSubdomains";
keepalive_requests    10;
keepalive_timeout     60 60;
#access_log /var/log/nginx/access_pydio7.log;
#error_log /var/log/nginx/error_pydio7.log;
client_body_buffer_size 128k;
# All non existing files are redirected to index.php
if (!-e $request_filename){
# For old links generated from Pydio 6
rewrite ^/data/public/([a-zA-Z0-9_-]+)$ /public/$1?;
rewrite ^(.*)$ /index.php last;
}
# Forward PHP so that it can be executed
location ~ \.php$ {
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock ;
}
# Enables Caching
location ~* \.(ico|css|js)$ {
expires 7d;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
location ~* ^/(?:\.|conf|data/(?:files|personal|logs|plugins|tmp|cache)|plugins/editor.zoho/agent/files) {
deny all;
}

日志部分我注释掉了,有需要的可以取消注释。修改完成后保存退出重启虚拟机

lnmp restart
三、PHP配置

用浏览器打开域名,如果nginx配置正确这时候就应该能看到Pydio的诊断页面,提示Warning的一般是依赖未安装或者配置不对。
3.1 PHP Command Line

打开php.ini文件

vi /usr/local/php/etc/php.ini

找到disable_functions =这段并删除函数exec
3.2 Exif Extension enabled

以安装的是php7.1.7为例,其他版本的请修改版本号
cd /root/lnmp1.4/src/
tar jxvf php-7.1.7.tar.bz2
cd php-7.1.7/ext/exif/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

编译完成后在php.ini里添加
extension="exif.so"
3.3 PHP Session

在php.ini找到

;session.save_path = “/tmp"

并取消注释改为

session.save_path = “/tmp"
3.4 PHP Opcode Cache extension

安装Opcache

cd /root/lnmp1.4/
./addons.sh install opcache
3.5 PHP Output Buffer disabled

php.ini中关闭output_buffering

output_buffering = OFF
3.6 其他php.ini参数配置

file_uploads = On
upload_max_filesize = 30G
post_max_size = 30G
max_file_uploads = 20000

配置完成后,重启PHP

lnmp php-fpm restart

再刷新一下浏览器页面,如果配置正确会直接进入Pydio配置页面。
四、Pydio配置

在页面选择好语言后,点击START WIZARD进入详细配置界面
4.1 网盘名和欢迎信息
略过

4.2 设置管理员帐户

略过
4.3 设置数据库

输入创建虚拟机时候的建的数据库信息

数据库类型:MySQL

Host:localhost

Database:pydio

User:pydio

Password:密码

确认信息后点TEST DB CONNECTION

4.4 其他设置

推荐打开Enable Cache.

配置完成后点下一步开始安装,安装完成后会提示添加代码之类的,不用管他这是Apache的配置.

刷新页面就能跳转到Pydio的欢迎界面

五、其他

实际使用中,分享文件链接打开后会出现open_basedir错误,一开始以为是PHP或者Nginx的相关配置不对,结果查了下官方文档,结果是某个插件引起的

清除插件缓存并把插件更名后解决问题

rm /home/wwwroot/pydio/data/cache/plugins*
cd /home/wwwroot/pydio/plugins/editor.eml/
mv manifest.xml manifest.xml.default

另外Pydio分2个工作区,一个是Default Files,目录位于pydio/data/files/,一个是My Files,目录位于pydio/data/personal/用户名/

如果使用Aria2下载,就可以把默认下载目录设置为任意上述两个目录,但是由于Aria2下载的文件默认是root权限,Pydio无法修改,我的办法是计划任务里每5分钟对Aria2的下载目录授权

crontab -e

添加一行

*/5 * * * * chown -R www:www /home/wwwroot/pydio/data/files

保存退出并重启

service cron restart

写在最后

Pydio提供了全平台的客户端,可以去官网下载,特别说明是iOS商店里2个版本,免费版体验极差,付费版1刀,Bug不少,TestFlight版本修正了大量BUG。目前推荐用Safari打开网盘后在桌面创建链接.

No comments:

Post a Comment