Hello Everyone!
In this article we would like to explain how to instal a wordpress on a linux server that running apache as web server, php as scripting component and MySQL as database managment service.
This kind of architectures is called LAMP.
#Before starting
This article is dedicated to all the peoples that want to install by hand a wordpress instance. So, if you are a novel server administrator, you could be stucked on the huge amount of file and directory that linux provide to you!
Also, when you talk about LAMP, we need to choose what linux distribution we want to use! There are huge amount of Linux distribution from which you can choose, but for the purpose of this article we will use debian.
No worry! With this tutorial you will install wordpress on lamp in just 5 minutes (if you have a good internet connection on your server!)
##Let’s go!
In order to install wordpress we need a linux server (a window version still exist but we only cover open source things).
You must start by login in your server and open a shell. We will use vim as text editor, because we are purist! You could use a graphical editor (like gedit or other) but if you start using vim, you will never go back! Vim is a god!
Upgrade your server
So, as first step, open console, write the followig row and then press enter!
sudo apt-get update
sudo apt-get upgrade
This two rows will update your system installing all the latest updates.
Install VIM
As second thing, we will install Vim.
sudo apt-get install vim
Ohoh! Now you have Vim on your machine! This is a good thing.
Install LAMP components
As third step, you need to install all software included in a LAMP architecture. So, you need to install APACHE (A), MySQL (M) and PHP §. You already have LINUX (L)
In the console, put the following lines, one at time and press enter!
sudo apt-get install apache2
When apache is ready, try to connect with your browser to http://localhost:80. You should see the apache welcome page!
Go ahead by installing PHP runtime and the PHP module for MySQL.
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
After installation, go in /var/www/ and looking for index.html and remove it! Then, write the following command on the shell. I inserted [todo] action in order to allow you to use vim if you don’t know how it work. See here a command list for vim.
vim index.php
[press i]
<?php phpinfo() ?>
[press esc]
[write :w] and [press enter]
[write :q] and [press enter]
In this manner you have created a php file named index in which you request to php to put on the screen all PHP configuration dump. Check again http://localhost:80 and you will see a page like the following:
Go ahead! Now, we must install MySQL and phpMyAdmin that will help you to explore MySQL database instances without using command line.
In order to install MySQL, write the following line in your console and press enter!
sudo apt-get install mysql-server
LAMP is ready!
Now, we have a LAMP server and we need to install wordpress. As first thing go in /tmp directory with:
cd /tmp
In this directory we can download files that will be deleted at next reboot. So, download the last version of wordpress by the following command.
wget https://wordpress.org/latest.zip
After download, unzip your file with:
unzip latest.zip
Please note, if you do not have installed unzip on your server write the following command before trying to unzip wordpress.
sudo apt-get install unzip
Installing Wordpress Instance in an Apache directory
After unzipping the file you will have a new directory called wordpress in the /tmp. So you can write the following command:
cd /tmp/wordpress
Now is the time to create a new website handled by apache! As first thing, create the folder in which website (wordpress instance) will be placed.
mkdir /var/www/wpsitename
cp /tmp/wordpress/* /var/www/wpsitename -r
Then, allow current user to manipulate wpsitename folder (i don’t know your username so use it instead of LUSER.
chown LUSER /var/www/wpsitename -hR
chgrp LUSER /var/www/wpsitename -hR
Now, your user is ready to to all the other things that wordpress need in order to work properly! We must create an uploads folder in the wpsitename directory (i don’t know why wordpress programmer not zip an empty folder in their zip, maybe because you can choose to move this directory in other filesystem place).
This directory is used by wordpress in order to download and install themes, plugin and in order to handle your media.
mkdir /var/www/wpsitename/uploads
sudo chmod 777 /var/www/wpsitename/uploads
Create and install new MySQL database for wordpress
Now, you have wordpress instance installed on filesystem but you need a place in which wordpress can store link, tag, posts and other things. So, you need to connect wordpress to mysql.
In your console, you must write:
mysql -u root -p
INSERT PASSWORD AND PRESS ENTER
CREATE DATABASE wpsitename;
CREATE USER wpsitename@localhost IDENTIFIED BY 'wpsitenamepass';
GRANT ALL PRIVILEGES on wpsitename.* to wpsitename@localhost;
FLUSH PRIVILEGES.
Link wordpress with new mysql database
Now it is time to link wordpress and mysql
You need to create a copy of the wp-config-samples.php with name wp-config.php in /var/www/wpsitename.
You have to write the following command:
cp /var/www/wpsitename/wp-config-sample.php /var/www/wpsitename/wp-config.php
Now, you have to change the parameters in this file.
vim /var/www/wpsitename/wp-config.php
[press i]
Replace the following line with the correct values:
// ** Impostazioni MySQL - È possibile ottenere queste informazioni dal proprio fornitore di hosting ** //
/** Il nome del database di WordPress */
define('DB_NAME', 'DATABASE NAME'); # wpsitename
/** Nome utente del database MySQL */
define('DB_USER', 'MYSQLUSERNAME'); #wpsitename
/** Password del database MySQL */
define('DB_PASSWORD', 'MYSQLPASS'); #wpsitenamepass
Then:
[press esc]
[write :w and press enter]
[write :q and press enter]
We are almost there!
The last thing to do is to ask to apache to handle our website
Apache uses /etc/apache2/sites-enabled/000-default.conf as default configuration file. We suppose that you are using a fresh LAMP server so you can write in your console:
sudo vim /etc/apache2/sites-enabled/000-default.conf
Now, you need to follow the correct way!
If you already have domain name to assign to wordpress…
If you already have a domain that want to bind to your wordpress site you need to add the following code in your apache configuration file.
<VirtualHost *:80>
ServerName YOURDOMAIN
ServerAdmin webmaster@localhost
DocumentRoot /var/www/wpsitename
ErrorLog ${APACHE_LOG_DIR}/mywperr.err
CustomLog ${APACHE_LOG_DIR}/mywp.err combined
</VirtualHost>
Then, save and quit from vim by:
[press esc]
[write :w and press enter]
[write :q and press enter]
Now, it’s time to boot your new wordpress site! On your console ask apache to restart!
sudo apachectl restart
Then, try to connect to http://localhost:80
You will see your wordpress installation form!
If you don’t have domain but want to start wordpress on another port
If you don’t have yet a domain but want to start the work on your wordpress site you can ask to apache to answer on another port (not the 80) by the following line.
Open Apache configuration.
sudo vim /etc/apache2/sites-enabled/000-default.conf
And add the following line at the end of the file.
Listen 8888
<VirtualHost *:888>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/wpsitename
ErrorLog ${APACHE_LOG_DIR}/mywperr.err
CustomLog ${APACHE_LOG_DIR}/mywp.err combined
</VirtualHost>
Then, save and quit from vim by:
[press esc]
[write :w and press enter]
[write :q and press enter]
Now, it’s time to boot your new wordpress site! On your console ask apache to restart!
sudo apachectl restart
Your website will appear on http://localhost:8888