【php】onlyoffice踩坑记录

onlyoffice踩坑记录

胖猪猪发布于 2020-11-19

以下问题都是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文件添加下面的代码

    <IfModule mod_rewrite.c>

    RewriteCond %{HTTP:Authorization} .

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    </IfModule>

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.点历史版本弹出(官方例子也会这样子)
    【php】onlyoffice踩坑记录
    【php】onlyoffice踩坑记录

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

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

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

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

php

阅读 514更新于 2020-12-20

本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议

avatar

胖猪猪

0 声望

0 粉丝

0 条评论

得票时间

avatar

胖猪猪

0 声望

0 粉丝

宣传栏

以下问题都是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文件添加下面的代码

    <IfModule mod_rewrite.c>

    RewriteCond %{HTTP:Authorization} .

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    </IfModule>

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.点历史版本弹出(官方例子也会这样子)
    【php】onlyoffice踩坑记录
    【php】onlyoffice踩坑记录

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

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

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

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

以上是 【php】onlyoffice踩坑记录 的全部内容, 来源链接: utcz.com/a/111783.html

回到顶部