私はすでにApacheWebサーバーをセットアップしていて、PHPで動作しています。
静的VirtualHostsは設定されておらず、すべての要求を動的にルーティングします。
http://example.com/ のリクエストは、ドキュメントルート/var/www/example.com
(VirtualDocumentRoot)から提供され、 http://example.com/ 〜user / は、ドキュメントルート/home/user/public_html
(mod_userdir)から提供されます。後者は、ドメインに関係なく機能します。
Phusion Passengerを使用して、ドキュメントルートのルートまたはサブディレクトリからRuby on Railsアプリケーションを提供できるようにしたいと思います。ただし、 <VirtualHost>
ディレクティブにいくつかの行を追加する必要がありますが、明らかにそこにはありません。
アプリケーションをデプロイするためにrootを必要としないソリューションが望ましいのですが、これは重要ではありません。同じように展開しやすいのであれば、Passengerを使用しないソリューションも構いません。
残念ながら、これは不可能のようです。 Passengerはuserdirと完全に互換性がなく、VirtualDocumentRootでは別のVirtualHostが必要です。
簡単な解決策は、リクエストごとに仮想ホスト環境(コンテナーではなく)を動的に更新するロケーションモジュールをmod_Perlに作成することです。これが、クライアントがftp経由でログインする前にセットアップされなかったサイトの404を処理する方法です。