Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save cdbessig/db7382a5d41fc5ef3719a7cae6a19bca to your computer and use it in GitHub Desktop.
Save cdbessig/db7382a5d41fc5ef3719a7cae6a19bca to your computer and use it in GitHub Desktop.
Install php-sodium on EL 8

There is currently no pre-built package available for the php sodium ext currently. And due to the changes made to the EL 8 packaging system, IUS no longer plans to maintain any packages for EL 8 (alternate versions of packages such as PHP should eventually become available via additional module streams published in the AppStream repo) so it's not available via IUS either beyond EL 7.

Magento will fallback on sha256 for password hashes when sodium is unavailable:

public function getLatestHashVersion(): int
{
    if (extension_loaded('sodium') && defined('SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13')) {
        return self::HASH_VERSION_ARGON2ID13;
    }
    return self::HASH_VERSION_SHA256;
}

This causes exceptions on admin login if you load a database with Argon2ID13 hashes into a system missing the sodium extension. I'd venture to guess this may cause issues with encrypted config values, although I haven't dug that far into it yet.

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
&& yum install -y php-cli libsodium \
&& yum install -y php-pear php-devel libsodium-devel make \
&& pecl channel-update pecl.php.net \
&& pecl install libsodium \
&& yum remove -y php-pear php-devel libsodium-devel make \
&& echo 'extension=sodium.so' > /etc/php.d/20-sodium.ini \
&& php -i | grep sodium
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment