Заинтересовала система для бесплатного виртуального хостинг в виде простой связки из apache 2.2 c SUEXEC, REWRITE, и .HTACCESS. Хотел бы по этому поводу написать чтото вроде статейки, но все аспекты не потяну. Да и коллективный труд всегда более продуктивный и безопасный. Вот и хотел попросить у вас помощи и совета.
Мысль следующая:
При регистрации генерится виртуалхост с обычным содержимым для SUEXEC:
Код: Выделить всё
<VirtualHost XXX.XXX.46.130:80>
ServerName webuser.host-46-130.free-host
DocumentRoot /var/www/webuser/public_html
SuexecUserGroup webuser webuser
CustomLog /var/log/httpd-logs/webuser.host-46-130.free-host.access.log combined
ErrorLog /var/log/httpd-logs/webuser.host-46-130.free-host.error.log
ServerAlias www.webuser.host-46-130.free-host
ServerAdmin admin@webuser.host-46-130.free-host
ScriptAlias /php-bin/ /var/www/webuser/php-bin/
ScriptAlias /cgi-bin/ /var/www/webuser/public_html/cgi-bin/
AddHandler php-cgi .php .php3 .php4 .php5 .phtml
</VirtualHost>
Код: Выделить всё
/var/www/webuser/public_html является линком в /var/www/webuser/WWW/webuser.host-46-130.free-host
REWRITE, и .HTACCESS используем для того чтобы юзер мог самостоятельно создавать дополнительные сайты просто создав в WWW:
Код: Выделить всё
/var/www/webuser/WWW/
Код: Выделить всё
/var/www/webuser/WWW/TEST.RU/public_html
Реврайт уже разруливает.
Код: Выделить всё
/var/www/webuser/public_html/.htaccess
Код: Выделить всё
UseCanonicalName Off
LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
RewriteEngine On
RewriteMap lowercase int:tolower
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule .? - [E=noWWWHost:%1]
RewriteCond %{REQUEST_URI} !^/~
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^/(.*)$ /var/www/webuser/WWW/${lowercase:%{ENV:noWWWHost}}/public_html/$1
RewriteCond %{REQUEST_URI} !^/~
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^/(.*)$ /var/www/webuser/WWW/${lowercase:%{HTTP_HOST}}/public_html/$1
Еще не ясен метод по которому можно выполнять скрипты через CGI, FastCGI,
Идеальным был бы вариант через Apache itk
В общем вот такая идея, которую хотелось бы воплотить в реальность.