Когда я компилирую phpmod с php 5 (или 5.6), все работает нормально. Но когда я устанавливаю php7.2, php ESL больше не работает.
Оказалось, что в ESL.php используется dl () для динамической загрузки расширения во время выполнения. Однако, опция dl () была удалена в более поздних версиях php.
Вот вывод
# ./single_command.php status
PHP Warning: dl(): Dynamically loaded extensions aren't enabled in
/usr/src/freeswitch/libs/esl/php/ESL.php on line 24
Command to run is: status
PHP Fatal error: Uncaught Error: Call to undefined function
new_ESLconnection() in /usr/src/freeswitch/libs/esl/php/ESL.php:157
Stack trace:
#0 /usr/src/freeswitch/libs/esl/php/single_command.php(9):
ESLconnection->__construct('127.0.0.1', '8021', 'ClueCon')
#1 {main}
thrown in /usr/src/freeswitch/libs/esl/php/ESL.php on line 157
Я пытался загрузить расширение ESL.so в php.ini, но это тоже не работает.
Вот вывод:
# php -dextension=/usr/lib/php/20160303/ESL.so
PHP Warning: PHP Startup: ESL: Unable to initialize module
Module compiled with module API=20131226
PHP compiled with module API=20170718
These options need to match
in Unknown on line 0
Любая идея, чтобы заставить ESL PHP работать с php7.2?
Мне нужно использовать php> 7.1.3 (требование веб-фреймворка)
PS: Я открыл билет на JIRA, но ничего еще не получил.
Вам нужно скомпилировать ESL.so после установив установку разработки PHP 7.2, чтобы избежать ошибки несоответствия компиляции API, и загрузите расширение ESL.so в свой php.ini
файл под [PHP]
раздел с использованием extension=
заявление.
Вот что я имею в качестве примера:
[PHP]
...
extension=/usr/local/src/freeswitch-git/libs/esl/php/ESL.so
...
/usr/local/src/freeswitch-git/
является исходным каталогом FreeSWITCH, и ESL.so
был составлен с make phpmod
в /usr/local/src/freeswitch-git/libs/esl
,
Несколько полезных команд по пути:
# list the compiled extensions/modules (ESL would be listed here on success)
php -m
# detailed PHP configuration
php -i
# get the API option in the compiled ESL module (adapt to your case)
strings /usr/local/src/freeswitch-git/libs/esl/php/ESL.so | grep API
Надеюсь это поможет!
Других решений пока нет …