MDLog:/sysadmin

The Journal Of A Linux Sysadmin

Upgrade PHP on CPanel/WHM

| Comments

The default PHP installation in CPanel might not be enough for all of us. We might need to add some php modules or just to upgrade to a new PHP version. On a CPanel server the best way to do this is from inside CPanel itself. If possible, we would not want to mess with the CPanel installation and do something manual that might break CPanel.

This is something very simple… In fact with a few clicks this is completed. Go to your regular WHMWebHost Manager – interface (not CPanel), that looks like https://server_IP_or_hostname:2087/_ On the “Software” tab click on the link “Apache Update”. You are presented with a page that allows you to change the various php modules that you can include/exclude from the installation. You will always be presented here with the default CPanel config. In case you have previously done this you can retrieve your old selection by clicking on “Load previous config”. Here are the default options_ enabled by default in the current CPanel versions:

Php Module
Version 4.4.2
Bc Math
Calendar Support
FTP
Magic Quotes
Mysql Module
Discard Path
Pear
Sockets
Track Vars
Zlib

Until recently ‘Versioning’ was also ON by default, but after the latest incompatibilities this has been disabled from default options. This is known to cause problems with eaccelerator so you might want to leave it off in case you are using eaccelerator. All the available PHP options (with the default ones in bold) are:

Version 4.3.11
Version 4.4.1
Version 4.4.2
Version 5.0.4
Version 5.0.5
Version 5.1.2
Version 5.1.4
Bc Math
Calendar Support
Curl (Version 7.15.3)
Curl SSL Support (Version 2.8.27)
Dom XSLT
Exif
Flash
Ftp
GD (Version 2.0.15)
GetText
Iconv (experimental)
Imap Module (Version 2004g)
Java (must already be installed, or install will fail)
Mb String
Mcrypt (Version 2.5.7)
Memory Limit (experimental)
Mhash (Version 0.8.18)
Ming Support (Not Recommended due to various problems) (Version 0.3beta1)
Magic Quotes
MM Session Module (Version 1.3.1)
Mysql Module
SNMP
Openssl Support
Discard Path
PDFlib (requires license for commerical use; see www.pdflib.com/pdffiles/PDFlib-Lite-license.pdf)
Pear
Postgresql (will break 7.2.x or earlier, please make sure you have 7.3.x or later installed)
Pspell Module
Sablot XSLT [may cause problems with chili!asp]
SafeMode
Sockets
Use System Mysql
Track Vars
Freetype Support
Versioning
WDDX
XML RPC
Zip
Zlib 
  • PHP version – choose the most recent available PHP4 or PHP5 version (based on your applications needs). If possible try to migrate to PHP5 as this would be a good idea. If you can’t… try to update your applications to work on PHP5, and only then upgrade. In this case you would want to use the latest PHP4 version.

  • _ PHP modules_ – I will always recommend including only the modules that are needed and leave all the others off. If you will need to add a new module, you can always return and recompile php again as this is very simple.

Once you are satisfied with your selection click on “Start Build” and take a break. Depending from the options you have chosen and the speed of the server this will take a few minutes. CPanel will re/compile all the needed libraries and php module itself based on your selection.

Hopefully in the end you will see the successful result “Build Complete” (check the screen for any errors from compile). If there is something wrong with your build you can always go back and remove the offending module or selection and recompile again. Check with phpinfo (or from the console with “php -m”) that you have completed this successfully and all the modules you intended to include are present in the new running PHP.

Note: There is also a console application that you can use to get the same result: /scripts/easyapache

Comments