我在两台服务器上有相同的PHP,PEAR和ZEND引擎版本。在一台服务器上一切正常,在第二台服务器上我下载了一个空的.xls文件。如果我打开error_reporting,那么在我的.xls文件中出现此错误:
致命错误:调用未定义的方法System :: tmpdir() 第50行的/var/www/kasa/packages/OLE/PPS/File.php。
File.php中的第50行显示:
$this->_tmp_dir = System::tmpdir();
在类System中,我有方法tmpdir()
function tmpdir() {
if (OS_WINDOWS) {
if ($var = isset($_ENV['TMP']) ? $_ENV['TMP'] : getenv('TMP')) {
return $var;
}
if ($var = isset($_ENV['TEMP']) ? $_ENV['TEMP'] : getenv('TEMP')) {
return $var;
}
if ($var = isset($_ENV['USERPROFILE']) ? $_ENV['USERPROFILE'] : getenv('USERPROFILE')) {
return $var;
}
if ($var = isset($_ENV['windir']) ? $_ENV['windir'] : getenv('windir')) {
return $var;
}
return getenv('SystemRoot') . '\temp';
}
if ($var = isset($_ENV['TMPDIR']) ? $_ENV['TMPDIR'] : getenv('TMPDIR')) {
return $var;
}
return realpath('/tmp');
}
为什么在一台服务器上一切正常,我有错误?
答案 0 :(得分:0)
你可能有多个System类,而且每个服务器上的include_paths都不同 - 一个是先检测到PEAR的System.php,一切正常,另一个没有
你应该比较这些,甚至只是做" echo get_include_path();" 看看你发现了什么差异。