1

Windows XPにxamppサーバーがあります:Apache 2.4.3 PHP 5.4.7

Zend2の学習を開始しようとしています。

スケルトン アプリをダウンロードしました: https://github.com/zendframework/ZendSkeletonApplication と cmd から実行:

php composer.phar self-update
php composer.phar install

(C:\ xxx\php.exeのようなphpへの完全なリンクを提供する必要があったわけではありません-理由はわかりません。環境変数にphpがあります)。うまくいきました - エラーはありません。

このコードを httpd-vhosts.conf に追加しました:

<VirtualHost *:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot /zf2-tutorial/public
    SetEnv APPLICATION_ENV "development"
    <Directory /zf2-tutorial/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

この行も C:\WINDOWS\system32\drivers\etc\hosts に追加しました

127.0.0.1               zf2-tutorial.localhost localhost

私が走るとき

http://zf2-tutorial.localhost 

ブラウザで「許可が拒否されました」と表示されます

やってみると

http://localhost/zf2-tutorial/public/ 

非常に長いphpエラーが発生します

Fatal error: Uncaught exception 'Zend\ServiceManager\Exception\InvalidArgumentException' with message 'Provided abstract factory must be the class name of an abstract factory or an instance of an AbstractFactoryInterface.' in C:\xampp\htdocs\zf2-tutorial\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:302 ...........

「許可が拒否されました」というメッセージが表示されるため、sthがサーバーに間違っていると思います。私が間違っていることは何ですか?事前にt​​hx。

みんなありがとう。私の最終設定:

<VirtualHost *:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot C:/xampp/htdocs/zf2-tutorial/public
    SetEnv APPLICATION_ENV "development"
    <Directory C:/xampp/htdocs/zf2-tutorial/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

127.0.0.1               zf2-tutorial.localhost

正常に動作します: http://zf2-tutorial.localhost/

4

2 に答える 2

2

ホスト ファイルが正しくありません。それ以外の:

127.0.0.1               zf2-tutorial.localhost localhost

最後の「localhost」を削除すると、次のようになります。

127.0.0.1               zf2-tutorial.localhost

編集: 私が気付いたもう 1 つのことは、DocumentRoot です。これは、ドキュメント ルートへの完全修飾パスである必要があります。つまり、C:/www/zf-tutorial/public です。ディレクトリ区切りにはスラッシュを使用する必要があることに注意してください。ディレクトリ構成で同じパスを使用して、そのディレクトリへのアクセスが許可されていることを確認してください。

于 2013-05-04T03:46:04.340 に答える
1

Windows を使用しているようです。そのため、vhost 構成には、プロジェクトへの Windows と同様のパスが含まれている必要があります。%PATH% に php\bin への有効なパスがあると確信していますか?

> echo %PATH%

Windows 7 で XAMPP を使用しています。仮想ホストの構成は次のとおりです。

<VirtualHost *:80>
    ##ServerAdmin postmaster@dummy-host2.localhost
    DocumentRoot "C:/xampp/projects/zf2-tutorial/public"
    ServerName zf2.tutorial
    ##ServerAlias www.dummy-host2.localhost
    SetEnv APPLICATION_ENV "development"
    <Directory C:/xampp/projects/zf2-tutorial/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
    ErrorLog "logs/zf2.tutorial-error.log"
    CustomLog "logs/zf2.tutorial-access.log" combined
</VirtualHost>

これは不可欠です(おそらくあなたの場合も):

    <Directory C:/xampp/projects/zf2-tutorial/public>
        # ...
        Require all granted
    </Directory>
于 2013-05-07T21:08:21.473 に答える