2

我正在尝试在我的共享托管服务器上安装 ZF2。我按照以下步骤操作:

  1. 在我的电脑上下载并解压 Zend Framework 2。

  2. 在我的“public_html”上创建了一个名为“zendPrj”的目录。

  3. 使用 Filezilla 将“Zend”目录上传到“zendPrj”文件夹中。

  4. 使用以下命令创建了一个“php.ini”:

    include_path = ".:/usr/lib/php:/usr/local/lib/php:/home/public_html/mycpanalusername/zndPrj/Zend/library"
    allow_url_fopen = On
    allow_url_include = On
    

    并将其上传到“Zend”文件夹(其中包含“library”、“bin”、“resources”文件夹)。

  5. 使用以下指令创建了一个“.htaccess”文件:

    SetEnv PHPRC /home/mycpanalusername/public_html/zendPrj/Zend/php.ini
    
  6. 创建一个测试文件如下:

    require_once 'Zend/Mail.php';
    $mail=new Zend_Mail();
    print_r($mail);
    echo 'it is working';
    

但我没有得到任何结果。而是显示一个空白页。我哪里错了?

4

2 回答 2

5

好的,这就是我在共享主机中设置 ZF2 应用程序的方式

我的应用程序的文件夹结构,应复制到子域文件夹(与 zf2 应用程序结构相同)

ZF2文件夹结构

第1步:将zf2库(即zendframework下载中的ZEND文件夹)复制到主机的根文件夹,即复制后它看起来像这样(在我的情况下)/home/username/zf2lib/ZEND(任何公共无法访问的位置)

第 2 步:编辑 .htaccess

#SetEnv ZF2_PATH /home/username/zf2lib
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]

第 3 步:编辑 init_autoloader.php 以指向 zf2 库,在此我们有两个选项 1. 如果您的主机支持 .htaccess 中的 SetEnv 标记,则只需取消上述 .htaccess 中的第一行的注释(大多数共享主机不提供这些选项,尤其是在我的情况下)如果选项 1 不可行,那么您必须编辑 init_autoloader.php 文件,如下所示

在此处输入图像描述

从第 24 行到第 32 行注释掉,这段代码负责初始化 zend 库的各种选项,在我们的例子中,我们知道 zf2 库的加载位置,所以我们将硬编码路径,添加第 33 行并将用户名更改为您的主机用户名。

最后一步:将所有这些内容复制到您的子域文件夹并使用 subdomain.domain.com 访问该站点,这对我来说一切正常,希望它也对你有用,祝你好运!

于 2013-06-09T07:59:06.410 回答
3

如果您尝试仅访问其中一个类(即 Mail),那么您应该注意,在 ZF2 中,库结构更改为遵循PSR-0。所以 Zend/Mail.php 不存在并且类名不是 Zend_Mail。要访问邮件类,您需要包含 Zend/Mail/Mail.php,并且类名只是 Mail。

如果您尝试使用完整的 MVC 堆栈,那么您应该按照 Raj 的建议进行操作。

此外,如果您想查看错误是什么,您可能希望将其包含在文件顶部:

error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
于 2013-06-09T18:42:59.470 回答