[英]PHP Parse Error; Drupal6 Deployment
我在www.example.com/test
安装了Drupal。 现在,它已经准备就绪,可以投入使用了,我正尝试将其移至www.example.com
。 我将sites/default/settings.php
的行更改为:
$base_url = 'http://www.example.com/'; // NO trailing slash!
当我导航到index.php时,会遇到各种解析错误,如下所示:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'
in /home/example/public_html/sites/all/modules/typogrify/typogrify.class.php
on line 18
问题是这样的:
public static function amp($text) {
$amp_finder = "/(\s| )(&|&|&\#38;|&)(\s| )/";
return preg_replace($amp_finder, '\\1<span class="amp">&</span>\\3', $text);
}
像这样的每个函数都会导致错误。 那么PHP会不会再在子目录中不再理解这种语法就可以了呢?
IIRC,这是尝试在PHP 4中使用可见性声明(私有/受保护/公共)时遇到的错误。 难道是您的实际环境使用的PHP版本与测试环境不同?
虽然Drupal 6核心应该仍然与PHP 4兼容,但是许多模块不兼容,因为PHP 4不再维护,并且自2008年8月以来未获得任何安全修复 。 因此,将其用于生产现场绝对不是安全的明智之举。
因此,在投入任何时间进行“修复”之前,我建议立即切换到PHP 5。
可能与您的问题无关,但是您是否在设置$base_url
变量的行上阅读了注释? 您应该删除斜杠,以防实际URL中也有斜杠。
编辑:刚刚检查了违规文件中的“ Typogrify”类。 它似乎只是静态方法(函数)的集合。 因此,如果这是唯一给您带来问题的文件,那么您可以通过删除其中的所有“公共”声明来解决此问题,因为这些声明并非绝对必要。
请注意,我不建议您这样做 -您不应使用已弃用的,未维护的PHP版本来运行生产站点!)
$base_url = 'http://www.example.com/'; // NO trailing slash!
没有结尾的斜杠! ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.