PHP Include:将web应用程序从Windows迁移到Linux时出错500

PHP Include:将web应用程序从Windows迁移到Linux时出错500,php,Php,PHP信息服务器窗口: Windows NT TEXTER 6.1版本7600(Windows 7商务版)AMD64 服务器API Apache 2.0处理程序 PHP版本5.4.12 PHP信息服务器Linux: Linux 2.6.18-028stab094.3#1 SMP周四9月22日12:47:37 MSD 2011 x86_64 服务器API CGI/FastCGI PHP版本5.3.2-1ubuntu4.22 在Windows下工作,但在Linux下不工作(错误500): 我

PHP信息服务器窗口:

Windows NT TEXTER 6.1版本7600(Windows 7商务版)AMD64

服务器API Apache 2.0处理程序

PHP版本5.4.12


PHP信息服务器Linux:

Linux 2.6.18-028stab094.3#1 SMP周四9月22日12:47:37 MSD 2011 x86_64

服务器API CGI/FastCGI

PHP版本5.3.2-1ubuntu4.22


在Windows下工作,但在Linux下不工作(错误500):


我已更改此代码,并在两个系统中工作:

<?php @include($_SERVER['DOCUMENT_ROOT'] . "/module/require/file.php" ); ?>


生成错误500是因为存在不同版本的PHP?

在字符串文本中使用数组可能会导致问题。您的行
“$\u SERVER[DOCUMENT\u ROOT]/module/require/file.php”
可以生成如下字符串

"(array)[DOCUMENT_ROOT]/module/require/file.php"
将下标数组括在大括号中,如下所示:

"{$_SERVER[DOCUMENT_ROOT]}/module/require/file.php"
看起来不同版本的php处理此类情况的方式不同


或者,您可以像在工作解决方案中那样,简单地连接字符串。

Linux区分大小写。确保文件名匹配!我尝试您的建议,使用大括号中的数组,但在Linux中仍然有相同的EROR500。只有我的解决方案有效。我刚刚看到你的原始帖子中有一个额外的空格字符。也许这就是问题的原因?
"{$_SERVER[DOCUMENT_ROOT]}/module/require/file.php"