New Virtual Server only gives 403

Short version: Any time I create a NEW virtual server on my Virtualmin GPL VPS (HyperVM, OpenVZ, CentOS 6.4 x64), I only get a 403 error. My old virtual servers work fine, my other VPS works fine, but any domain on that VPS doesn’t create a proper virtual server.

Long version:
I had a domain as an Alias on another virtual server. However, it was time to add a new website to that domain, so I changed it to a sub server and moved it to the highest parent level. I uploaded the (HTML) website, but was met only by a 403 error. Apache Access/Error logs show nothing unusual (simply that my home IP accessed the website but got a 403), and following a suggestion from another topic in this forum, I also checked the bean enounters file (I’m using a HyperVM OpenVZ VPS), but no fails were registered in that domain. I deleted my .htaccess, restarted Apache, rebooted the server, changed the PHP execution mode, download the server backup and restored it and deleted the server and uploaded the files again manually. But whatever I did, I only got a 403 error (except for when the virtual server was gone, then I got the default website). I also added the SSL Website feature, then I would get an “Index of /” page, showing an empty directory (while the public_html directory was in fact not empty). I then tried to create a new virtual server for another domain, but that would also give the same issue. But the other websites on the server continue to operate like they should.

Note that I do not run the latest version of httpd due to the repository issue which has been described in another topic.

Can anyone help me solve this issue? I’d like to host that website on my VPS without having to re-install the whole thing. Thank you in advance.

This sounds tricky to debug without taking a look at your system myself. For starters, you might want to check the configuration of the domain that gives the 403. I.e. the Apache and BIND config, does the name resolve correctly, what directory is DocumentRoot pointing to, these kind of things.

If the domain previously was an alias domain, i.e. didn’t have any content of its own, it might help to just delete and re-create it, instead of trying to convert it.

Thank you for your reply, Locutus.

Sadly, it is not the solution in this case. I have already deleted the account and created a new one, and simply reuploaded the old website, and even tried a different, single line html file.

I use Cloudflare for the DNS, so it’s unlikely the DNS settings on the VPS itself can affect the workings of the virtual server. I haven’t even enabled the DNS module for that virtual server.

The global Apache configurations should be sound, otherwise the existing virtual servers wouldn’t work either (and they currently do). These are the Apache directives for the domain:

SuexecUserGroup “#527” “#523
ServerName grendelmedia.com
ServerAlias www.grendelmedia.com
ServerAlias webmail.grendelmedia.com
ServerAlias admin.grendelmedia.com
DocumentRoot /home/grendelmedia/public_html
ErrorLog /var/log/virtualmin/grendelmedia.com_error_log
CustomLog /var/log/virtualmin/grendelmedia.com_access_log combined
ScriptAlias /cgi-bin/ /home/grendelmedia/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/grendelmedia/public_html>
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
AddHandler fcgid-script .php
AddHandler fcgid-script .php5
FCGIWrapper /home/grendelmedia/fcgi-bin/php5.fcgi .php
FCGIWrapper /home/grendelmedia/fcgi-bin/php5.fcgi .php5

<Directory /home/grendelmedia/cgi-bin>
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch

RewriteEngine on
RewriteCond %{HTTP_HOST} =webmail.grendelmedia.com
RewriteRule ^(.) https://grendelmedia.com:20000/ [R]
RewriteCond %{HTTP_HOST} =admin.grendelmedia.com
RewriteRule ^(.
) https://grendelmedia.com:10000/ [R]
RemoveHandler .php
RemoveHandler .php5
php_admin_value engine Off
IPCCommTimeout 31
FcgidMaxRequestLen 1073741824

The domain is grendelmedia.com and the username is grendelmedia, so I don’t see anything out of the ordinary.

If you need the contents of any other configuration file to help me, I’m more than happy to supply those.