WordPress is the most popular blogging platform on the Internet. According to some statistics, WordPress powers up about 25% of all websites on the web, so if you are planning to start a blog or a website, you can’t go wrong with WordPress.
There are many ways of installing WordPress, some web hosting providers even offer a one click install option, but in this tutorial I will guide you step by step on how to manually install and configure a WordPress site using Ubuntu as a server.
Table of Contents
Prerequisites
In this guide I assume you already have an Ubuntu server installed with SSH access to it. The latest LTS Ubuntu release at the time of this writing is 14.04. the latest WordPress release at the time of this writing is 4.4.2 If you already installed Apache, MySQL and PHP5 on the server, make sure PHP 5.6 MySQL 5.6 or higher are installed on the server to successfully complete this tutorial.
Installing the LAMP stack
If you haven’t installed Apache, MySQL and PHP5 yet, the easiest way to install the whole stack in Ubuntu is using the “tasksel” script. On your terminal type “sudo apt-get install tasksel and then type sudo apt-get update && sudo tasksel install lamp-server
enter a MySQL password when prompted:
After the installation is done. type in the IP address of your server in a browser, and you should get the apache default web page letting you know that apache was successfully installed:
Setting up the VirtualHost
I assume you will be hosting multiple websites from your server, so we need to create a VirtualHost for your WordPress website or bog. VirtualHosts are located at this path on your server /etc/apache2/sites-available so lets create a virtual host based on your website name. for example I will name my VirtualHost “forevergeeks.conf”
Using nano editor create it: sudo nano /etc/apache2/sites-available/forevergeeks.conf and then put the following in it:
<VirtualHost *:80>
ServerAdmin youremailaddress.com (type your email address here )
ServerName forevergeeks.com ( type the name of your domain here )
ServerAlias www.forevergeeks.com (type your domain alias here )
DocumentRoot /var/www/wordpress ( your wordpress directory )
<Directory />
Options -Indexes
AllowOverride All
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Change all the information on the virtualhost above to reflect yours, and then save the file, and exit To activate the VirtualHost type sudo a2ensite nameofyourvirtulahost on your terminal. For example my command was sudo a2ensite forevergeeks.conf and then reload Apache sudo service apache2 reload
Creating the database
Login to your MySQL server and create the database. type mysql –u root –p to login, and create the database using this command: create database wordpress ;
if you need to create a new user to use with this database, run these commands: CREATE USER ‘newuser’@’localhost’ IDENTIFIED BY ‘password’;
for example, my command looked like this: CREATE USER ‘forevergeeks’@’localhost’ IDENTIFIED BY ‘forevergeeks’;
Grant this user full permissions to the WordPress database:
GRANT ALL PRIVILEGES ON databasename.* TO ‘user’@’localhost’;
for example my command was:
GRANT ALL PRIVILEGES ON wordpress.* TO ‘forevergeeks’@’localhost’;
Type FLUSH PRIVILEGES; then exit.
Downloading WordPress
Let’s download the latest WordPress file. from your server type this cd /var/www/ && sudo wget https://wordpress.org/latest.zip then type sudo apt-get install unzip && sudo unzip latest.zip
Now if you do ls on your terminal, you should see a wordpress directory:
Installing WordPress
Give the web server full access to the WordPress web root directory sudo chown -R www-data:www-data /var/www/wordpress/ Type the name of your site on your browser, and the WordPress setup page should come up””
click on Let’s go!
Type the name of the database the User Name and the password of your MySQL server on the next screen:
Alright sparky, run the installer:
Type the Site Title the Username and password for your website on the next screen.
Success, your WordPress has been installed!
Setting up Permalinks
The First thing you should do when you login to your WordPress site is changing the permalinks structure of your site. To do that, click on Settings then click on “Permalinks” you can choose any permalink structure you like. for forevergeeks.com, I use the Post name permalink:
One thing you will notice when you use the Post name permalink is that when you try to open a page on your site, you get the error The requested URL was not found on this server.
The reason you get that error is because the Mod_rewrite module is not enabled on your server. Enable it by typing this on terminal Sudo a2enmode rewrite then restart apache sudo service apache2 restart . Now check your site and see if the permalinks are working. if you continue getting the error page not found then change this setting on your apache configure file: sudo nano /etc/apache2/apache2.conf and find this piece <Directory /var/www/> And make sure the AllowOverride directive is set to All. Reload apache and the permalinks should work now.
Installing Themes
There are thousands of free themes that you can install within WordPress. to install a a theme, just click on Themes and then Add new:
Browse through the bazillion themes available. once you find a theme you like, click on it and then click on Install:
then click on Activate after the theme is installed:
Installing Plugins
Installing Plugins in WordPress is almost the same as installing themes. click on Plugins then click on Add New:
Then click on the Plugin you want to install, and click on Install Now then activate it after it is installed.
The Must have Plugins for your WordPress site:
WP Fastest Cache This plugin makes your website faster because it generates static html files from your dynamic WordPress site
Yoast SEO This plugin help you optimize your WordPress site for Search Engines
JetPack Jetpack simplifies managing WordPress sites by giving you visitor stats, security services, speeding up images, and helping you get more traffic. Jetpack is a free plugin.You can find and install all these plugins from the repository in WordPress
Conclusion
As you can see, installing and configuring WordPress in Ubuntu is quick and simple. If you have any question or problem that you need help with, please use the comment section below.