WordPress is incredibly popular with users due to its simplicity and ease of use. It allows anyone (from beginner to expert) to create responsive and SEO-friendly mobile sites that are both high-performance and secure with or without using any programming skills. Millions of people are using it to power their personal websites, professional websites, blogs, stores, forums, galleries, and just about anything you could imagine. If you are looking for a simple yet powerful CMS for your next website then WordPress should be the first on your list. In this step-by-step tutorial, we are going to explain how to set up a Linux VPS (Ubuntu) and install WordPress on it.
System Requirements
Before we get going, you must know what WordPress requires to work without any problems. These are the system requirements:
- Ubuntu VPS with SSH access
- PHP 7 or greater
- MySQL 5.6 or greater OR MariaDB 10.0 or greater
- Apache with mod_rewrite module enabled
Apache, MySQL/MariaDB, and PHP are all part of the famous LAMP stack that powers most of the modern sites today. Follow the steps below to set up a LAMP stack on your Ubuntu VPS and install WordPress. If you’ve used cPanel shared hosting before, then you are probably somewhat familiar with the LAMP stack.
Update the System
Connect to your Ubuntu VPS and update all of your currently installed software to the latest version available. This will ensure that your system is both secure and optimized for the best performance. You should update your system on a regular basis, or set up automatic updates.
sudo apt-get update sudo apt-get upgrade
Install Apache, MySQL, and PHP
To install Apache, run the following command on your server:
sudo apt-get install apache2
Create a virtual host for the new WordPress site. Replace yourdomain.com
with your actual domain name in the examples below.
You can use the editor of your choice. In this tutorial, we’ll use nano. If you don’t have nano installed, you can do so with the following command:
sudo apt-get install nano
After you’ve installed nano, run:
sudo nano /etc/apache2/sites-available/yourdomain.com.conf
And paste the following lines:
<VirtualHost *:80> ServerAdmin admin@yourdomain.com DocumentRoot /var/www/html/yourdomain.com ServerName yourdomain.com ServerAlias www.yourdomain.com <Directory /var/www/html/yourdomain.com/> Require all granted </Directory> ErrorLog /var/log/apache2/yourdomain.com-error_log CustomLog /var/log/apache2/yourdomain.com-access_log common </VirtualHost>
Save the changes and close the file.
Next, create a directory for your website data:
sudo mkdir -p /var/www/html/yourdomain.com
To enable the new virtual host, run the following command:
sudo a2ensite yourdomain.com.conf
Then, reload Apache for the changes to take effect:
sudo systemctl reload apache2
Now it is time to install MySQL. Run the following command to install the MySQL database management system:
sudo apt-get install mysql-server
Once the installation is completed, you can use the mysql_secure_installation
script to improve the security of your database system. Follow the script’s prompts, and answer the questions.
The last component of the LAMP stack is PHP. We’ll use PHP 7 instead of the older versions for the speed, security, and all other improvements. To install PHP 7 and all other required PHP 7 modules on your Ubuntu server, run the following command:
sudo apt-get install php7.0 php-pear libapache2-mod-php7.0 php7.0-opcache php7.0-mysql php7.0-cgi php7.0-curl php7.0-mcrypt php7.0-mbstring php7.0-json php7.0-cgi php7.0-xml
Now that you have the basic install of the LAMP stack, you can proceed to install WordPress.
Install WordPress
To install WordPress on your Ubuntu server, navigate to the document root for your domain name and download the latest version of WordPress:
cd /var/www/html/yourdomain.com/ wget https://wordpress.org/latest.zip
Extract the archive and move the files:
unzip latest.zip mv wordpress/* /var/www/html/yourdomain.com/
You may need to install wget and unzip on your server. If you do have to do that, run the following command to install them:
sudo apt-get install wget unzip
Now, create a MySQL database and user for your WordPress site. Log in to MySQL as root:
mysql -u root -p
Replace the value for the password with your own value and run the following commands one by one:
mysql> CREATE DATABASE wordpressdb; mysql> GRANT ALL PRIVILEGES on wordpressdb.* to 'wordpressuser'@'localhost' identified by 'PaSsW0rD'; mysql> FLUSH PRIVILEGES; mysql> EXIT
Create a WordPress config file:
cp /var/www/html/yourdomain.com/wp-config-sample.php /var/www/html/yourdomain.com/wp-config.php
Edit the newly created config file and change the MySQL settings:
/** The name of the database for WordPress */ define('DB_NAME', 'wordpressdb'); /** MySQL database username */ define('DB_USER', 'wordpressuser'); /** MySQL database password */ define('DB_PASSWORD', 'PaSsW0rD');
Next, change the file permissions:
sudo chown -R www-data: /var/www/html/yourdomain.com
Now, open your favorite web browser and enter your domain name into the address bar. You will see the WordPress welcome page where you can select the default language and set up the basic info for your site.
And you are done! You have successfully set up an Ubuntu VPS with WordPress.
You can now continue with some other configurations and optimizations on your Ubuntu server. If you haven’t already, you should secure your server. Installing a firewall is a must. If you don’t know how to manage a server, you can get Managed VPS hosting (use coupon code WHS50 to get 50% off your first payment when paying monthly), and have the hosting provider do all of this for you.