Страница 1 из 1

Не устанавливается модуль Data Structures - Unable to load dynamic library 'ds'

Добавлено: 06 янв 2022, 23:06
WinniePooh
Не получается установить модуль Data Structures - очень важный костыль, добавляющий возможность использовать такое базовое понятие в программирование, как коллекции, которые по каким-то причинам до сих пор не вошли в ядро PHP.
Установлен Open Server 5.4.1, его основные параметры:
$ php -i|find "PHP Version"
PHP Version => 8.1.1
PHP Version => 8.1.1
$ php -i|find "Thread Safety"
Thread Safety => enabled
$ php -i|find "Architecture"
Architecture => x64
Установлен PEAR.

Скачиваю готовую библиотеку ds 1.4.0 для Windows - 8.0 Thread Safe (TS) x64 из PECL. Файлик из архива php_ds.dll в кидаю в папку C:\OpenServer\modules\php\PHP_8.1\ext.

В конфигурационный файл C:\OpenServer\userdata\config\PHP_8.1_php.ini добавляю строчку в соотвествующем разделе:
extension = ds
Перезагружаю Open Server.

И что мы получаем в итоге? Окошко с багом:
httpd.exe - Точка входа не найдена
Точка входа в процедуру zval_get_long_func@@8 не найдена в библиотеке DLL
c:\openserver\modules\php\PHP_8.1\ext\php_ds.dll
Ввожу команду в консоли и получаю ошибку с крякозябрами:
$ php -m

Warning: PHP Startup: Unable to load dynamic library 'ds' (tried: c:/openserver/modules/php/PHP_8.1/ext\ds (╨Э╨╡ ╨╜╨░╨╣╨┤╨╡╨╜ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨╝╨╛╨┤╤Г╨╗╤М), c:/openserver/modules/php/PHP_8.1/ext\php_ds.dll (╨Э╨╡ ╨╜╨░╨╣╨┤╨╡╨╜╨░ ╤Г╨║╨░╨╖╨░╨╜╨╜╨░╤П ╨┐╤А╨╛╤Ж╨╡╨┤╤Г╤А╨░)) in Unknown on line 0
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
odbc
openssl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
Phar
readline
Reflection
session
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

Re: Не устанавливается модуль Data Structures - Unable to load dynamic library 'ds'

Добавлено: 07 янв 2022, 02:23
SagePointer
Ещё один пытается пихать библиотеки, скомпилированные для PHP 8.0, в PHP 8.1.
Кто вообще сказал, что они совместимы?

Re: Не устанавливается модуль Data Structures - Unable to load dynamic library 'ds'

Добавлено: 07 янв 2022, 03:22
WinniePooh
SagePointer писал(а): 07 янв 2022, 02:23 Ещё один пытается пихать библиотеки, скомпилированные для PHP 8.0, в PHP 8.1.
Кто вообще сказал, что они совместимы?
 - Support for PHP 8.1 

Re: Не устанавливается модуль Data Structures - Unable to load dynamic library 'ds'

Добавлено: 07 янв 2022, 04:23
Максим
Они несовместимы. Каждое расширение должно быть скомпилировано под нужную версию php. То, что там пишут про Support for PHP 8.1 - это означает что расширение можно скомпилировать под эту версию php, а не то, что скачиваемый вами файл будет там работать.

Re: Не устанавливается модуль Data Structures - Unable to load dynamic library 'ds'

Добавлено: 07 янв 2022, 04:33
WinniePooh
А есть инструкцию как скомпилировать под эту версию PHP?

Re: Не устанавливается модуль Data Structures - Unable to load dynamic library 'ds'

Добавлено: 08 янв 2022, 05:03
WinniePooh
Нашёл DLL-ки под пых 8.1 - https://windows.php.net/downloads/pecl/snaps/