2012-04-21 10 views
0

/var/www/html/zend_exampleの下にデフォルトのZend Frameworkアプリケーションがインストールされています。公開ディレクトリは/var/www/html/zend_example/publicです。他のディレクトリを無視し、サブディレクトリで作業するようにZend Frameworkを設定しますか?

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

http://MYDOMAIN/zend_exampleの下で動作するようにZFサイトを設定するには、どうすれば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> 

/var/www/html/zend_example/public.htaccessファイルです。

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

DocumentRootが、むしろ各サイトのサブディレクトリよりも、/var/www/htmlに設定されているように、私はzend_exampleother_siteの両方のためのバーチャルホストを編集しました。これにより、それぞれのURLのother_site:http://MYDOMAIN/other_siteとzend_example:http://MYDOMAIN/zend_example/publicの両方のサイトにアクセスすることができました。今、私は/var/www/html/zend_example/publicディレクトリにある.htaccessファイルに問題があると考えています。私はIndexControllerを指すべきであるhttp://MYDOMAIN/zend_example/public/index/indexのようなデフォルトの "Zend" URLにアクセスすることはできません。代わりに404エラーが表示されます。

編集#2

私はzend_example 1を除くすべてのバーチャルホストを無効にし、zend_exampleバーチャルホストがDocumentRoot /var/www/htmlセットを持っている場合、私は特定のデフォルトのZendの経路を含む、http://MYDOMAIN/zend_example/public下Zendのサイトを実行することができています、 http://MYDOMAIN/zend_example/public/index/indexなどです。別の仮想ホストを有効にすると、これは壊れますが、Zendのメインインデックスページにはまだアクセスできます(http://MYDOMAIN/zend_example/public)。私は時間のためにこれをいじることになった

編集#3

。私のサーバがcentos 6.0であるので、実行する必要のある独自の設定があるようです。私はDebian 6.0サーバをセットアップしてしまい、Zendサイトを含め、バーチャルホストのセットアップを正しく行うことができました!私はまだ戻ってcentosの問題を解決したいと思います。

+0

セットアップが正しいと思われます。それは働いていないのですか?あなたがもうother_siteのVHostでない場合は、私が追加する唯一のものはありません。 – vascowhite

+0

@vascowhite Zendのサイトは、http:// MYDOMAIN/'ではなく、http: // MYDOMAIN/zend_example'。また、 'http:// MYDOMAN/other_site /'のようなURLにアクセスすることを防ぎます(Zendアプリケーションのエラーだけで)。 –

+0

CentOSではなくDebian上で動作する場合、問題は特定のファイルやディレクトリの所有権/許可にある可能性があります。私はこれまでubuntuを設定しようとしたときに遭遇しました。 – RockyFord

答えて

1

あなたの迷惑メールにはServerNameオプションがありません。私は、私はあなたが似ている何かを変更しているかどうかわからないんだけど* nixのユーザーじゃない

//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> 

:あなたのディレクトリ宣言でfollowSymlinksを許可しない場合にも、あなたのような何かをしようと、いくつかの問題が発生する可能性がありますWindowsはファイルをホストするかどうかを調べますが、調査するには料金がかかる場合があります。 (ホストファイルを編集する必要があるようですが、それは/etc/hostsになります。127.0.0.1 zend.exampleのような行を追加します。ここで、zend.example =あなたの仮想ホストからのServerName)

P.S. localhostが必要な場合は、おそらくvhost(すべての仮想ホストが1つのファイルに含まれている場合はリストの最初のもの)をlocalhostに作成する必要があります。私は窓でこれをしなければならないことを知っている。

+0

ServerNameは私にとっては混乱の一部です。私はドメイン名で接続していないリモートサーバで作業しているので、IPでアクセスするだけです。 Zendアプリケーション用にlocalhost vhostとServerNameを設定しても、サーバー名ではなくIP経由でアクセスする必要があります。それは理にかなっていますか? –

+0

あなたが提案した 'FollowSymlinks'ルールを追加しました。other_siteの仮想ホストを作成しました。私は '/ etc/hosts'をチェックして、すでにそれにlocalhost行がありました。私は他のアイデアのために 'httpd.conf'を見ています。おそらく、httpd.confに最初に列挙されているvhostがどれであっても、最初のものがhttp:// MYDOMAIN /にあり、2番目のものにはアクセスできないことに注意してください。 'DocumentRoot'が無視されているようです。 –

+0

サイトが離れているという事実は、いくつかの違いをもたらします。これで、適切な仮想ホストとdnsエントリを処理する方法が必要になります。リモートがローカルネットワークに接続されている場合は、各クライアントマシンのhostsファイルを使用してサイトにルーティングできます(またはサーバーマシンのDNSサーバーを設定します)。ローカルネットワークにない場合は、DNSを使用していますオープンインターネット。私はIPでZFサイトにアクセスしようとする際にいくつかの問題を抱えていましたが、わかりません。 – RockyFord

関連する問題