我正在尝试在我的共享托管服务器上安装ZF2。我按照以下步骤操作:
在我的计算机上下载并解压缩了Zend Framework 2.
在我的“public_html”上创建了一个名为“zendPrj”的目录。
使用Filezilla将“Zend”目录上传到“zendPrj”文件夹中。
使用以下命令创建“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”文件夹)。
使用以下指令创建“.htaccess”文件:
SetEnv PHPRC /home/mycpanalusername/public_html/zendPrj/Zend/php.ini
按如下方式创建测试文件:
require_once 'Zend/Mail.php';
$mail=new Zend_Mail();
print_r($mail);
echo 'it is working';
但我没有得到任何结果。而是显示空白页面。我哪里错了?
答案 0 :(得分:5)
好的,这就是我在共享主机中设置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 lib的加载位置,所以我们要硬编码路径,添加第33行并更改用户名为主机用户名。
最后一步:将所有这些内容复制到您的子域文件夹并使用subdomain.domain.com访问该网站,这对我来说效果很好,希望它对你也有用,祝你好运!
答案 1 :(得分: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);