2016-07-12 9 views
0

私は自分のmodperl環境で複数のワイルドカード仮想ホストを実行したいサーバーがあります。ワイルドカードvhost with modperl

各仮想ホストは、独自の起動スクリプトを実行して、カスタムインクルードパスを定義する必要があります。通常のバーチャルホストの設定で

、私は次の操作を行うことができます...

<VirtualHost *:80> 
    ServerName web1.myserver.com 

    Define ApplicationRoot /websites/web1 

    DocumentRoot ${ApplicationRoot} 

    PerlSetEnv PERL_DOC_ROOT ${ApplicationRoot} 
    PerlOptions +Parent 
    PerlPostConfigRequire /websites/lib/startup.pl 
... 

マイstartup.plスクリプトは、動的カスタムlibにパスを設定するには、PERL_DOC_ROOT環境変数を使用することができます。

これは、複数のvhostsセクションで正常に動作します。彼らはそれぞれ独自の@INCを定義しており、すべてが正しく解決されます。

これをワイルドカードの仮想ホスト構成に変換する方法はありますか。ユーザーが* .myserver.comにアクセスできるようにしたいのですが、使用するドキュメントルートを特定するためにホスト名を使用し、このフォルダに基づいてlibパスを定義するstartup.plを実行します。

私はこのようなものを使用することができます知っている...

VirtualDocumentRoot /websites/%1/ 

動的ドキュメントルートを設定し、私はそれが理解されていない他のどの宣言で%1を使用しようとします。また、startup.plは、configファイルが最初にロードされたときではなく、サイトが最初に要求されたときに実行する必要があります。

これはまったく可能ですか?または、新しい仮想ディレクトリが追加されるたびに、何らかの形で動的に構成ファイルを書き直す必要があります。

答えて

0

私はそれが過度に複雑になっていることを実感しました。ワイルドカードの仮想ホストを使う必要はありません。私はJenkinsを使ってvhostsディレクトリを作成しているので、それに合わせて動的に設定ファイルを作成することもできます。