【php】onlyoffice踩坑记录
onlyoffice踩坑记录
胖猪猪发布于 2020-11-19
以下问题都是PHP环境下遇到的
1.因file_get_contents函数未正确配置导致的问题
导致的问题
- 重新打开同一个文档 无限弹出 “文件版本已更改。页面将被重新加载”
- 在线编辑的内容未被真正的保存到服务器真实的文件中
- 在线编辑的内容保存后重新打开还是空白的
解决方法
- 检测PHP配置中是否开启了 extension=php_openssl.dll 和 allow_url_fopen=on , 检测是否禁用了file_get_contents
错误
这个是因为file_get_contents未能够被正常开启,导致在保存回调中内容一直无法写入
2.因未正确配置apache环境下的Authorization
导致的问题
- 开启token后文档无法打开一直弹出 “无法保存文档” 或 “下载失败”
解决方法
- 这个是因为apache的原因 没办法正常的解析Authorization。在入口文件中.htaccess文件添加下面的代码
<IfModule mod_rewrite.c>
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
3.服务器中间件(nginx OR apache)未设置文件下载跨域
导致的问题
- 打开协作->版本历史无法正常使用,一直“正在打开文件”
解决方法
- 这个原因是因为,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.点历史版本弹出(官方例子也会这样子) - 原因方法
1.这个是因为文档服务器开启了jwt验证,但您的历史数据又未携带上jwt生成的token导致的问题(2020.12.20官方的例子也会这样子哦)。 - 解决方法
1.在官方的例子上修改(php 例子), 打开doceditor.php->找到getHistory函数.红框内的就是生成一遍token.这样子就好了
===========================分隔符=================
- 文件服务器对外的web项目路径是/var/www/onlyoffice/documentserver/web-apps/apps
知道这个路径,你可以直接在文档中注入js(你懂的)
里面js文件直接改是没用的哦,改完之后要把对应的.gz文件改名或删掉
阅读 514更新于 2020-12-20
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
胖猪猪
0 声望
0 粉丝
胖猪猪
0 声望
0 粉丝
宣传栏
目录
以下问题都是PHP环境下遇到的
1.因file_get_contents函数未正确配置导致的问题
导致的问题
- 重新打开同一个文档 无限弹出 “文件版本已更改。页面将被重新加载”
- 在线编辑的内容未被真正的保存到服务器真实的文件中
- 在线编辑的内容保存后重新打开还是空白的
解决方法
- 检测PHP配置中是否开启了 extension=php_openssl.dll 和 allow_url_fopen=on , 检测是否禁用了file_get_contents
错误
这个是因为file_get_contents未能够被正常开启,导致在保存回调中内容一直无法写入
2.因未正确配置apache环境下的Authorization
导致的问题
- 开启token后文档无法打开一直弹出 “无法保存文档” 或 “下载失败”
解决方法
- 这个是因为apache的原因 没办法正常的解析Authorization。在入口文件中.htaccess文件添加下面的代码
<IfModule mod_rewrite.c>
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
3.服务器中间件(nginx OR apache)未设置文件下载跨域
导致的问题
- 打开协作->版本历史无法正常使用,一直“正在打开文件”
解决方法
- 这个原因是因为,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.点历史版本弹出(官方例子也会这样子) - 原因方法
1.这个是因为文档服务器开启了jwt验证,但您的历史数据又未携带上jwt生成的token导致的问题(2020.12.20官方的例子也会这样子哦)。 - 解决方法
1.在官方的例子上修改(php 例子), 打开doceditor.php->找到getHistory函数.红框内的就是生成一遍token.这样子就好了
===========================分隔符=================
- 文件服务器对外的web项目路径是/var/www/onlyoffice/documentserver/web-apps/apps
知道这个路径,你可以直接在文档中注入js(你懂的)
里面js文件直接改是没用的哦,改完之后要把对应的.gz文件改名或删掉
以上是 【php】onlyoffice踩坑记录 的全部内容, 来源链接: utcz.com/a/111783.html
得票时间