Неопределенная функция php http_post_data на сервере Ubuntu
Добавлено следующее под Dynamic Extensions
в обоих файлах php.ini (Apache, и обычный, найденный с: sudo updatedb && locate php.ini
)
extension=raphf.so
extension=propro.so
extension=http.so
Запустил следующие установки, которые все работали:
sudo apt-get install libpcre3-dev php5-dev php-pear
sudo pecl channel-update pecl.php.net
sudo pecl install pecl_http
Тем не менее, тестирование все равно не удается
php -r 'http_post_data();'
PHP Fatal error: Call to undefined function http_post_data() in Command line code on line 1
PHP Stack trace:
PHP 1. {main}() Command line code:0
Что мне не хватает?
2 ответа
Сам столкнулся с той же проблемой. http_post_data() предоставляется версией v1 этого расширения PECL, а не версией v2, которая устанавливается по умолчанию.
Переустановить через pecl install -f pecl_http-1.7.6
После этого:
php -r 'http_post_data();'
PHP Warning: http_post_data() expects at least 2 parameters, 0 given in Command line code on line 1
Ubuntu PHP обычно поставляется с некоторыми функциями помощи php5enmod
а также php5dismod
, Эти карты для включения модулей по имени, найденному в /etc/php5/mods-available
и ссылки на них в зависимости от /etc/php5/[SAPI]/conf.d
где sapi обычно "cli", "fpm" или "apache2".
Я бы проверил, чтобы убедиться, что ini-файлы, на которые вы ссылались, предположительно находятся в /etc/php5/mods-available
были связаны с /etc/php5/cli/conf.d
и / или /etc/php5/apache2/conf.d
, Ты можешь использовать sudo php5enmod -s ALL mod_name_here
создать эти символические ссылки для вас для всех SAPI (cli, apache и т. д.). "mod_name_here" - это обычно имя файла INI, созданного за вычетом .ini
Удлинительная часть.
Я делаю некоторые предположения о вашей системе, хотя, например, я не знаю, если вы установили PHP из apt-get
/aptitude
или если вы скомпилировали из источника, ваш пробег может отличаться.