我的网站最近经常遇到“500 内部服务器错误”,并且主机建议这个 bundle.css.php 脚本可能是原因...
<?php
ob_start('ob_gzhandler');
header('Content-Type: text/css');
$files = split(",",$_GET['files']);
foreach($files as $key=>$val){
if(file_exists($val.'.css')){
include_once($val.'.css');
}else{
echo "\n\n/*** File \"$val\" does not exist. ***/\n\n";
}
}
?>
用我的主人的话来说......
“它试图将所有输出缓冲到 ob_gzhandler 中。它采用了一个非常不安全的在 GET 变量 'files' 中传递的参数列表,然后试图将这些文件包含到输出中。我不确定究竟是什么列表正在传递参数,但我怀疑您的脚本中某处存在错误,它将大量文件名传递给该脚本,因此试图构建一个太大的缓冲对象。”
这远远超出了我的专业知识,因此任何解决问题的建议都将不胜感激。非常感谢。
更新
错误日志充满了诸如...之类的行
[Mon Apr 23 15:44:41 2012] [error] [client xx.xx.xx.xx] (12)无法分配内存:无法创建子进程:/opt/suphp/sbin/suphp for /home/ xxxxxy/public_html/xxxx.php,引用者:http ://www.xxxxxxx.com/wp-content/themes/xxx/style.css