最近使用 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-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
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 文件,解压,然后 配置 nginx。
给owncloud系统目录更改用户和权限
给 data 目录设置权限 770 (不然会提示错误)
然后可以去腾讯云免费申请一个一年的SSL 证书,因为 collabora 默认是 https的,当然通过改配置项可以切换成http,但是当时没有跟owncloud连接成功,接下来有时间会继续测试。 目前推荐 https。
然后配置 mysql 数据库
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 输入配置项中的账号密码。
会显示collabora的后台数据。
从owncloud app 列表里边找到 collabora online 插件。安装。 有可能会出错。
marketplace.owncloud.com 里边找到这个插件,下载,然后传到 owncloud/apps 目录,然后启用。
然后配置 在线协作
配置好之后,列表里的office 文件可以直接线上打开。
完成。
持续更新,下一目标。 oauth 认证解决 授权登录问题。
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 能看到相关进程
pecl install redis
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,
),