Instal pecl_http: raphf установлен, но ./configure его не видит

Я пытаюсь установить pecl_http как расширение для php.

phpise работает нормально, так как я получаю файл конфигурации. Когда я иду к типу ./configure, я получаю следующее сообщение об ошибке;

...
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for gnutls support in libcurl... no
checking for ares support in libcurl... no
checking for bundled SSL CA info... /etc/ssl/certs/ca-certificates.crt
checking for event2/event.h... found in /usr
checking for libevent version, roughly... 2.0.19-stable
checking for ext/raphf support... no
configure: error: Please install pecl/raphf and activate extension=raphf.so in your php.ini

Я добавил следующую строку в мой файл php.ini

extension=raphf.so

Я знаю, что raphf установлен и загружается, так как я проверил его следующим php:

echo extension_loaded(raphf) ? "raphf loaded" : "raphf not loaded";

Который возвращается, загружен.

Почему ./configure не видит raphf?

1

Решение

В случае, если кто-то все еще заинтересован в том, как решить эту проблему, я просто придумаю решение. Сценарий конфигурации pecl_http ищет включаемый модуль не для модуля apache php, а для интерфейса командной строки php. Если вы запустите php -m, вы увидите, что ни raphf, ни propro не включены. Чтобы CLI включил эти модули, вы должны добавить:

extension=raphf.so
extension=propro.so

Также в /etc/php5/cli/php.ini, поскольку это файл инициализации, который запускается php CLI при запуске. После этого вы решите проблему.

2

Другие решения

У меня была та же самая проблема, но решение, предоставленное Dechcaudron, не решило проблему. Также нет ответов отсюда: Ubuntu pecl установить pecl_http не удалось

я узнал что php-config --php-binary возвращается NONE вместо двоичного файла php. Поскольку скрипт configure использует эту команду для получения двоичного файла php, а затем вызывает $PHP_EXECUTABLE -m | $EGREP ^raphf$ это думает raphf еще не загружен Решением было манипулировать скриптом configure, чтобы он использовал правильный двоичный файл для php.

~# pecl download pecl_http
~# tar -xf pecl_http-2.5.3.tgz
~# cd pecl_http-2.5.3
~/pecl_http-2.5.3# phpize --clean
~/pecl_http-2.5.3# phpize
~/pecl_http-2.5.3# sed "s/^PHP_EXECUTABLE=.*$/PHP_EXECUTABLE=\"\/usr\/bin\/php\"/g" -i configure
~/pecl_http-2.5.3# ./configure
~/pecl_http-2.5.3# make
~/pecl_http-2.5.3# make install

Затем добавьте extension=http.so на ваш php.ini для apache2 и cli и все готово.
Подсказка: Обычно вы можете найти правильный путь для вашего бинарника php с which php,

0

Последние несколько месяцев я ломал голову над этой проблемой. Решением этой проблемы может быть просто удаление модуля. По какой-то причине pecl все еще думает, что модуль установлен, хотя на самом деле это не так.

Таким образом, моя работа заключалась в том, чтобы проверить, считает ли pecl, что он установлен, с помощью pecl list, Если это перечисляет это, тогда удалите модуль с pecl uninstall [modulename], Как только я удалил его, я наконец смог установить raphf.

0
По вопросам рекламы [email protected]