onlyoffice踩坑记录

以下问题都是PHP环境下遇到的

1.因file_get_contents函数未正确配置导致的问题

  • 导致的问题

    1. 重新打开同一个文档 无限弹出 “文件版本已更改。页面将被重新加载”
    2. 在线编辑的内容未被真正的保存到服务器真实的文件中
    3. 在线编辑的内容保存后重新打开还是空白的
  • 解决方法

    1. 检测PHP配置中是否开启了 extension=php_openssl.dll 和 allow_url_fopen=on , 检测是否禁用了file_get_contents

    错误
    这个是因为file_get_contents未能够被正常开启,导致在保存回调中内容一直无法写入

2.因未正确配置apache环境下的Authorization

  • 导致的问题

    1. 开启token后文档无法打开一直弹出 “无法保存文档” 或 “下载失败”
  • 解决方法

    1. 这个是因为apache的原因 没办法正常的解析Authorization。在入口文件中.htaccess文件添加下面的代码
    
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
     

3.服务器中间件(nginx OR apache)未设置文件下载跨域

  • 导致的问题

    1. 打开协作->版本历史无法正常使用,一直“正在打开文件”
  • 解决方法

    1. 这个原因是因为,Demo打开版本历史时会下载一个zip文件,但是因为没有跨域导致这个zip文件无法被正常下载.

    我们只需要在nginx或apache的对应域名的配置文件中,设置跨域即可,以下nginx举例

    server {
            listen        80;
            server_name  test.com;
            root   "C:/Users/root/Desktop/onlyoffice-php";
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' '*';
            add_header 'Access-Control-Allow-Headers' '*';
    }

4.因开启jwt导致历史记录无法正常打开

  • 导致的问题
    1.点历史版本弹出(官方例子也会这样子)
    onlyoffice踩坑记录_第1张图片
  • 原因方法
    1.这个是因为文档服务器开启了jwt验证,但您的历史数据又未携带上jwt生成的token导致的问题(2020.12.20官方的例子也会这样子哦)。
  • 解决方法
    1.在官方的例子上修改(php 例子), 打开doceditor.php->找到getHistory函数.红框内的就是生成一遍token.这样子就好了
    onlyoffice踩坑记录_第2张图片

===========================分隔符=================

  1. 文件服务器对外的web项目路径是/var/www/onlyoffice/documentserver/web-apps/apps

知道这个路径,你可以直接在文档中注入js(你懂的)
里面js文件直接改是没用的哦,改完之后要把对应的.gz文件改名或删掉

你可能感兴趣的:(php)