Installing PHP 5.6 on RHEL 6/7 and CentOS 6/7

Red Hat Enterprise Linux and CentOS 6 still ship with PHP 5.3. Nextcloud requires PHP 5.6 or better. There are several third-party repositories that supply PHP 5.6, but you must use the Software Collections (SCL) repository to be in compliance with your RHEL support contract, and not any other third-party repository.

RHEL 6

Follow these steps to install PHP 5.6 from SCL. First you must use your Subscription Manager to enable SCL in RHEL 6:

subscription-manager repos --enable rhel-server-rhscl-6-eus-rpms

For RHEL 7:

subscription-manager repos --enable rhel-server-rhscl-7-eus-rpms

Then install PHP 5.6 and these modules:

yum install rh-php56 rh-php56-php rh-php56-php-gd rh-php56-php-mbstring

You must also install the updated database module for your database. This installs the new PHP 5.6 module for MySQL/MariaDB:

yum install rh-php56-php-mysqlnd

If you are using the Nextcloud LDAP app, you need this module:

yum install rh-php56-php-ldap

Disable loading the old PHP 5.3 Apache module:

mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php53.off

Copy the PHP 5.6 Apache modules into place:

cp /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php56-php.conf /etc/httpd/conf.d/
cp /opt/rh/httpd24/root/etc/httpd/conf.modules.d/10-rh-php56-php.conf /etc/httpd/conf.modules.d/
cp /opt/rh/httpd24/root/etc/httpd/modules/librh-php56-php5.so /etc/httpd/modules/

Then restart Apache:

service httpd restart

Verify with PHP version and information that your Apache server is using PHP 5.6 and loading the correct modules.

CentOS 6/7

First install the SCL repo:

yum install centos-release-scl

Then install PHP 5.6 and these modules:

yum install rh-php56 rh-php56-php rh-php56-php-gd rh-php56-php-mbstring

You must also install the updated database module for your database. This installs the new PHP 5.6 module for MySQL/MariaDB:

yum install rh-php56-php-mysqlnd

If you are using the Nextcloud LDAP app, you need this module:

yum install rh-php56-php-ldap

Disable loading the old PHP 5.3 Apache module:

mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php53.off

Copy the PHP 5.6 Apache modules into place:

cp /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php56-php.conf /etc/httpd/conf.d/
cp /opt/rh/httpd24/root/etc/httpd/conf.modules.d/10-rh-php56-php.conf /etc/httpd/conf.modules.d/
cp /opt/rh/httpd24/root/etc/httpd/modules/librh-php56-php5.so /etc/httpd/modules/

Finally, restart Apache:

service httpd restart

Verify with PHP version and information that your Apache server is using PHP 5.6 and loading the correct modules.

All documentation licensed under the Creative Commons Attribution 3.0 Unported license.

See who contributed to our documentation/credits.

Do you want to help us to improve this document? Edit this page on GitHub