How to Install Ghost on Elementary OS Latest
Ghost is a popular open-source blogging platform that allows users to easily create and manage their own blogs. In this tutorial, we will show you how to install Ghost on Elementary OS Latest.
Prerequisites
Before you begin to install Ghost, ensure that you have the following prerequisites:
- A server running Elementary OS Latest
- A non-root user with sudo privileges
- Node.js version 8.x or above
- NPM version 6.x or above
Step 1: Install nginx
Ghost requires a web server to function properly. We will install nginx as our web server:
Open the terminal and type:
sudo apt-get update
sudo apt-get install nginx
Start nginx:
sudo systemctl start nginx
Check the status of nginx:
sudo systemctl status nginx
You should see a message that nginx is running.
Make nginx start automatically at boot time:
sudo systemctl enable nginx
Step 2: Install MySQL
Ghost requires a database to store its data. We will install MySQL as our database management system:
sudo apt-get install mysql-server
Start MySQL:
sudo systemctl start mysql
Check the status of MySQL:
sudo systemctl status mysql
You should see a message that MySQL is running.
Make MySQL start automatically at boot time:
sudo systemctl enable mysql
Step 3: Install Ghost
Create a new directory for the installation of Ghost:
mkdir /var/www/ghost
Change to the directory:
cd /var/www/ghost
Install Ghost-CLI globally:
sudo npm install ghost-cli -g
Now, we can install Ghost using the CLI:
ghost install
Follow the CLI prompts to complete the installation. When asked for the URL of your blog, enter your domain name or IP address.
Step 4: Configure Nginx
We need to configure Nginx to serve the Ghost web pages. Create a new Nginx server block:
sudo nano /etc/nginx/sites-available/ghost.conf
Paste the following configuration:
server {
listen 80;
listen [::]:80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:2368;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Save and exit the file.
Enable the Ghost configuration and disable the default configuration:
sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
Test the Nginx configuration:
sudo nginx -t
Reload Nginx to apply the new configuration:
sudo systemctl reload nginx
Conclusion
Congratulations! You have successfully installed Ghost on your Elementary OS Latest server. You can now visit your blog at your domain name or IP address.