PHP7.2 libsodium не загружает макросы - PullRequest
0 голосов
/ 08 октября 2018

Здравствуйте, я пытаюсь развернуть веб-сервер интрасети у себя дома, поэтому я установил centOS на машину вместе с apache, php7.2 и mysql.Тем не менее, мое php-приложение зависит от libsodium для шифрования данных, поэтому я запустил sudo yum install php-pecl-libsodium, а затем sudo pecl install libsodium для установки libsodium, после чего я добавил extension=libsodium.so в конец файла php.ini, и он, кажется, работалphpinfo() выглядит следующим образом:

print of phpinfo() that shows libsodium info

Однако при попытке загрузить приложение возникает эта ошибка:

Warning: Use of undefined constant SODIUM_CRYPTO_SECRETBOX_KEYBYTES - assumed 'SODIUM_CRYPTO_SECRETBOX_KEYBYTES' (this will throw an Error in a future version of PHP) in /var/www/html/stm_asc/controller/database/MySQL_DataMapper.php on line 38

Fatal error: Uncaught TypeError: random_bytes() expects parameter 1 to be integer, string given in /var/www/html/stm_asc/controller/database/MySQL_DataMapper.php:38 Stack trace: #0 /var/www/html/stm_asc/controller/database/MySQL_DataMapper.php(38): random_bytes('SODIUM_CRYPTO_S...') #1 /var/www/html/stm_asc/controller/database/MySQL_DataMapper.php(56): asc\MySQL_DataMapper->__construct() #2 /var/www/html/stm_asc/views/login.php(11): asc\MySQL_DataMapper::getInstance() #3 {main} thrown in /var/www/html/stm_asc/controller/database/MySQL_DataMapper.php on line 38

Вот MySQL_DataMapper.php в строке 38:

enter image description here

Так что, похоже, макрос SODIUM_CRYPTO_SECRETBOX_KEYBYTES не загружается, я знаю, что этот код работает, потому что онработает на машине, на которой я разработал систему, и это задокументировано как здесь .Так что это какая-то проблема конфигурации для этой новой системы, может быть, мне не хватает другой библиотеки, которую я не помню?Спасибо.

...