刚刚在调试一个PHP木马,显示错误信息为:

Warning: Call-time pass-by-reference has been deprecated in E:\New-Hack520org\htdocs\class.php on line 441

Warning: Call-time pass-by-reference has been deprecated in E:\New-Hack520org\htdocs\class.php on line 441

Warning: Call-time pass-by-reference has been deprecated in E:\New-Hack520org\htdocs\class.php on line 892

Warning: Call-time pass-by-reference has been deprecated in E:\New-Hack520org\htdocs\class.php on line 892

Warning: Call-time pass-by-reference has been deprecated in E:\New-Hack520org\htdocs\class.php on line 924

Warning: Call-time pass-by-reference has been deprecated in E:\New-Hack520org\htdocs\class.php on line 924

  修改PHP.ini,allow_call_time_pass_reference = On。实际上,我在安装了Apache/2.0.58 (Win32) PHP/4.4.2,这个选项缺省是打开的。另外,还有一个解决方法是关闭错误报告功能,将php.ini文件里的display_errors = On改成Off。实际上,将allow_call_time_pass_reference改为on可以视做一个解决的办法,但关闭报告功能估计是一种自己骗自己的方法。因为这是一个大的错误,不让他显示并不代表就可以解决掉。

  我在解决这一问题中发现,一共有几个原因可能导致上述问题:

  1.上述值被设置了off。解决方法:修改PHP.ini,allow_call_time_pass_reference = On;

  2.如果你在windows下安装,而php安装目录 everyone没有读与执行的权限,可能也会导致这个问题;

  3.如果php配置中的session目录设置不正确,也可能导致这一问题。包括配置文件中路径设置不正确和没有创建session数据目录;
  4.如果php配置中的includes目录设置不正确,也可能导致这一问题。包括配置文件中中路径配置不正确和没有创建includes这个目录。

上述后三种情况,多数apache+php配置说明都有详细的描述,大家可以参考。

上面这个问题,通常发生在不使用vTigerCRM的安装程序,而是自己手工安装apache+php+mysql中,比如使用单独的安装文件或者easyphp安装包。都很有可能出现上述的问题。