2017-04-03 21 views
1

学生用のVMにXamppをインストールしました。 問題は、httpd.confに静的DocumentRootを設定できないことです。したがって、DocumentRootディレクトリを動的に作成する必要があります。例:J:/ Apacheここで、Apacheは自動的に作成されるディレクトリです。DocumentRootを自動的に作成する

これを行う方法はありますか?または、開始時にmkdirコマンドを実行することができますか?

答えて

0

あなたができることは、要求されたURIの必要な部分を含む.shファイルを作成することです。

のは、あなたが

http://example.com/create-DR/username 

によって呼び出されるスクリプトを構築し、のはまたあなたが要求されたURIに応じて、環境変数を設定すると仮定するとしましょう:

SetEnvIf Request_URI "^/create-DR/(.+)$" DR_User=$1 

私はあなたがあるべきだと思いますでこの環境変数を使用できます$ DR_User

スクリプトを実行することもできます自動的にあなたのcgi-binのフォルダにとDR_Userもスクリプトに要求をリダイレクトする設定以外にそれを置く場合には(あなたがやっていることを隠すために[P]であることをするでしょう)は、D:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/create-DR/(.+)$ 
RewriteRule .? /path/to/cgi-bin/create-user.sh [P,L] 

これまでのところ、あなたが持っています新しいフォルダを作成し、EVを動的に設定します。現在の欠点は、それが非常に多くのフォルダを作成するために使用できることです。私はあなたが安全の仕組みを発揮することをお勧めします。たとえば、あなただけの特定のIP(教師のPCが)スクリプトを実行することができます:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/create-DR/(.+)$ 
RewriteCond %{REMOTE_ADDR} ^10\.11\.12\.13|4$ 
RewriteRule .? /path/to/cgi-bin/create-user.sh [P,L] 

これは、スクリプトがIPアドレス10.11.12.13と10.11.12.14から実行することができます。

これで、生徒がフォルダを呼び出すようにする必要があります。

<VirtualHost *:80> 
    ServerName testsites.example.com 
    ServerAlias *.test.example.com 
    VirtualDocumentRoot /var/www/dev/%1 
</VirtualHost> 

あなたの学生が.test.example.com呼び出すことを意味し、最初のだろう:あなたは、動的に各ユーザーのためにそれらを処理するためにVirtualDocumentRootでデフォルト・バーチャルホスト(ポート80のMYB)を構築要求を処理するための

私はそのフォルダを知らないのですが、特定のフォルダのアドレス指定方法を理解するにはTHISを読んでください(%1で指定した部分がVirtualDocumentRootのために取られます)。正しい構文を決定するいくつかの例があります。

これは試したこともテストしたこともありませんが、理論的にはそれを行う方法ではありません。私はそれがうまくいかなかった場合、それがあなたのためにどのように機能し、エラーメッセージが受信されたかに関するいくつかのフィードバックに感謝します。

EDIT

このために必要ないくつかのモジュールがありますが、少なくともこれら: のmod_rewrite mod_setenvifの mod_alias mod_cgiの

関連する問題