【问题标题】:Zend Project not working in a real server after uploadZend Project 上传后无法在真实服务器中运行
【发布时间】:2011-07-31 10:37:20
【问题描述】:

我刚刚使用 zend 框架完成了工作站点。这是我第一个使用 Zend 框架的项目。该站点在本地主机中几乎完成,我尝试将其上传到真实服务器进行测试。我把我的文件放在真实服务器的 public_html 文件夹下。我注意到项目的根文件夹(即public_html)内没有任何文件“index.php”。它实际上位于 public_html 内的公用文件夹中。我很困惑。我试图在根文件夹中制作 index.php 并放入“require_once('public/index.php'),但没有用。我现在该怎么办?

谢谢。

【问题讨论】:

    标签: zend-framework


    【解决方案1】:

    假设typical project directory structure,您的public 文件夹应位于服务器的public_html 文件夹中,而所有其他Zend 项目文件夹应上一层,如下所示:

    /application
        // application files
    /library
        // library and vendor files
    /public (aka public_html, htdocs etc)
        index.php
        .htaccess
        /css
        /images
        /js
    

    【讨论】:

    • 我更喜欢将非公开内容保存在 /basedir 中,这样应用程序目录(如应用程序、库、数据、测试等)就不会与其他内容混合
    • 我会在共享/精简控制环境中这样做,但假设他使用传统的 ZF 目录结构并且可以上传类似的结构,这就是你的做法。
    • 我的结构如你所说,因为我开始安装示例项目的项目。实际上 PDO 扩展在服务器中被禁用,并且在启用它后它现在可以工作......非常感谢 adlawson ))
    【解决方案2】:

    如果可以,请在您的服务器上配置一个虚拟主机,并使其指向您应用程序的“公共”文件夹。

    您还应该启用 apache 的重写模块并确保您的虚拟主机接受 .htaccess 文件(虚拟主机中的指令 AllowOverride All)。

    【讨论】:

    • 本杰明我将 .htaccess 移到 public 之外,在启用 PDO 扩展是服务器后,该项目现在可以工作.....非常感谢))
    【解决方案3】:

    我这样做的方法是让index.php.htacess 从公共目录升级1 级,并相应地更改index.php 中定义的路径。

    例如

    set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), )));

    【讨论】:

    • 我将 .htaccess 文件提升了一级并在那里更改了配置。非常感谢shane....代码在我从服务器启用PDO扩展后工作))
    • 不客气。如果您“接受”答案,请单击绿色箭头。您接受的答案越多,您获得的帮助就越多。
    猜你喜欢
    • 1970-01-01
    • 2016-02-07
    • 2013-10-21
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多