I recently went through the trials and tribulations of upgrading PHP on my VM running CentOS 7 so I thought I'd document how I did it.
The key to it is the Remi RPM Repository but I made the dumb mistake of adding the repos for the CentOS 6 version of the 5.6 upgrade so to fix that I removed all of the repos I just added:
rm -rf /etc/yum.repos.d/remi*
and then I just added what I needed manually:
cat > /etc/yum.repos.d/remi-php56.repo << EOF [remi-php56] name=remi-php56 baseurl=http://rpms.famillecollet.com/enterprise/7/php56/x86_64/ enabled=1 gpgcheck=0 EOF
Then you need to clear the cache:
yum clean expire-cache
and re-run the update
You might get some errors like so:
Error: Package: php-gd-5.6.22-1.el7.remi.x86_64 (remi-php56) Requires: libgd.so.3()(64bit) Error: Package: php-gd-5.6.22-1.el7.remi.x86_64 (remi-php56) Requires: gd-last(x86-64) >= 2.1.1 Error: Package: php-pecl-zip-1.13.2-1.el7.remi.5.6.x86_64 (remi-php56) Requires: libzip.so.4()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
To fix these:
wget http://rpms.famillecollet.com/enterprise/7/remi/x86_64/gd-last-2.2.1-2.el7.remi.x86_64.rpm yum localinstall gd-last-*.rpm wget http://rpms.famillecollet.com/enterprise/7/remi/x86_64/libzip-last-1.1.3-1.el7.remi.x86_64.rpm yum localinstall libzip-last-*.rpm yum update
That should have worked, so try running
You might have some warnings like I did:
PHP Warning: PHP Startup: newrelic: Unable to initialize module Module compiled with module API=20100525 PHP compiled with module API=20131226 These options need to match in Unknown on line 0 PHP Warning: PHP Startup: ssh2: Unable to initialize module Module compiled with module API=20100525 PHP compiled with module API=20131226 These options need to match in Unknown on line 0 PHP 5.6.22 (cli) (built: May 26 2016 15:36:45) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
New Relic is easy to fix:
and for ssh2, I just removed it:
rm -rf /etc/php.d/ssh2.ini
php -v to confirm that the warnings are gone.
Hope it helps.