【发布时间】:2009-11-14 21:14:05
【问题描述】:
我有问题。我正在尝试在共享主机上部署我的 zend 框架应用程序。在本地,使用 xampp 一切正常,但在共享主机上我收到以下消息: 解析错误:语法错误,第 40 行 /application/public/index.php 中的意外 T_OBJECT_OPERATOR。第 40 行是:$application->bootstrap()->run();。有什么想法吗?
【问题讨论】:
标签: zend-framework
我有问题。我正在尝试在共享主机上部署我的 zend 框架应用程序。在本地,使用 xampp 一切正常,但在共享主机上我收到以下消息: 解析错误:语法错误,第 40 行 /application/public/index.php 中的意外 T_OBJECT_OPERATOR。第 40 行是:$application->bootstrap()->run();。有什么想法吗?
【问题讨论】:
标签: zend-framework
这可能是由于 PHP 的不同版本。也许您的共享主机正在运行旧版本。在大多数系统上,您可以通过创建包含以下内容的页面来获取 php 版本:
<?php
phpinfo();
?>
您的共享主机可能不允许使用 phpinfo 功能。我建议首先比较您运行的 PHP 版本,并可能更新您的问题。
【讨论】:
错误 500 可能是由 .htaccess 文件中的错误引起的。 mod_rewrite 开启了吗?
【讨论】:
T_OBJECT_OPERATOR 令牌指的是->。请参阅 PHP 手册中的 List of Parser Tokens。共享主机的 PHP 版本是多少?如果它仍在运行 PHP4,您将无法在其上运行 ZF(并且您应该尽快更改主机)。如果它运行的是 PHP5,请确保它是 PHP 5.2.4(或更高版本),并请告诉我们您使用的是哪个版本的 ZF。
编辑 2
错误通常记录到服务器日志中。由于您在共享主机上,因此您可能无法查看它。您可以做的是在文档根目录中找到隐藏的 .htaccess 文件,例如ZF 的公用文件夹并逐行取消注释里面的指令。如果错误消失了,那么您可能会知道出了什么问题。可能是mod_rewrite。您也可以尝试使用apache_get_modules 来找出启用了哪些模块。不过话说回来,你确定它是 Apache 吗?
编辑 3 不知道如何在没有 mod_rewrite 的情况下让它工作。也许Rob Allen 的rather lenghty tutorial 将有助于使其正常工作。一个更短的选择可能是简单地设置
$frontController->setBaseUrl('/path/to/app/index.php')
【讨论】: