因此,PHP7.0带来了一些问题。最值得注意的是,w3总缓存现在导致了一个错误,它正在向我的httpd错误日志发送垃圾邮件。
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个网站做这件事。并且可能在插件被更新时再次出现。
文件总是在这里(*是变量用户和域相关的文件夹):
/home/*/domains/*/public_html/wp-content/plugins/w3-total-cache/lib/W3/Plugin/TotalCache.php 有没有一种方法可以让我安全地编写脚本?
发布于 2016-05-19 13:05:32
在github上,用户pratham2003使用same problem as you and propose命令sed来应用补丁:
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命令。
你也可以维护一个分支插件并从这个插件安装。
但是最好的办法是由上游的维护人员自己修改。
https://stackoverflow.com/questions/37266102
复制相似问题