繁体   English   中英

设置Apache / Host要求后无法查看Zend Framework 1.0的index.php?

[英]Can't view index.php of Zend Framework 1.0 after setting up Apache/Host requirements?

UPDATE :Apache错误日志中出现以下错误...

[Sat Dec 08 16:41:39 2012] [error] [client 127.0.0.1] 
PHP Fatal error:  require_once(): 
Failed opening required 'Zend/Application.php' 
(include_path='/Library/WebServer/Documents/quickstart/library:.:/php/includes:/Users/markmcdonnell/Dropbox/Library/PHP/ZendFramework-1.12.0/library') 
in /Library/WebServer/Documents/quickstart/public/index.php on line 18

我正在使用Mac OSX 10.8.2(Mountain Lion),但在设置和运行Zend框架时遇到了问题(仅是基本的QuickStart)。

我正在使用Apache 2.2.22

我的本地主机文件可从/ Library / WebServer / Documents访问

我也正在运行PHP 5.3.15。

我已经通过命令行(使用zf.sh文件)创建了一个名为“ quickstart”的新项目(按照Zend网站推荐的部分),该项目存储在以下位置:/ Library / WebServer / Documents / quickstart

我既遵循Zend官方网站说明,也遵循有关安装Zend的在线书籍: http : //www.survivethedeepend.com/zendframeworkbook/en/1.0/creating.a.local.domain.using.apache.virtual.hosts

我的php.ini( /private/etc/php.ini )文件已更新,包括ZendFramework目录内library文件夹的路径...

include_path = ".:/php/includes:/Users/<home>/Dropbox/Library/PHP/ZendFramework-1.12.0/library"

我已经更新了/etc/apache2/httpd.conf因此它包括...

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

# Ensure "localhost" is preserved unchanged pointed
# to the default document root for our system.
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /Library/WebServer/Documents
</VirtualHost>

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerName quickstart.local
    DocumentRoot /Library/WebServer/Documents/quickstart/public

    SetEnv APPLICATION_ENV "development"

    <Directory /Library/WebServer/Documents/quickstart/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

...我还更新了/etc/hosts因此它包括...

127.0.0.1   localhost
127.0.0.1   quickstart.local

我使用sudo apachectl graceful重新启动Apache(我也使用了sudo apachectl restart

因此,如果尝试并现在访问http://localhost/我会看到/Library/WebServer/Documents目录,并且可以看到PHP仍在运行,没有任何问题。 但是,如果我尝试访问http://quickstart.local/ ,只会得到一个空白页面?

任何人都可以就问题可能是什么,我缺少什么以及我可以做些什么来显示初始的“欢迎”页面提出建议。

我确定我只是想念一个小人物,但这显然造成了足以使基本页面无法显示的问题。

谢谢。

标记

Zend文件和Apache进程之间可能存在用户权限问题。

由于您可以使用zf.sh创建项目,因此显然可以zf.sh Zend文件。 但是通过Apache失败会提示Zend文件可能无法通过Apache进程(即运行Apache进程的用户)进行访问。

$ chmod 0777 /Users/markmcdonnell/Dropbox/Library/PHP/ZendFramework-1.12.0/library

去测试。

您可能会获得更少的扩展权限,例如0644 ,但是我承认我对此方面感到很恐惧。 ;-)

仅针对可能遵循此规则的其他人。 上面的Kamil回答是可行的,但在Apache的安全配置之外开了一个安全漏洞。 只要您知道并在Apache之上具有另一层安全性,那就很好。

解决该问题的另一种方法是将ZendFramework放在根目录层次结构内的某个位置。 像:DocumentRoot / Library / WebServer / Documents / ZendFramework-1.12.0 / library或DocumentRoot / Library / WebServer / Documents / quickstart / public / ZendFramework-1.12.0 / library Apache服务器根目录内的任何路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM