As there are so many improvements, this blog post will attempt to highlight them while .07 release is still in beta testing. If you have never used Centmin Mod before, you can also check out the How to install Centmin Mod video.

Centmin Mod installation speed. The .07 release will be up to 40-60% faster in terms of installation speed. My local test server went from ~1800-1950 seconds install time to ~720-950 seconds install time. DigitalOcean VPS install time went from around ~1650-1850 seconds install time to ~1100-1350 seconds install time. The new .07 release on Linode VPS average between 950-1000 seconds install time for 4GB and higher VPS (benchmarks). Install time besides the actual Centmin Mod code used, is dependent on several factors including the particular VPS or dedicated server’s network speed geographically related to download sources and the specifications of the server – specifically cpu, memory and disk I/O performance. Faster network speed, cpu, memory and/or disk I/O means generally faster install time.

Return of CLI install mode (previously previewed). Full unattended CLI install mode which bypasses the default Centmin Mod shell based menu install. To bypass the shell based menu, run ./centmin.sh install. As such to facilitate this, the MySQL root user password and Memcached admin php file have an auto generated passwords which will be printed out at end of Centmin Mod install.

Nginx 1.7 defaults. The default installed Nginx version is now Nginx 1.7.2.

PHP 5.4.30 defaults. Starting from .07 release, the default PHP version installed will be bumped from PHP 5.3.28 to PHP 5.4.30. APC Cache will still be the default PHP opcode cacher installed. Unless you enabled the new variable in centmin.sh, ZOPCACHEDFT=’y’ which can override the defaults and install Zend OpCache by default instead of APC Cache. If you have incompatible PHP web apps, you can still downgrade PHP to 5.3.28 via menu option #5 or set PHP_VERSION=’5.3.28′ in centmin.sh BEFORE you actually run install menu option #1. Similarly, if you want PHP 5.5.14, just upgrade PHP via menu option #5 or set PHP_VERSION=’5.5.14′ and ZOPCACHEDFT=’y’ in centmin.sh BEFORE you actually run install menu option #1.

Revised menu options – changing menu options #11 and #12. Number #11 is now a MariaDB 5.2, 5.5 and 10 upgrade sub menu option. Number #12 is now a dedicated menu option to install and reinstall Zend OpCache PHP opcode caching for PHP versions. With menu option #11, the sub menu option to upgrade to MariaDB 10.x is just a place holder for now and doesn’t actually work.

Moved all downloads links themselves out of the download functions atinc/downloads.inc to their own file at inc/downloadlinks.inc for easier management

Changed PHP’s default config scan directory variable path (CONFIGSCANDIR) from /root/centminmod/php.d to /etc/centmimod/php.d. The centmin.sh will auto detect this and create the necessary directory and copy over any existing PHP extension .ini files from the old path. This is preparation for when chrooted user SSH/SFTP/SCP user account support comes https://blog.centminmod.com/194 to allow chrooted users PHP binary access to PHP extensions.

Updated PHP menu option #5 upgrade routine to auto reinstall previously installed PHP extensions such as APC Cache, Xcache, Zend OpCache, Memcache/Memcached, igbinary and ImagemagicK. No longer will users need to manually reinstall these PHP extensions after each PHP upgrade. The script will detect what .ini files are in /root/centminmod/php.d (.07 release will be /etc/centminmod/php.d) when PHP upgrade is ran. Then at end of PHP upgrade will auto reinstall each PHP extension that was detected before PHP upgrade completed.

Updated centmin.sh with 4 options PHP_DISABLED=n, MYSQLSERVICE_DISABLED=n, NSD_DISABLED=n and MEMCACHED_DISABLED=n. By default they are set to NO, so that PHP-FPM, MariaDB MySQL, NSD and Memcached server are installed and enabled (running). Some users have no use for NSD for DNS hosted locally on server and/or have no use for Memcached server or want to have an Nginx only server without running PHP-FPM and MySQL services, so you can set PHP_DISABLED=y, MYSQLSERVICE_DISABLED=y, NSD_DISABLED=y and/or MEMCACHED_DISABLED=y in centmin.sh prior to initial Centmin Mod install, so that PHP-FPM, MariaDB MySQL, NSD and Memcached are disabled but installed. This allows for you to re-enable them if needed in future. To re-enable NSD via commands service nsd start and chkconfig nsd on and for Memcached via service memcached start and chkconfig memcached on.

New Features

Added new menu option #21 update – it upgrades Nginx, PHP-FPM and Siege benchmark versions based on versions defined in centmin.sh. Useful for Centmin Mod version updates as defined in FAQ #4 at http://centminmod.com/faq.html.

Added support for Phusion Passenger https://github.com/phusion/passenger for Nginx support for Ruby, Rails and RubyGem and Python to centmin.sh and nginx_upgrade.inc.Preview Youtube video posted of the passenger.sh Addon install and example of how to install Node.js based NodeBB forum at https://blog.centminmod.com/304. In centmin.sh default is disabled NGINX_PASSENGER=’n’, to enable, you need to set toNGINX_PASSENGER=’y’ and before reinstalling Nginx, you need to run Addon script at /addons/passenger.sh to install Ruby, RubyGems, RubyRails and Nginx Passenger depedencies and then run menu option #4 to reinstall Nginx server.

