私は、Apacheのバーチャルホストと混同しています
質問
私は、Zend FrameworkでWebアプリケーションを構築しています、と私は、アプリケーションの「パブリック」フォルダに私のアプリを指定する必要があります:
だから、基本的に私はhttp://localhost/myapp
呼び出すとき
それはhttp://localhost/myapp/public/
が表示されるはずです。
私は、/ etc / apache2の/サイト利用可能/ myappのに呼ばれる仮想ホストのファイルを作成しました
<VirtualHost *:80>
DocumentRoot /var/www/myapp/public/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/myapp/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
しかし、それは動作しません。私は呼び出すとます。http:// localhost /をmyappのに、それはアプリのディレクトリ構造を表示し、とき、私はをクリックしてください「パブリック」フォルダには、それは私がデフォルトで表示させたいものを表示します... 私は前にバーチャルホストを設定したことがない、それは限り、私はそれについてのチュートリアルになったようです。
解決 2
[OK]を私は道何とか見つかった...私はそれが右/最良の方法が、...
必要はないと思います(apache2のフォルダ内の)httpd.confの
Listen 10089
<VirtualHost *:10089>
DocumentRoot "/var/www/myapp/public"
<Directory "/var/www/myapp/public">
Order allow,deny
Allow from all
AllowOverride all
</Directory>
</VirtualHost>
私のアプリがローカルホストを経由してアクセスできるようになりました:10089 Apacheでのリライトのmodを有効にした後、私は(Zendのフレームワークは、フレンドリーURLナビゲーションをサポートし、そのように動作します)のindex.phpにすべてをリダイレクトし、必要な.htaccessを、私のアプリのルートに1を追加します:
RewriteEngine on
RewriteRule .* index.php
と私のパブリックフォルダ内の第二の.htaccessファイルには、すべてのインデックスにリダイレクトされ、人々は.JPG、.icoファイルなどのファイルとないにアクセスすることを可能にする:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
これはいくつかの助けを願っています!
他のヒント
あなたの最初のリストでは、あなたは完全に「国民オフのまま、ディレクトリタグに異なる値を持っていました。そこ末尾にスラッシュがDOCROOT値の「国民の後でもあったが、2番目の試みで除去します。わからない違いを作ったが、私はあなたが最後のスラッシュが含まれていないことをお勧めします信じています。
また、ただ不思議...あなたは、ローカルマシン上でこれを実行していますか?私は、Skypeは、私は私のApacheサーバの前にあることを実行し始めた場合は、ポート80を使用したいとのトラブルがありました。 80がすでに使用されている場合Skypeは別のポートを使用します。スカイプでない場合は、ポート80を使用し、干渉だ、別のアプリがあるかもしれません。あなたが別のポートで成功を収めた理由が考えられます。