首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用(shell)脚本替换由于php 7而产生的一行代码

使用(shell)脚本替换由于php 7而产生的一行代码
EN

Stack Overflow用户
提问于 2016-05-17 10:21:13
回答 1查看 82关注 0票数 2

因此,PHP7.0带来了一些问题。最值得注意的是,w3总缓存现在导致了一个错误,它正在向我的httpd错误日志发送垃圾邮件。

代码语言:javascript
复制
Tue May 17 04:11:50.865647 2016] [proxy_fcgi:error] [pid 2554:tid 139695893694208] [client 195.154.181.168:59106] AH01071: Got error 'PHP message: PHP Warning:  Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in /home/x/domains/x/public_html/wp-includes/functions.php on line 3464\n', referer: http://www.googlebot.com/bot.html

修复是相当简单的https://github.com/gadelkareem/wp-w3-total-cache/commit/e71030e89f4cd666742ae2ec39451782beb42f3a,但我必须为大约12个网站做这件事。并且可能在插件被更新时再次出现。

文件总是在这里(*是变量用户和域相关的文件夹):

代码语言:javascript
复制
/home/*/domains/*/public_html/wp-content/plugins/w3-total-cache/lib/W3/Plugin/TotalCache.php 

有没有一种方法可以让我安全地编写脚本?

EN

回答 1

Stack Overflow用户

发布于 2016-05-19 13:05:32

在github上,用户pratham2003使用same problem as you and propose命令sed来应用补丁:

代码语言:javascript
复制
sed -i.bak 's/function ob_callback(&/function ob_callback(/g' /path/to/public_html/wp-content/plugins/w3-total-cache/lib/W3/Plugin/TotalCache.php

可以跳过-i.bak选项以防止创建备份文件。

然后,您可以在本地应用修补程序,并编写一个脚本来更新每个服务器上的文件,或者在每个服务器上更新ssh,然后在每个服务器上应用sed命令。

你也可以维护一个分支插件并从这个插件安装。

但是最好的办法是由上游的维护人员自己修改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37266102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档