【发布时间】:2012-08-15 01:47:13
【问题描述】:
我关注了Falco's tutorial,现在对于 2 个用户(例如 john 和 alice)及其相关目录(/var/www/john 和 /var/ww/alice),一切都按预期工作。
现在,我想更进一步:我需要dynamically configured mass virtual hosting,而不是在/etc/apache2/sites-available/<username> 定义不同的虚拟主机并重新启动Apache。
比如说,我的 DNS 服务器有以下记录:another.site.example.com,我希望它的主目录位于 /var/www/another.site/web。
问题在于 suexec 和 mod_fcgid 的所有这些配置设置。
我结束了我的httpd.conf 的这个草稿(或者我应该创建一个类似/etc/apache2/sites-available/mass_virtual 的文件?):
NameVirtualHost *:80
#default virtual host
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/root/web/
<IfModule mod_fcgid.c>
SuexecUserGroup web-admin web-admin
<Directory /var/www/root/web/>
Options +ExecCGI
Options -Indexes
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/php-fcgi-scripts/root/php-fcgi-starter .php
Order allow,deny
Allow from all
</Directory>
</IfModule>
# ErrorLog /var/log/apache2/error.log
# CustomLog /var/log/apache2/access.log combined
ServerSignature Off
</VirtualHost>
#3rd-level subdomain virtual hosts
<VirtualHost *:80>
UseCanonicalName Off
ServerAlias *.example.com
#problematic email!
ServerAdmin webmaster@example.com
#is this /var/www/another.site/web or /var/www/www.another.site/web for
#a request for www.another.site.example.com ?
VirtualDocumentRoot /var/www/%-3+/web
<IfModule mod_fcgid.c>
#problematic group and user!
SuexecUserGroup web1 web1
<Directory /var/www/*/web/>
Options +ExecCGI
Options -Indexes
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/php-fcgi-scripts/*/php-fcgi-starter .php
Order allow,deny
Allow from all
</Directory>
</IfModule>
# ErrorLog /var/log/apache2/error.log
# CustomLog /var/log/apache2/access.log combined
ServerSignature Off
</VirtualHost>
-
正如您从 cmets 中看到的,我有一个有问题的
ServerAdmin webmaster@example.com、SuexecUserGroup web1 web1和VirtualDocumentRoot /var/www/%-3+/web配置! -
此外,为了确保安全,我认为
IfModule不应该存在 - 如果mod_fcgid无法加载,那么服务器也不应该加载, -
而不是
Alow from all,我想我应该有Deny from all并打开一个 php-library 目录!
谢谢。
【问题讨论】:
-
正如我所说,我的意图是将 www.another.site.example.com 请求定向到 /var/www/another 的用户。 site/web 但正如我在“Using suEXEC”处的link 所读到的,我们可以在 VirtualHost 定义中不使用 SuexecUserGroup 指令但在 mod_userdir!那么,如果对 www.another.site.example.com 的请求在 www.example.com/~another.site 会怎样? >mod_rewrite 然后使用 mod_userdir 来启用 suexec???有什么想法或指令可以实现这一点?
标签: apache2 virtual-hosts mod-fcgid suexec