When installing php 7.2 on CentOS using RedHat Software Collections; your getting an error from php like:
PHP Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /opt/rh/rh-php72/root/usr/lib64/php/modules/sodium.so.so (/opt/rh/rh-php72/root/usr/lib64/php/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
This is a library conflict. Yum installed the wrong thing.
Lets have a look at this package:
(rh-mysql56,httpd24,rh-php72) [root@svr]# yum deplist sclo-php72-php-sodium.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.jaleco.com
* epel: mirror.compevo.com
* extras: centos-distro.1gservers.com
* updates: repos.dfw.quadranet.com
package: sclo-php72-php-sodium.x86_64 7.2.12-1.el7
dependency: libc.so.6(GLIBC_2.4)(64bit)
provider: glibc.x86_64 2.17-260.el7_6.5
dependency: libsodium.so.23()(64bit)
provider: sclo-cassandra3-libsodium.x86_64 1.0.15-2.el7
provider: libsodium.x86_64 1.0.17-1.el7
dependency: rh-php72-php(api) = 20170718-64
provider: rh-php72-php-common.x86_64 7.2.10-3.el7
dependency: rh-php72-php(zend-abi) = 20170718-64
provider: rh-php72-php-common.x86_64 7.2.10-3.el7
dependency: rh-php72-runtime
provider: rh-php72-runtime.x86_64 1-2.el7
dependency: rtld(GNU_HASH)
provider: glibc.x86_64 2.17-260.el7_6.5
provider: glibc.i686 2.17-260.el7_6.5
Notice the libsodium library has two providers. This means that yum thinks either of these can satisfy the requirements; and in this case; it didn’t choose a compatible library. We’ll need to remove the sclo-cassandra3-libsodium library and manually install the one we want.
[root@svr]# yum remove sclo-cassandra3-libsodium.x86_64
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package sclo-cassandra3-libsodium.x86_64 0:1.0.15-2.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================
Removing:
sclo-cassandra3-libsodium x86_64 1.0.15-2.el7 @centos-sclo-sclo 348 k
Transaction Summary
========================================================================================================================================================
Remove 1 Package
Installed size: 348 k
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : sclo-cassandra3-libsodium-1.0.15-2.el7.x86_64 1/1
Verifying : sclo-cassandra3-libsodium-1.0.15-2.el7.x86_64 1/1
Removed:
sclo-cassandra3-libsodium.x86_64 0:1.0.15-2.el7
Complete!
Now install the correct library
[root@svr]# yum install libsodium.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.jaleco.com
* epel: mirror.compevo.com
* extras: centos-distro.1gservers.com
* updates: repos.dfw.quadranet.com
Resolving Dependencies
--> Running transaction check
---> Package libsodium.x86_64 0:1.0.17-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================
Installing:
libsodium x86_64 1.0.17-1.el7 epel 144 k
Transaction Summary
========================================================================================================================================================
Install 1 Package
Total download size: 144 k
Installed size: 344 k
Is this ok [y/d/N]: y
Downloading packages:
libsodium-1.0.17-1.el7.x86_64.rpm | 144 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libsodium-1.0.17-1.el7.x86_64 1/1
Verifying : libsodium-1.0.17-1.el7.x86_64 1/1
Installed:
libsodium.x86_64 0:1.0.17-1.el7
Complete!
Now lets test our install
[root@svr]# php -i | grep sodium
/etc/opt/rh/rh-php72/php.d/20-sodium.ini,
sodium
sodium support => enabled
libsodium headers version => 1.0.17
libsodium library version => 1.0.17
Success!