After following Falco's tutorial I managed to have working virtual hosts one per file. Now, I want to access a user's home from the following url: http://www.example.com/~john/info.php with the help of mod_userdir. Is this possible with suexec? Let's see how john is configured at: /etc/apache2/sites-available/ Code: #default virtual host <VirtualHost *:80> ServerName www.john.example.com ServerAlias john.example.com ServerAdmin [email protected] DocumentRoot /var/www/john/web/ SuexecUserGroup john john <Directory /var/www/john/web/> Options +ExecCGI Options -Indexes AllowOverride All AddHandler fcgid-script .php #FCGIWrapper /var/www/php-fcgi-scripts/john/php-fcgi-starter .php FcgidWrapper /var/www/php-fcgi-scripts/john/php-fcgi-starter .php Order allow,deny Allow from all </Directory> # ErrorLog /var/log/apache2/error.log # CustomLog /var/log/apache2/access.log combined ServerSignature Off </VirtualHost> As you can see directive Code: SuexecUserGroup john john is indeed a problem but as Apache states (http://httpd.apache.org/docs/2.2/suexec.html#usage): "Requests that are processed by mod_userdir will call the suEXEC wrapper to execute CGI programs under the userid of the requested user directory." I tried to modify file john (after enabling mod_userdir) to work for any user as follows: Code: <VirtualHost *:80> ServerAlias *.example.com ServerAdmin [email protected] ################## ### solution ### ################## #mod_userdir directives for requests: http://www.example.com/~user UserDir disabled root UserDir /var/www/*/web #reduntant if using requests: http://www.example.com/~user #SuexecUserGroup john john <Directory /var/www/*/web/> Options +ExecCGI Options -Indexes AllowOverride All AddHandler fcgid-script .php #move to .htaccess #FCGIWrapper /var/www/php-fcgi-scripts/*/php-fcgi-starter .php #FcgidWrapper /var/www/php-fcgi-scripts/*/php-fcgi-starter .php Order allow,deny Allow from all </Directory> # ErrorLog /var/log/apache2/error.log # CustomLog /var/log/apache2/access.log combined ServerSignature Off </VirtualHost> As you can see I also created a .htaccess file with the directive: Code: FcgidWrapper /var/www/php-fcgi-scripts/john/php-fcgi-starter .php (there is no meaning to keep * now in the path for wrapper script) but the result is for Apache to send the .php file info.php for download with no error logs!? Any idea how to achive this? Thanks.