Setting up NginX, MariaDB and PHP with EL6
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.
|
|
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
MariaDB
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
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