NEXTCLOUD+onlyoffice的搭建和使用
nextcloud:开源私有化云盘
onlyoffice:在线文档协同处理系统
搭建onlyoffice
先搭建onlyoffice document server,我是根据官网来搭建的,搭建的是centos 版本(非docker)
参考官方文档:https://helpcenter.onlyoffice.com/installation/docs-community-install-centos.aspx?_ga=2.255999755.1855151514.1631773865-1350967698.1629437384
安装后,打印http://IP:port 会跳转到/welcome的页面,这就表示onlyoffice 安装好了。
安装postgresql后,执行psql报错
psql: 无法联接到服务器: 没有那个文件或目录
服务器是否在本地运行并且在 Unix 域套接字
"/var/run/postgresql/.s.PGSQL.5432"上准备接受联接?
卸载掉postgresql后重新安装解决上面问题。
postgresql的路径在 /var/lib/pgsql/,配置文件在 /var/lib/pgsql/data 目录下,data目录需要sudo权限。配置文件:data/pg_hba.conf,data/postgresql.conf
初始化数据库
sudo service postgresql initdb
sudo postgresql-setup initdb
报错:Data directory is not empty!
如果已经初始化过就已经存在data目录。执行sudo rm -rf /var/lib/pgsql/data
删除data目录后重新执行即可。
启动postgresql服务
systemctl enable postgresql.service
设置开启自动启动服务
sudo chkconfig postgresql on
启动服务
systemctl start postgresql.service
创建数据库,用户,授权
sudo -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"
参考:https://www.cnblogs.com/yanmiao/p/3262306.html
离线安装onlyoffice:https://blog.csdn.net/weixin_43859729/article/details/106991153
sudo yum localinstall *.rpm -y
安装nextcloud
nextcloud只能安装在linux环境下,不支持windows。安装之前要先安装好lamp环境。
因为我是将nextcloud和onlyoffice放在同一个服务器,onlyoffice使用的是nginx,nextcloud使用的是httpd(apache2),所以我将端口改了下,NG改成8080,httpd改成18000,php-fpm的端口由默认端口9000改成了9010。修改端口的配置文件地址:/etc/httpd/conf/httpd.conf
将Listen 80
改成Listen 18000
然后再防火墙中开放该端口
sudo firewall-cmd --zone=public --add-port=18000/tcp --permanent
sudo firewall-cmd --reload
有两种方式,一种是在线安装,只要下载一个setup-nextcloud.php文件,在浏览器打开这个文件,就可以默认安装了。
第二种是下载对应版本的nextcloud 压缩包,解压缩后执行安装。
若index.php 变成显示源代码需要修改下httpd.conf
Options Indexes FollowSymLinks
#修改为:Options Includes ExecCGI FollowSymLinks
(允许服务器执行CGI及SSI,禁止列出目录)
显示已安装的PHP
rpm -qa|grep php
php.ini的路径地址:
sudo find / -name ‘php.ini’
php54:/etc/php.ini
php73:/etc/opt/remi/php73/php.ini
php文件无法解析显示源代码的问题
安装好PHP73和httpd后,无法显示PHP文件源代码,执行以下命令即可
sudo yum --enablerepo=remi-safe -y install php73-php
PHP zip 模块未安装
查找是否有对应PHP版本的zip模块
yum search php73|grep zip
返回列表:
php73-php-pecl-zip.x86_64 : A ZIP archive management extension
rh-php73-php-zip.x86_64 : ZIP archive management extension for PHP
执行安装
sudo yum -y install php73-php-pecl-zip.x86_64
重启php-fpm
sudo systemctl restart php73-php-fpm
sudo service httpd restart
安装onlyoffice 集成app
安装后进入nextcloud,如果是版本13,在应用的 office&text 中有onlyoffice的应用,直接点击启用就可以了。
然后我就在版本13的基础上一路在线版本更新,到17的时候提示onlyoffice的应用无法兼容了。我继续更新到19时,提示无法处理响应结果。应用中也找不到onlyoffice了。我以为没有了呢。就又还原到13。
后来发现原来15以后的版本都要自己下载app后放到apps目录里来安装的,我就下了个onlyoffice 6.4.2的版本(兼容nextcloud19),解压缩后,将目录放到apps里就可以使用了。
onlyoffice 启用后,要设置下document server的地址,设置地址在:/settings/admin/onlyoffice
例如我这里是http://ip:port
nextcloud 19 在启用onlyoffice后,直接双击就能在线打开,而13是要选择下载还是用onlyoffice打开。19更方便。
设置onlyoffice 服务器地址后报错:连接时发生异常 (Host violates local access rules)
解决方法:
需要在配置文件 config.php 中增加下列语句:
'allow_local_remote_servers' => true,
配置onlyoffice后失败
打开nextcloud 提示:
Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the webserver log.
查看日志:sudo cat /var/log/httpd/error_log
[Thu Sep 30 08:58:36.780199 2021] [php7:error] [pid 22008] [client 172.102.1.138:1042] PHP Parse error: syntax error, unexpected '/', expecting ')' in /var/www/html/nextcloud/config/config.php on line 5, referer: http://192.168.12.76:18000/nextcloud
配置错误!修改配置后就正确了
共享文件后,打开共享连接提示:Failed to open the requested file.
错误原因:同时启用了onlyoffice和Office Online integration两个应用会有冲突,建议将Office Online integration禁用或移除掉。
本地上传的文件,如xls格式,需要用转换下:
否则,打开后无法编辑。如果上传的是xlsx格式则可以直接编辑。
版本控制
nextcloud支持版本控制。
转移
nextcloud删除用户时会将该用户的所有文件都删除掉,但她支持文件转移功能,可以将文件转移给其他用户。转移请求发出后,需要接收的用户同意接收该文件,并且转移的时间不是实时的,可能长达一个小时。
上传本地文件
为了提高性能,nextcloud 上传文件不会马上显示,要等一段时间后才会看到文件。
项目
在文件夹的右侧面板可以关联到项目并创建项目,从而通过项目来关联文件
重启服务器后报错
Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.
先查看httpd日志
vim /etc/htttpd/logs/error_log
内容:
[Mon Nov 15 12:22:03.561558 2021] [suexec:notice] [pid 32683] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00557: httpd: apr_sockaddr_info_get() failed for OnlyOffice
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message
[Mon Nov 15 12:22:03.603165 2021] [lbmethod_heartbeat:notice] [pid 32683] AH02282: No slotmem from mod_heartmonitor
[Mon Nov 15 12:22:03.662868 2021] [mpm_prefork:notice] [pid 32683] AH00163: Apache/2.4.6 (CentOS) PHP/7.3.31 configured – resuming normal operations
[Mon Nov 15 12:22:03.662904 2021] [core:notice] [pid 32683] AH00094: Command line: ‘/usr/sbin/httpd -D FOREGROUND’
这些都不影响。在nextcloud的index.php文件中添加调试代码,可以定位到错误代码的位置是error2。
catch (Exception $ex) {
\OC::$server->getLogger()->logException($ex, ['app' => 'index']);
print("error2");
var_dump($ex);
//show the user a detailed error page
OC_Template::printExceptionErrorPage($ex, 500);
} catch (Error $ex) {
try {
\OC::$server->getLogger()->logException($ex, ['app' => 'index']);
} catch (Error $e) {
http_response_code(500);
header('Content-Type: text/plain; charset=utf-8');
print("Internal Server Error WITH MYERROR\n\n");
print("The server encountered an internal error and was unable to complete your request.\n");
print("Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.\n");
print("More details can be found in the webserver log.\n");
throw $ex;
}
打印出来的excepion错误是db连接失败。注意,nextcloud使用的是mariadb,而不是mysql。
启动命令:
sudo systemctl start service.mariadb
并添加到开机启动
systemctl enable mariadb.service
解决问题。
更多推荐
所有评论(0)