Installing WHMCS 6 on Debian 8 Jessie – NGINX, PHP 5.6 (PHP-FPM), MySQL 5.5 (Percona)

Project Overview for Installing WHMCS 6

This is a quick step by step guide to installing WHMCS 6. When the announcement that WHMCS 6 just came out, it was great news to our team. We have deployed applications for the past year which run on PHP 5.6 but have always been annoyed by the fact that WHMCS 5.5 required PHP 5.3 to utilize an older IonCube Loader. With the release of WHMCS 6, we were able to deploy a server stack that’s up to speed with the rest of our WordPress and Magento servers. We chose NGINX with PHP-FPM over the Apache as we have seen many performance benefits with this configuration for other PHP/MySQL applications.

Initial upgrade of installed packages

$ apt-get update && apt-get upgrade
$ apt-get install vim sudo curl

vim is our preferred editor – used in the following commands

Add custom repos for Nginx/PHP/Varnish

$ vim /etc/apt/sources.list

Add the following:

deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
deb http://repo.percona.com/apt jessie main
deb-src http://repo.percona.com/apt jessie main

Nginx/PHP

  • curl http://www.dotdeb.org/dotdeb.gpg | apt-key add –

Percona 5.5

$ apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

Problem:

Received Error during apt-get update: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY E9C74FEEA2098A6E

Solution:

$ gpg --keyserver keys.gnupg.net --recv-key 89DF5277
$ gpg -a --export 89DF5277 | sudo apt-key add -

Update again and install new packages and stop them

$ apt-get install nginx-extras nginx-common php-pear php5-cli php5-common php5-curl php5-fpm php5-gd php5-mcrypt php5-mysql php5-readline iotop htop percona-server-server-5.5 percona-server-client-5.5 percona-toolkit php5-gd php5-json
$ /etc/init.d/nginx stop && /etc/init.d/php5-fpm stop && /etc/init.d/mysql stop

Edit the conf files

$ vim /etc/php5/fpm/conf.d/05-opcache.ini
$ mkdir /var/www/nginx/ && vim /var/www/nginx/nginx.conf
  • create standard nginx config
vim /etc/nginx/nginx.conf
  • include /var/www/nginx/*.conf;
 vim /etc/php5/fpm/php-fpm.conf
$ vim /etc/php5/fpm/pool.d/www.conf
  • listen = 127.0.0.1:9000
$ vim /etc/php5/fpm/conf.d/20-memcache.ini
$ vim /etc/nginx/fastcgi_params
$ vim /etc/mysql/my.cnf
$ vim /etc/sysctl.conf (to be appended at the end, rest of the file can stay as it is)

And there you have it. Installing WHMCS 6 in a few quick steps.

Anthony Scolaro

Anthony has built his career by bringing together his passion for technology and desire to help people achieve the best results for their businesses. He views his hardwork and success as a blessing as he looks forward to building his future with Project Assistant so he can continue to do what he loves.