我们已经在学生VM上安装了Xampp。 问题是我们无法在我们的httpd.conf中设置静态DocumentRoot。所以我们必须动态创建DocumentRoot目录。例如:J:/ Apache其中Apache是应该自动创建的目录。自动创建DocumentRoot
有没有办法做到这一点?或者可能在开始时执行mkdir命令?
我们已经在学生VM上安装了Xampp。 问题是我们无法在我们的httpd.conf中设置静态DocumentRoot。所以我们必须动态创建DocumentRoot目录。例如:J:/ Apache其中Apache是应该自动创建的目录。自动创建DocumentRoot
有没有办法做到这一点?或者可能在开始时执行mkdir命令?
您可以做的是创建一个.sh文件,其中包含您需要的URI部分。
比方说,你建立一个由
http://example.com/create-DR/username
称为脚本,让我们还假设你设置根据请求的URI的环境变量:
SetEnvIf Request_URI "^/create-DR/(.+)$" DR_User=$1
我认为你应该能够在这个环境变量中使用shell-sript与$ DR_User
脚本也可以执行d。如果自动你把它放在你的cgi-bin文件夹,此外设定DR_User也将请求重定向到脚本(会做与[P]隐藏你在做什么):
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执行脚本。
现在你应该让你的学生打电话给他们的文件夹。 处理与VirtualDocumentRoot你建立一个默认的虚拟主机(MYB端口为80)的要求来处理它们的动态每个用户:
<VirtualHost *:80>
ServerName testsites.example.com
ServerAlias *.test.example.com
VirtualDocumentRoot /var/www/dev/%1
</VirtualHost>
这将意味着你的同学们都叫.test.example.com和第一部分(由%1给出)将用于VirtualDocumentRoot - >
我不知道该文件夹,但读了THIS以了解如何解决特定的文件夹。有几个例子可以确定正确的语法。
从来没有尝试或测试过这一点,但理论上应该是这样做的方式。如果没有奏效,我将不胜感激。
EDIT
有此需要的一些模块,至少这些: mod_rewrite的 mod_setenvif mod_alias中 mod_cgi一样