这是一个WordPress网站,在浏览网站或信息中心时随机出现错误。它始终是相同的字节53248或8192.实际上是非常小的字节。但除了记忆力不足之外,还有其他事情要做。
我想某处有一个错误。它从第1896行引发/wp-includes/wp-db.php
的错误:
$num_rows = 0;
if ( $this->use_mysqli && $this->result instanceof mysqli_result ) {
while ( $row = mysqli_fetch_object( $this->result ) ) {
$this->last_result[$num_rows] = $row;
$num_rows++;
}
} elseif ( is_resource( $this->result ) ) {
while ( $row = mysql_fetch_object( $this->result ) ) {
$this->last_result[$num_rows] = $row;
$num_rows++;
}
}
注意:为什么要进行投票?问题实际上是来自其他难以捕获的东西,而不是来自PHP或服务器配置。
答案 0 :(得分:3)
最终答案和解决方案: 问题来自写得不好和价格过高(专业版)的插件。 终极会员: https://wordpress.org/plugins/ultimate-member/
此插件的设置中有一个选项。 “缓存用户”。无论是“是”还是“否”都无关紧要。该插件会为您拥有的每个用户在 wp_options表中创建一行。例如,我的网站有 17.000个用户,该插件将 17.000行添加到 wp_options 表中,如:
这样就可以在wp_options表中创建17.000个额外的行。如果你有100.000个用户,那将是额外的100.000行。真是个暴行!像这个插件旨在破坏您的Web服务器。因此即使是6个Cpu核心和12 GB RAM也无济于事。一直得到Http 500错误。
停止此操作的唯一方法是编辑插件的源代码并删除更新wp_options表的行。然后从wp_options表中删除所有数据。
此前:
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' | grep php-fpm
517.02 Mb php-fpm: pool www
455.77 Mb php-fpm: pool www
5.46 Mb php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
0.35 Mb grep php-fpm
现在网站加载速度提高了5倍,没有任何500错误:
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' | grep php-fpm
26.21 Mb php-fpm: pool www
25.29 Mb php-fpm: pool www
24.99 Mb php-fpm: pool www
24.72 Mb php-fpm: pool www
24.28 Mb php-fpm: pool www
23.83 Mb php-fpm: pool www
23.16 Mb php-fpm: pool www
23.06 Mb php-fpm: pool www
22.25 Mb php-fpm: pool www
21.85 Mb php-fpm: pool www
18.76 Mb php-fpm: pool www
5.46 Mb php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
0.35 Mb grep php-fpm
答案 1 :(得分:2)
您的服务器配置为仅允许256 MB内存用于PHP进程。 Wordpress正在使用更多。您尝试分配的字节数(53248或8192)并不重要,因为您要求的内存超过允许的数量,所以您达到了限制。
您的数据库似乎太大了,wordpress需要更多内存来处理您的数据。请重新配置您的服务器(允许使用更多内存),或者提高wordpress开发人员的问题,以便代码只能运行256 MB。
答案 2 :(得分:0)
“问题是由iThemes Security插件引起的。我关闭它并且错误已经消失。如果我知道这个插件的哪个部分导致超出内存限制,我将更多地调查此问题并编辑此答案。“