Dynamic Extensions
在两个 php.ini (Apache 和常规的 php.ini 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
我错过了什么?
答案1
我自己也遇到了同样的问题。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
答案2
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
扩展部分。
不过,我对您的系统做了一些假设,例如,我不知道您是否从apt-get
/安装了 PHPaptitude
或者是否从源代码编译,因此您的里程可能会有所不同。