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フレームワークのセットアップと実行に問題があります(基本的なQuickStartのみ)。

Apache2.2.22を使用しています

私のローカルホストファイルは/Library/ WebServer/Documentsからアクセスできます

PHP5.3.15も実行しています。

コマンドラインから(zf.shファイルを使用して)「quickstart」という名前の新しいプロジェクトを作成しました(Zend Webサイトのセクションで推奨されています)。これは/ Library / WebServer / Documents/quickstartに保存されています。

Zendの公式Webサイトの指示と、Zendのインストールに関するオンラインブックの両方に従いました:http ://www.survivethedeepend.com/zendframeworkbook/en/1.0/creating.a.local.domain.using.apache.virtual.hosts

私のphp.ini(/private/etc/php.ini)ファイルが更新されlibrary、ZendFrameworkディレクトリ内のフォルダへのパスが含まれるようになりました...

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

を使用してApacheを再起動してsudo apachectl gracefulいます(私も使用しましたsudo apachectl restart

したがって、アクセスしようとするとhttp://localhost//Library/WebServer/Documentsディレクトリが表示され、PHPが問題なく実行されていることがわかります。しかし、アクセスしようとするとhttp://quickstart.local/、空のページが表示されますか?

問題が何であるか、何が欠けているか、最初の「ようこそ」ページを表示するために何ができるかについて、誰かがアドバイスできますか。

小さな人がいなくて寂しいと思いますが、基本ページが表示されないほどの問題を引き起こしていることは明らかです。

ありがとう。

マーク

4

2 に答える 2

0

おそらく、ZendファイルとApacheプロセスの間のユーザー権限の問題です。

を使用してプロジェクトを作成できるためzf.sh、Zendファイルは明らかにそこにあります。ただし、Apacheを介して失敗した場合は、Apacheプロセス(つまり、Apacheプロセスを実行するユーザー)を介してZendファイルにアクセスできない可能性があることを示しています。

$ 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 /libraryApacheサーバーのルートディレクトリ内にある任意のパス。

于 2012-12-08T17:15:30.400 に答える