0

更新: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 框架时遇到了问题(只是基本的快速入门)。

我正在使用 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) 文件已更新为包含libraryZendFramework 目录中文件夹的路径...

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(我也使用过sudo apachectl restart)重新启动 Apache

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

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

我确定我只是想念一个小人物,但这显然会导致基本页面无法显示的问题。

谢谢。

标记

4

2 回答 2

0

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

由于您可以使用 创建项目zf.sh,Zend 文件显然在那里。但是您通过 Apache 获得的失败表明 Zend 文件可能无法通过 Apache 进程(即运行 Apache 进程的用户)访问。

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

去测试。

您可能会获得更少的扩展权限 -0644例如 - 但我承认我在这方面很糟糕。;-)

于 2012-12-08T17:13:34.580 回答
0

仅适用于可能遵循此方法的其他人。上面 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 服务器根目录中的任何路径。

于 2012-12-08T17:15:30.400 回答