2012-01-23 56 views
0

在寻求帮助之前,我一直在阅读很多内容。 我也一直在与托管公司交谈,以获得一些帮助,但他们的技术支持与我一样知识渊博。Zend Framework与PHP共享主机CGI

由于许多在这里编写Zend Framework安装在共享主机上的人,我有一个很深的自动加载和寻找类的问题。

我有权访问php.ini,.htaccess(显然),根目录和公共目录(当然)。

用于我的安装的结构如下:

/ - root, not accessible to public users) 
    /application 
     /config 
      /controller 
      /model 
      /view 
      /forms 
       /decorators 
       /cache 
       /view_compiles 
     /layout 
    /library 
     /Zend 
     /(other libraries) 
     /images 
     /scripts 
     /styles 
/public_html (public root) 
     /css 
     /js 
     .htaccess (zend standard) 
     index.php 
总之

,我使用标准的Zend布局(按照Zend的工具)。 因此,我已经安装了公共区域之上的所有内容,并且所有公共内容都位于公开访问的服务器中。

在我的本地服务器上,一切正常。 它从webroot中的文件夹运行,一切正常。

在生产服务器上,PHP被安装为CGI,可能会有问题。 首先SetEnv不再工作。 无论我如何处理index.php中的路径,自动加载器都不起作用。

当您启动应用程序时,登录表单必须打开。 由于这样的事实,磁带自动加载机不工作, 形式无法找到已在的是定制类创建的元素,从而 以下消息:

Fatal error: Class 'Model_Utils_FormElements' not found in /home/sites/ttonline.com/application/forms/Login.php on line 32

如果我是把一个require_once(至极我不想这个解决方案),然后我得到一个错误,复合装饰未被发现。

整个系统在我的本地工作完美...

我将不胜感激,如果有人可以给我输入/可能的解决情况的想法。

THX

+0

FormElements.php位于何处?我没有看到你的布局。 – emaillenin

+0

FormElements.php位于models/utils下。 – Mamba

+0

在引导程序中有一个名称空间Model_的声明。指向models/utils。 – Mamba

回答

1

此错误是由于它是在Windows机器上开发和部署在Linux/Unix机上的事实。 Windows对单词和目录的大小写松散。

结论:大写错误。