Install Ghost with Softaculous

If you want to install a fresh instance of Ghost on your cPanel account you can do so very easily with Softaculous. Softaculous is an auto-installer for cPanel that can auto-install over 266 useful scripts. It's a pretty awesome tool.

Note: if Softaculous isn't currently available in your cPanel account (Shared hosting customers get it by default) you can request to have it installed by our friendly and helpful support staff!

In the search field in the top left-hand corner of the navigation menu search 'ghost' and press the Enter key when it populates

​Click the Install tab

On the Install screen in the Software Setup section do the following:

Protocol can be left unchanged unless you have a SSL certificate installed on the domain or prefer the 'www' prefix to exist for the site address

Choose your target domain from the Choose Domain dropdown menu

If you would like to have the software installed in the root of your domain, leave 'In Directory' empty, otherwise input directory name relative to the domain's folder

In the Blog Settings section add your blog name and its description in the applicable blanks, and add the email you want to be used as the Administrator email for the account in the applicable blank as well

In the User Settings section add your full name and email address as well as a password for the new Ghost account

Tick the box in the Notes section to confirm you've read the Ghost notes available (and check out the URLs the section provides)

Database Settings can be left with defaults unless you'd like a different database table prefix or sample data imported​

Click the Advanced Options plus sign to drop down the options; configure the Advanced Options as per your preference

Next to the 'Email installation details:' text, and in the blank text box, add your email address

​Click the Install button

Install Ghost Manually

Note: the tactic detailed below ONLY works for shared plans. If you have a VPS/Cloud or Dedicated server, no fear... just get in touchwith us. We'll prep your server for the Ghost change.

Prepare Your Account For Ghost

Note: you can now use Ghost in a subfolder, but you cannot use the folder "ghost" or you'll break it!

You will need to know the name of the database, the database user, and the password for the database user when installing Ghost

For the purposes of this document, we'll use 'user_dbname', 'user_dbuser' and 'dbpassword' as examples.

Note: you will need shell access, which is typically enabled by default, to complete a Ghost installation.

Install Ghost

Create a folder in which you can install Ghost

Note: Since SSH is required in later steps we'll walk through the process using SSH. The folder should not be within your public_html folder and should exist in a non-web accessible area of your web hosting space.

cd /home/user

mkdir ghost

Via the download link at http://ghost.org ;obtain the current source version of Ghost

Upgrade Ghost

If you're installing Ghost for the first time, please skip this section and proceed to Installing Ghost

​For our instructional purposes, we'll assume our Ghost install is located at /home/user/ghostIt is strongly recommended that you have proper backups before upgrading any software or scripts, Ghost included.

Note: the server: section should be kept, but does not need to be adjusted.

Install Ghost's Dependencies

npm install mysql

npm install --production

Note: you will see an error regarding sqlite3 in step 1.2; failing to compile. This is normal and should be ignored. Sqlite3 is available via the globally available node.js modules instead.

Create the following symlink (to configure the node.js applications for the server):ln -s index.js app.js

​​Create a tmp directory for node.js applications so that Ghost can function properly: mkdir tmp

To restart Ghost in the future: touch /home/user/ghost/tmp/restart.txt

Go to the public_html directory for the domain that will be hosting Ghost (if the web hosting account has nothing else in it, this is probably public_html in the root of your account): cd /home/user/public_html

Create a file named .htaccess (make sure to include the period at the beginning) and tell the web server to use Ghost by placing the following in the .htacces file:

You can stop here for a standard setup. If you're interested in multiple configurations or using SQLite, read on....

Multiple Configurations, SQLite and more

Ghost also supports SQLite for a database backend, along with multiple configurations. For instance, you could set up a developer config with an SQLite database for testing. In the config.js file from earlier we only had you adjust the production configuration.

To set up an alternate configuration:

Open config.js in your favorite editor and in the development: section set the database: portion to:

If your blog is already running restart to apply the new configuration automatically: touch /home/user/ghost/tmp/restart.txt

Visit your blog, which should now be using the alternate configuration

Note: all settings are stored in the database, so don't be surprised that it looks like a newly installed blog. Simply revert the change in the .htaccess file and restart Ghost again to bring it back.

Back Up Ghost

Ghost does provide rudimentary backup features, but please be aware that backups consist of text only. Binary items such as images are not included. For example purposes, we'll assume ghost is located at http://blog.domain.tld.

Ghost is Behaving Very Strangely

Images and links are broken, stylesheets are missing, etc.

Did you install Ghost to a sub-directory, with something like Wordpress installed above it? If so, the .htaccess file above the ghost install is most likely causing the problem. Open the .htaccess file you created for Ghost, and add this line at the top, then save the file:

RewriteEngine off

Updates to Ghost Theme Not Showing

Since Ghost runs as a persistent process for an amount of time, Ghost simply needs to be restarted for the changes to take effect. To do this, simply:

touch /home/user/ghost/tmp/restart.txt

Remember that the above path is only an example, you'd need to touch the tmp/restart.txt file under your actual ghost install.