403 Forbidden after successfully installing Ghost


I have been spending days figuring out how to install the viral Ghost platform, and experienced numerous errors. Luckily, I have managed to install it - Ghost gives me a positive Ghost is running... message in SSH after I've done npm start --production. However, when I browse to my website - http://nick-s.se - Apache displays its default page and when I go to the ghost login area - /ghost, the site returns a 403 Forbidden.

P.S. I have specifically installed Ghost on a different port than the one Apache is running on. I don't know what's going on...

Update - I have found out that I can access my Ghost installation by adding the port number 2368 which I've configured in the config.js. Now, however my problem is - how can I run Ghost without using such ports?...

Problem courtesy of: Nick


tell your browser you want to connect to the port Ghost is running on: http://nick-s.se:2368

Solution courtesy of: Plato


If you don't have any other sites running on your VPS you can just turn apache off and not have to deal with apache proxying the request to port 2368 and have Ghost run on port 80. If your VPS is running CentOS you can check out this how to on disabling apache and running Ghost on port 80.

Discussion courtesy of: howtoinstallghost

So a few things, based on visiting:

1) It seems Apache isn't proxying the request onward to Ghost. Are you sure that you've configured it properly?

2) It also looks like Apache doesn't have access to the directory that you set as root. This shouldn't be necessary anyway if proxying is set up correctly, but could become an issue later if you wanted to use apache to serve things like the static assets.

If you are open to nginx instead of Apache, I have written a how to on this: link. You can skip the section on configuring Nginx. Otherwise, still might be useful if you figure out the conversion of rules from Nginx to Apache.

Discussion courtesy of: Ryan

This recipe can be found in it's original form on Stack Over Flow.