【问题标题】:Host a Zend Framework 2 Application in Shared Hosting在共享主机中托管 Zend Framework 2 应用程序
【发布时间】:2014-08-06 05:42:54
【问题描述】:

我在共享托管服务器中托管了我的 Zend Framework 2 应用程序。我上传了 public_html 根文件夹中的所有文件。我将以下代码放在 public 文件夹内的 index.php 文件中。

error_reporting(E_ALL);
ini_set("display_errors", 1);

现在我正在尝试像 test.com/public 一样浏览我的应用程序并收到以下错误。

Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message 'Module (test) could not be initialized.' in /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:175 Stack trace: 

#0 /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php(149): Zend\ModuleManager\ModuleManager->loadModuleByName(Object(Zend\ModuleManager\ModuleEvent))    
#1 /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php(90): Zend\ModuleManager\ModuleManager->loadModule('test') 
#2 [internal function]: Zend\ModuleManager\ModuleManager->onLoadModules(Object(Zend\ModuleManager\ModuleEvent))
#3 /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\ModuleManager\ModuleEvent)) 
#4 /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Z in /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php on line 175

我尝试了很多但未能解决问题。有人可以在这方面帮助我吗??

谢谢

【问题讨论】:

  • 假设您首先在本地机器上开发了它,它在那里可以正常工作吗?
  • 感谢@TimFountain 的回复。是的,我在本地机器上开发了它,它在那里运行良好。
  • 在这种情况下,很可能是区分大小写的问题。测试模块的Module.php 的完整路径(包括文件名)是什么?
  • 感谢@TimFountain 的宝贵回复。你猜对了,这是区分大小写的问题。你能说我如何从 URL 中删除 public 字吗?谢谢

标签: zend-framework2 web-hosting


【解决方案1】:

您需要将 public 文件夹中的所有文件添加到根目录,即 public_html。然后在根目录下创建一个文件夹(假设文件夹名为 zf2project)并将除公共文件夹之外的所有文件夹复制到其中。

然后编辑你的 index.php 文件

chdir("zf2project/".dirname(__DIR__));

顺便说一句,您能否提供指向您网站的链接。

【讨论】:

  • 感谢 Mohammad Nomman 拍拍。我试过这样...... *将公共文件夹中的所有文件放入root,即public_html。 * 然后在根目录下创建一个名为 zf2project 的文件夹。 * 将我的项目的所有文件放在 zf2project 中,除了 public 文件夹。 *使用 chdir("zf2project/".dirname(__DIR__)); 编辑 index.php 文件。但这行不通。谢谢
【解决方案2】:

看到这篇文章是因为我有同样的问题。

我尝试过的一件似乎可行的事情是在您的项目目录中创建一个从您的 public_html 目录到您的 public 目录的符号链接。

使用 URL:example.com/~user/Application

$ cd ~/public_html
$ ln -s /path/to/project/public Application

使用网址:example.com/~user

$ cd ~
$ ln -s /path/to/project/public public_html

假设 ~/public_html 尚不存在。

我不确定这种方法是否有任何负面影响。

【讨论】:

    猜你喜欢
    • 2010-11-10
    • 2011-04-23
    • 2016-11-21
    • 2016-12-13
    • 2023-01-07
    • 2014-09-06
    • 2020-10-22
    • 2011-09-11
    • 2014-03-26
    相关资源
    最近更新 更多