Added support for Nginx GEOIP module by updating centmin.sh with NGINX_GEOIP=noption for Nginx GeoIP module support http://wiki.nginx.org/HttpGeoipModule.NGINX_GEOIP=y will only enable and work if GeoIP database and library have been installed. You can find in Centmin Mod Addons directory a shell script at /addons/geoip.sh which will install the GeoIP database and library. After installed, then set NGINX_GEOIP=y in centmin.sh and run menu option #4 to recompile Nginx with –with-http_geoip_module support.

Improvements to speed up install process – up to 40-60% faster install time than previous versions.

Added back the return of an optional cli install method which bypasses the menu option #1 install method. If you run ./centmin.sh install, you can bypass the shell based menu for fully unattended installation.

Added SELINUX check

Added new menu option #21 update - it upgrades Nginx, PHP-FPM and Siege benchmark versions based on versions defined in centmin.sh. Useful for Centmin Mod version updates as defined in FAQ #4 at http://centminmod.com/faq.html.

Removed the memcache admin stats page user/password prompt and initial MariaDB MySQL root user setting/security prompts in favour of auto generating the user/passwords which will be shown at end of initial install i.e. screenshot.

Added ZOPCACHEDFT=’n’ variable to centmin.sh. This variable if enabled ZOPCACHEDFT=’y’ can override the defaults and install Zend OpCache by default instead of APC Cache defaults.

Updated PHP default version out of the box from 5.3.28 to 5.4.30 and included additional PHP extensions (–with-snmp –with-gmp –with-pspell –with-tidy –with-enchant)

Moved all downloads links themselves out of the download functions at inc/downloads.inc to their own file at inc/downloadlinks.inc for easier management

Changed PHP’s default config scan directory variable path (CONFIGSCANDIR) from /root/centminmod/php.d to /etc/centmimod/php.d. centmin.sh will auto detect this and create the necessary directory and copy over any existing PHP extension .ini files from the old path. This is preparation for when chrooted user SSH/SFTP/SCP user account support comes https://blog.centminmod.com/194 to allow chrooted users PHP binary access to PHP extensions.

Updated PHP upgrade routine to auto reinstall previously installed PHP extensions such as APC Cache, Xcache, Memcache/Memcached, igbinary and ImagemagicK. No longer will users need to manually reinstall these PHP extensions after each PHP upgrade. The script will detect what .ini files are in /root/centminmod/php.d (.07 release will be /etc/centminmod/php.d) when PHP upgrade is ran. Then at end of PHP upgrade will auto reinstall each PHP extension that was detected before PHP upgrade completed.

Updated PHP configuration to autodetect if openldap-clients package is installed and if installed auto add –with-ldap –with-ldap-sasl configuration options to PHP configuration for PHP LDAP extension support http://www.php.net/manual/en/ldap.installation.php. If you don’t currently have PHP LDAP extension support, just run yum -y install openldap-clients and then run centmin.sh menu option #5 to recompile PHP.

Updated memcache admin php file and randomised the file name unique to each install – same as APC Cache admin page. So changed location from /usr/local/nginx/html/memcache.php to /usr/local/nginx/html/memcache_${N}.php where ${N} is randomised.

Updated centmin.sh with 4 options PHP_DISABLED=n,MYSQLSERVICE_DISABLED=n, NSD_DISABLED=n andMEMCACHED_DISABLED=n. By default they are set to NO, so that PHP-FPM, MariaDB MySQL, NSD and Memcached server are installed and enabled (running). Some users have no use for NSD for DNS hosted locally on server and/or have no use for Memcached server or want to have an Nginx only server without running PHP-FPM and MySQL services, so you can set PHP_DISABLED=y, MYSQLSERVICE_DISABLED=y,NSD_DISABLED=y and/or MEMCACHED_DISABLED=y in centmin.sh prior to initial Centmin Mod install, so that PHP-FPM, MariaDB MySQL, NSD and Memcached are disabled but installed. This allows for you to re-enable them if needed in future. To re-enable NSD via commands service nsd start and chkconfig nsd on and for Memcached via service memcached start and chkconfig memcached on.

Added support for Phusion Passenger https://github.com/phusion/passenger for Nginx support for Ruby, Rails and RubyGem and Python to centmin.sh and nginx_upgrade.inc. In centmin.sh default is disabled NGINX_PASSENGER=’n’, to enable, you need to set to NGINX_PASSENGER=’y’ and before reinstalling Nginx, you need to run Addon script at /addons/passenger.sh to install Ruby, RubyGems, RubyRails and Nginx Passenger depedencies and then run menu option #4 to reinstall Nginx server.

Added support for Nginx GEOIP module by updating centmin.sh with NGINX_GEOIP=n option for Nginx GeoIP module support http://wiki.nginx.org/HttpGeoipModule. NGINX_GEOIP=y will only enable and work if GeoIP database and library have been installed. You can find in Centmin Mod Addons directory a shell script at /addons/geoip.sh which will install the GeoIP database and library. After installed, then set NGINX_GEOIP=y in centmin.sh and run menu option #4 to recompile Nginx with –with-http_geoip_module support. If you do not install GeoIP database and library before recompiling Nginx with GeoIP module, you will get the following error when restarting Nginx server.