I decided to port this over from one of my Previous posts to give myself some content worth reading. Its a guide I wrote that walks you through the process of setting up MariaDB, NginX and PHP on CentOS 6. This is now the default “lamp” (I suppose its now LNMP) stack of EL7.   Pre-Requisites : An EL6 Server (A VPS Will do) 15-20 Minutes of Spare Time

Initial Setup

First we need to install the EPEL Package source.

# rpm -Uivh http://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

PHP and php-fpm

What is php-fpm? PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites. To install via yum you can simply do


What is MariaDB? MariaDB is a drop in replacement for mySQL (i.e its entirely compatible with mySQL) To install it you need to add a file called mariadb.repo to /etc/yum/repos.d the file should contain

Once you have this simply install with

The above will install all you need unless you wish to setup a MariaDB Cluster (Stay Tuned for another tut) You can access the MariaDB Console from


Nginx (pronounced engine-x) is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Igor Sysoev started development of Nginx in 2002, with the first public release in 2004. Nginx now hosts nearly 12.18% (22.2M) of active sites across all domains. Nginx is known for its high performance, stability, rich feature set, simple configuration, and low resource consumption. Installing NginX is pretty simple its just

Setting up your vhost Create a file in /etc/nginx/conf.d called example.com The file should contain the following (I have commented)

# This block denies access to common config files
location ~ /(config\.php|common\.php|cache|files|/images/avatars/upload|includes|store) {
    deny all;
    return 403;

# Cache configuration for image files
location ~* \.(gif|jpe?g|png|css)$ {
    expires   30d;

# Handle PHP File
location ~ \.php$ {
    try_files $uri =404; # If the file does not exist return a 404 error
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock; # Use a unix socket for fast-cgi
    fastcgi_index  index.php; # Indec files for fast_cgi
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; # Fast CGI Script Location
    include fastcgi_params;  # Include Fast CGI Defaults


Starting Up