I am running Ubuntu running Apache 2.4.7.

My problem is that when I try to view my site from the web I get the
"Forbidden / You don't have permission to access / on this server." error.

I have tried everything under the sun from setting permission, to creating virtual host files. It's not a firewall issue as I have opened port 80 on the router. I have also set up port forwarding and I know that it is working as I can see that there is an attempt by 192.168.0.1 whenver I try to access the site from the Internet. However, the log says that the permission was granted but still gives me the "Forbidden / You don't have permission to access / on this server." error. I am completely baffled.

It works on my LAN with localhost, my external IP address, my DNS name. But access over the web always gives the error.

Access to / (root of the apache directory tree - not the system root folder) is very dangerous! You should set it up to require a userid and password to access, as in: https://host.domain.com/?user=foo&password=bar - so, index.html in / should validate these GET variables.