The following article describes how to install WordPress on a LEPP server( Linux Engine-x PerconaDB and PHP. Let’s assume that the machine’s IP is 10.10.10.63
Update the packages list and upgrade the packages
apt-get update
apt-get upgrade
Install Nginx
apt-get install nginx
install PHP and dependencies
apt-get install php5-cli php5-common php5-mysql php5-gd php5-dev php5-fpm php5-cgi php5-memcache php5-gd libssh2-php
Install PerconaDB cluster server
apt-get install percona-xtradb-cluster-server-5.5
Create WordPress related database, create appropriate user and provide appropriate privileges
mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;
FLUSH PRIVILEGES;
exit
Download the latest wordpress package file and uncompress it.
wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
Configuration
cd ~/wordpress
cp wp-config-sample.php wp-config.php
Now edit the file cp “wp-config.php” and edit the following lines as below.
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpressuser');
define('DB_PASSWORD', 'password');
Edit the file cp “/etc/php5/fpm/php.ini” and edit the following lines as below.
cgi.fix_pathinfo=0
service php5-fpm restart
Now the edit the file “/etc/nginx/sites-available/default” and edit the following lines as below.
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name 10.10.10.63;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
service nginx restart
Edit the file “/usr/share/nginx/html/info.php” in the following lines as below.
Now check the installation using the following URL. If the installation was successful, it should be able to load the page properly.
http://10.10.10.63/info.php
WordPress configuration
Create a directory “/var/www/html”
mkdir -p /var/www/html
Copy the contents from ‘wordpress’ directory to the folder you created just now
rsync -avP ~/wordpress/ /var/www/html/
Change directory to the “/var/www/html”
cd /var/www/html/
Create a user named “wordpress” and change the ownership of the contents inside this directory to wordpress:www-data
adduser wordpress
chown -R wordpress:www-data *
Create a directory named “uploads” in the wp-content directory and change the ownership to :www-data
mkdir wp-content/uploads
chown -R :www-data /var/www/html/wp-content/uploads
Nginx configuration
Copy the file /etc/nginx/sites-available/default to the directory /etc/nginx/sites-available with the name wordpress
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/wordpress
Edit the file “/etc/nginx/sites-available/wordpress” and edit the following lines as below.
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name 10.10.10.63;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Create a soft link link from Nginx site-available directory to sites-enabled
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
Restart the services after configuration
service nginx restart
service php5-fpm restart
Now load the WordPress configuration file using the following URL
http://10.10.10.63
Learn more about PerconaDB Here