owncloud+collabora 实现网盘在线预览

最近使用 owncloud 搭建了一个个人网盘并连接 collaborra 实现了在线预览,编辑功能。
部署的过程很曲折,走了很多弯路,好在最后都圆满解决了,现在回顾一下;

环境搭建

亲测:如果使用owncloud9 及以上版本,推荐使用apache 服务器,因为nginx 对于webdev支持不是很好,博主在这个地方绕了很久。最后选择了owncloud8。

lnmp 一键安装 wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp
安装的时候会选择 php , nginx 和 mysql 版本。
本着喜新厌旧的思想 安装了目前最新版的 php 7.1.12 但是后来发现 owncloud8 不支持 php 7,所以又版本回退到 5.6, 好在lnmp 有升级降级脚本可以一键实现。

php 需要加一些配置

在PHP-fpm 中 添加配置

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

否则会报错:php does not seem to be setup properly to query system environment variables. The test with getenv(“PATH”) only returns an empty response.
Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm.

php.ini 注释掉 disable_functions 否则 没法切换中文。

php 安装 fileinfo 扩展

wget -O php-7.1.12.tar.gz http://cn2.php.net/get/php-7.1.12.tar.gz/from/this/mirror
tar -zxvf php-7.1.12.tar.gz
cd php-7.1.12/ext/fileinfo
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config
make && make install
vim /usr/local/php/etc/php.ini
加入:extension=fileinfo.so

安装 docker (安装 collabora 需要用到)

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo systemctl start docker

安装配置 owncloud

下载owncloud 文件,解压,然后 配置 nginx。

给owncloud系统目录更改用户和权限

给 data 目录设置权限 770 (不然会提示错误)

然后可以去腾讯云免费申请一个一年的SSL 证书,因为 collabora 默认是 https的,当然通过改配置项可以切换成http,但是当时没有跟owncloud连接成功,接下来有时间会继续测试。 目前推荐 https。

然后配置 mysql 数据库

然后应该就可以正常访问了。
owncloud+collabora 实现网盘在线预览_第1张图片
配置完成图。

安装collabora

collabora 是一个支持在线office 预览编辑的系统。直接安装docker 镜像就可以了。

docker run -t -d -p 0.0.0.0:9980:9980 -e 'domain=owncloud\\.domain\\.com\|nextcloud\\.domain\\.com' -e "username=admin" -e "password=123456" --restart always --cap-add MKNOD collabora/code

domain 授权的 域名(WOPI 主机) 也就是你配置的 owncloud 域名。
username 登录collabora 后台账号
password 密码
如果你有兴趣进到docker容器里边,你会发现,它会把这些参数写到 /etc/loolwsd/loolwsd.xml 中,通过修改 loolwsd.xml 可以进行相关配置 (可以关闭默认的 https,启用http连接)。

当时由于 参数错误,配置好之后会出现一个 “未授权的WOPI 主机”的报错,纠结了很长时间,一步一步去找,最后找到配置文件,才处理好。错误,会隐藏在我们最容易忽视的地方。

启动之后,配置 nginx 转发, 同样推荐https 。如果 owncloud 和 collabora 走得协议不一致也会出问题。

附:nginx 配置一份

server {
    listen       443 ssl;
    server_name   collabora.test.com;
    ssl on;
    ssl_certificate /usr/local/nginx/ssl/server.pem;
    ssl_certificate_key /usr/local/nginx/ssl/server.key;
    location ^~ /loleaflet {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }
    location ^~ /hosting/discovery {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }
    location ^~ /lool {
        proxy_pass https://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
    }
}

配置完成后。 访问 https://localhost:9980/loleaflet/dist/admin/admin.html 输入配置项中的账号密码。

owncloud+collabora 实现网盘在线预览_第2张图片

会显示collabora的后台数据。

安装 collabora online

从owncloud app 列表里边找到 collabora online 插件。安装。 有可能会出错。
marketplace.owncloud.com 里边找到这个插件,下载,然后传到 owncloud/apps 目录,然后启用。
然后配置 在线协作

owncloud+collabora 实现网盘在线预览_第3张图片

配置好之后,列表里的office 文件可以直接线上打开。

owncloud+collabora 实现网盘在线预览_第4张图片

完成。

持续更新,下一目标。 oauth 认证解决 授权登录问题。

补充 :owncloud 启用 redis 缓存

1.安装启动redis

1、yum install redis      --查看是否有redis yum 源
2、yum install epel-release    --下载fedora的epel仓库
3、 yum install redis    -- 安装redis数据库
4、service redis start  --启动

启动之后 ps axu | grep redis 能看到相关进程

2. 安装 phpredis 扩展

pecl install redis

3. 修改owncloud 配置文件

vi /var/www/owncloud/config/config.php

添加

'memcache.local' => '\\OC\\Memcache\\Redis',
'filelocking.enabled' => 'true',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
'timeout' => 0,
'dbindex' => 0,
),

你可能感兴趣的:(工作日志,服务器)