Windows 自动创建DocumentRoot
我们已经在学生虚拟机上安装了Xampp。 问题是我们不能在httpd.conf中设置静态DocumentRoot。因此,我们必须动态创建DocumentRoot目录。例如:J:/Apache,其中Apache是应该自动创建的目录Windows 自动创建DocumentRoot,windows,apache,command,line,Windows,Apache,Command,Line,我们已经在学生虚拟机上安装了Xampp。 问题是我们不能在httpd.conf中设置静态DocumentRoot。因此,我们必须动态创建DocumentRoot目录。例如:J:/Apache,其中Apache是应该自动创建的目录 有办法吗?或者在启动期间执行mkdir命令?您可以做的是创建一个.sh文件,其中包含您需要的请求URI部分 假设您构建了一个由调用的脚本 http://example.com/create-DR/username 我们还假设您根据请求的URI设置了一个环境变量: Se
有办法吗?或者在启动期间执行mkdir命令?您可以做的是创建一个.sh文件,其中包含您需要的请求URI部分 假设您构建了一个由调用的脚本
http://example.com/create-DR/username
我们还假设您根据请求的URI设置了一个环境变量:
SetEnvIf Request_URI "^/create-DR/(.+)$" DR_User=$1
我认为您应该能够在shell sript中与$DR_User一起使用此环境变量
如果将脚本放在cgi bin文件夹中,并且除了设置DR_,用户还可以将请求重定向到脚本,则脚本也可以自动执行(将使用[p]来隐藏您正在执行的操作):
到目前为止,您已经创建了新文件夹并动态设置了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]
这允许从IPs 10.11.12.13和10.11.12.14执行脚本
现在你应该允许你的学生调用他们的文件夹。
要处理请求,请使用VirtualDocumentRoot构建默认vhost(端口80的myb),以便为每个用户动态处理它们:
<VirtualHost *:80>
ServerName testsites.example.com
ServerAlias *.test.example.com
VirtualDocumentRoot /var/www/dev/%1
</VirtualHost>
ServerName testsites.example.com
ServerAlias*.test.example.com
VirtualDocumentRoot/var/www/dev/%1
这意味着您的学生将调用.test.example.com,第一部分(由%1给出)将用于VirtualDocumentRoot-->的
我不知道该文件夹,但请阅读以了解如何处理特定文件夹。有几个例子可以确定正确的语法
从未尝试或测试过这一点,但理论上这应该是实现这一点的方法。如果它不起作用,我希望您能提供一些反馈,说明它对您的作用以及收到的错误消息
编辑
这需要一些模块,至少这些模块:
修改
mod_setenvif
模组别名
mod_cgi您可以做的是创建一个.sh文件,其中包含您需要的请求URI部分 假设您构建了一个由调用的脚本
http://example.com/create-DR/username
我们还假设您根据请求的URI设置了一个环境变量:
SetEnvIf Request_URI "^/create-DR/(.+)$" DR_User=$1
我认为您应该能够在shell sript中与$DR_User一起使用此环境变量
如果将脚本放在cgi bin文件夹中,并且除了设置DR_,用户还可以将请求重定向到脚本,则脚本也可以自动执行(将使用[p]来隐藏您正在执行的操作):
到目前为止,您已经创建了新文件夹并动态设置了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]
这允许从IPs 10.11.12.13和10.11.12.14执行脚本
现在你应该允许你的学生调用他们的文件夹。
要处理请求,请使用VirtualDocumentRoot构建默认vhost(端口80的myb),以便为每个用户动态处理它们:
<VirtualHost *:80>
ServerName testsites.example.com
ServerAlias *.test.example.com
VirtualDocumentRoot /var/www/dev/%1
</VirtualHost>
ServerName testsites.example.com
ServerAlias*.test.example.com
VirtualDocumentRoot/var/www/dev/%1
这意味着您的学生将调用.test.example.com,第一部分(由%1给出)将用于VirtualDocumentRoot-->的
我不知道该文件夹,但请阅读以了解如何处理特定文件夹。有几个例子可以确定正确的语法
从未尝试或测试过这一点,但理论上这应该是实现这一点的方法。如果它不起作用,我希望您能提供一些反馈,说明它对您的作用以及收到的错误消息
编辑
这需要一些模块,至少这些模块:
修改
mod_setenvif
模组别名
mod_cgi