Назад | Перейти на главную страницу

Неопределенная функция 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

Что мне не хватает?

Я наткнулся на ту же проблему. 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 или если вы скомпилировали из исходников, поэтому ваш опыт может отличаться.