0

デフォルトの Zend Framework アプリケーションが の下にインストールされてい/var/www/html/zend_exampleます。パブリック ディレクトリは次のとおり/var/www/html/zend_example/publicです。

には、他の非 Zend サイトもあります/var/www/html。たとえば、/var/www/html/other_site.

http://MYDOMAIN/zend_exampleZF サイトを構成して、同時に作業を許可するにはどうすればよいhttp://MYDOMAIN/other_siteですか?

これが私のApache設定ファイルです:

<VirtualHost *:80>
    DocumentRoot /var/www/html/zend_example/public
    SetEnv APPLICATION_ENV "development"
    <Directory /var/www/html/zend_example/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

.htaccessファイルは次の/var/www/html/zend_example/publicとおりです。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

開発用の ZF サイトを立ち上げて実行したいだけでなく、他のサイトも (同じベース URL で) 利用できるようにしたいだけです。

現在、すべてのリクエストはベース URL (http://MYDOMAIN) にリダイレクト (または書き換え?) されます。

ありがとう!

編集#1

zend_example両方のvhost を編集して、各サイトのサブディレクトリではなく、other_siteそれぞれDocumentRootが に設定されるようにしました。/var/www/htmlこれにより、それぞれの URL ( other_site:http://MYDOMAIN/other_siteと zend_example: ) で両方のサイトにアクセスできるようになりましたhttp://MYDOMAIN/zend_example/public。さて、ディレクトリにある.htaccessファイルに問題があると思います/var/www/html/zend_example/publichttp://MYDOMAIN/zend_example/public/index/indexIndexController を指すデフォルトの「Zend」URL にアクセスできません。代わりに、404エラーが発生します。

編集#2

1 つを除くすべての vhost を無効zend_exampleにし、zend_example vhost がDocumentRoot /var/www/html設定されている場合は、Zend サイトを で実行できhttp://MYDOMAIN/zend_example/publicます。たとえば、http://MYDOMAIN/zend_example/public/index/index. Zend のメイン インデックス ページにはまだアクセスできますが、別の vhost を有効にするとこれが壊れますhttp://MYDOMAIN/zend_example/public

編集 #3

私はこれを何時間もいじってしまいました。私のサーバーはcentos 6.0であるため、独自の構成を行う必要があるようです。最終的に Debian 6.0 サーバーをセットアップし、Zend サイトを含む仮想ホストを正しくセットアップすることができました! ただし、まだ戻ってきて、centos の問題を解決したいと思います。

4

1 に答える 1

1

ServerName仮想ホストにオプションがありません。followSymlinksまた、ディレクトリ宣言で許可しない場合、いくつかの問題が発生する可能性があります。次のようなことを試してください。

//the ServerName is the name that would follow http:// (http://zend.example/module/controller/action)

<VirtualHost *:80>
    DocumentRoot /var/www/html/zend_example/public
    ServerName zend.example
    SetEnv APPLICATION_ENV "development"
    <Directory /var/www/html/zend_example/public>
        DirectoryIndex index.php
        Options Indexes FollowSymlinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

私は *nix ユーザーではないので、Windows のホスト ファイルに似たものを変更したかどうかはわかりませんが、調査に費用がかかる場合があります。(hostsファイルを編集する必要があるようです.where zend.example = ServerName from your vhost/etc/hostsのような行を追加する必要があります)127.0.0.1 zend.example

PS localhost を利用できるようにする必要がある場合は、おそらく localhost 用に vhost を作成する必要があります (すべての vhost が 1 つのファイルにある場合は、リストの最初のものとして)。Windowsでこれを行う必要があることはわかっています。

于 2012-04-21T10:59:08.813 に答える