編碼的世界 / 優質文選 / 文明

owncloud+collabora 實現網盤在線預覽


2021年10月19日
-   

最近使用 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 數據庫
配置完成圖。
安裝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 輸入配置項中的賬號密碼。

會顯示collabora的後台數據。
安裝 collabora online
從owncloud app 列表裏邊找到 collabora online 插件。安裝。 有可能會出錯。 marketplace.owncloud.com 裏邊找到這個插件,下載,然後傳到 owncloud/apps 目錄,然後啟用。 然後配置 在線協作

配置好之後,列表裏的office 文件可以直接線上打開。

完成。
持續更新,下一目標。 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,
),

熱門文章