Apache2::ディレクティブを参照してください。たとえば、私の開発システムでは次のようになります。
use Apache2::Directive ();
my $tree = Apache2::Directive::conftree();
my $vhost = $tree->lookup(VirtualHost => 'unur.localdomain:8080');
File::Slurp::write_file "C:/bzzzt.txt", [ $vhost->{DocumentRoot}, "\n" ];
を使用して仮想ホストを指定する必要があることを発見した後C:/bzzzt.txt
、内容を含むファイルを作成しました"E:/srv/unur/deploy/htdocs"
<VirtualHost unur.localdomain:8080>
...
</VirtualHost>
<VirtualHost qtau.localdomain:8080>
...
</VirtualHost>
ではなく<VirtualHost *:8080>
。そうしないと、各<VirtualHost *:8080>
セクションが前のセクションを上書きしていました。
これは面倒です。VirtualHost
各エントリは使用済みによってキーが付けられていると思っていたでしょうServerName
。
もっと簡単な方法があるかどうかについては、startup.pl
. ただし、で行う必要があるかどうかはわかりませんstartup.pl
。Apache2::RequestUtil::document_rootを使用して、リクエストの処理中にドキュメント ルートを見つけることもできます。
レジストリ スクリプトを実行していて、に変更したいDOCUMENT_ROOT
場合は、次を追加できるはずです。
chdir $ENV{DOCUMENT_ROOT}
or die "Cannot chdir to '$ENV{DOCUMENT_ROOT}': $!";
startup.pl
ハンドラーなどをいじる代わりに、スクリプトに。