2010-08-09 32 views
3

我刚刚意识到有一点PHP在一台服务器上不能正确执行,但是它在另一台服务器上执行。在PHP 5.3.2-1ubuntu4.2中没有关闭支持

他们俩都运行Ubuntu 10.04与PHP PHP 5.3.2(PHP 5.3.2-1ubuntu4.2用了Suhosin贴片(CLI)(内置:5月13日20时03分45秒2010))

我使用的测试:

$f = function() {}; 

var_dump($f); 
die(); 

在那工作的服务器,其结果是:

对象(封闭)#1(0){}

在一个不,结果是:

UNKNOWN:0

我缺少什么?

[编辑]

似乎存在一个问题,在同一个文件中具有2个封闭:

<?php 
$f = function() {}; 
$f2 = function() {}; 

var_dump($f); 
var_dump($f2); 
die(); 

输出:

UNKNOWN:0
对象(封闭) #1(0){}

+1

你确定其他**正在运行** 5.3吗?它可以安装,但有一个旧版本运行?尝试运行'phpinfo();'以确保它们之间的相关设置完全相同(虽然我不确定设置是否与此问题有关,但它会验证安装的版本)。 – ircmaxell 2010-08-09 12:56:43

+1

您是否有任何有关两种设置之间差异*的更多信息? – salathe 2010-08-09 12:56:59

+0

你可以设置'error_reporting'为'E_ALL | E_STRICT'?也许一些错误正在悄悄地被压制......? – ircmaxell 2010-08-09 13:04:16

回答

2

在Google搜索结果中加入了更多谷歌搜索结合ircmaxell的提示后,我收到了eaccelerator的提示。

正确运行代码的服务器正在运行eaccelerator 0.9.6.1,没有工作的服务器正在使用0.9.6。

从源代码编译新版本,它解决了我的问题。

谢谢!

+1

如果您看到'UNKNOWN:0',这通常意味着内存损坏。 – Artefacto 2010-08-09 14:52:38