Set default version of Php in CentOS 7

I have two versions of PHP in opt/remi folder php56 and php72

how to set default version to PHP 7.2

SCL are designed for parallel installation so don't alter default version in base system

Once the collection is enabled, the version will be used

$ scl enable php72 bash
$ php -v
PHP 7.2.8 (cli) (built: Jul 17 2018 05:35:43) ( NTS )

If you want 7.2 to be the default version (base system) you should install it, according to Wizard instructions for "Default / single version" (and keep 5.6 as secondary version)


Change php cli version in Centos 7

First, find your php7, run phpinfo() and get path or you can do with other ways. for me, it is:

/usr/local/lsws/lsphp73/

then:

cd ~
. ~/.bash_profile

And:

alias php='/usr/local/lsws/lsphp73/bin/php'

Now:

php -v

PHP 7.3.13 (cli) (built: Dec 20 2019 16:02:35) ( NTS )


Create a file "/etc/profile.d/php.sh". Use pathmunge to add the path to your php bin you want as default on line one and save the file.

Example:

pathmunge /opt/remi/php73/root/bin

Reload your profile afterwards by logging in again.

Now if you do a which php and php -v you should see the following output in my case

[root@host etc]# which php
/opt/remi/php73/root/bin/php
[root@host etc]# php -v
PHP 7.3.4 (cli) (built: Apr  2 2019 13:48:50) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
   with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com  (unconfigured) v10.3.4, Copyright (c) 2002-2019, by ionCube Ltd.

This is the preferred way to accomplish this task using tools that are already supplied on a minimal install. This also allows scripts and commands to hit the correct php binaries when accomplishing other tasks. Commands like, pear, pecl, phar, php-config. You want your experience to be global when setting the default, otherwise you might wind up still getting version 5.6's tools when trying to install an extension or complete another task.