我一直在尝试多种方法解决这个问题,在阅读了很多文章之后仍然没有成功。 我使用 Mac,OSX 10.7 Lion,正在使用 MAMP 编写一个 WordPress 网站的插件(php 文件),在某个时候我需要进行 HTTP 请求:
$request = new HttpRequest('something');
$request->setMethod(HTTP_METH_GET);
执行此请求时出现错误,检查日志文件后,以下是消息:
"PHP Fatal error: Class 'HttpRequest' not found in (the_php_file)"
我已经安装了PEAR、PECL和HTTP扩展(pecl_http)、Xcode及其命令行工具。我所做的如下:
修改了路径:
$ echo "export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH" >> ~/.profile`
确认php、pear和pecl的路径是否正确:
- /Applications/MAMP/bin/php/php5.3.6/bin/php是php的路径
- /Applications/MAMP/bin/php/php5.3.6/bin/pear是pear的路径
- /Applications/MAMP/bin/php/php5.3.6/bin/pecl是pecl的路径
我从MAMP页面下载了php的源代码(并检查了我所下载的版本是否与我使用的版本相同,即php5.5.3)。然后我提取了内容并将其放到/Applications/MAMP/bin/php/php5.5.3/include/php中。
- 在/Applications/MAMP/bin/php/php5.5.3/include/php目录中运行
./configure
- 我执行了
pecl install pecl_http
我还将这些扩展添加到了php.ini文件中(最初,我修改了MAMP/bin/php/php5.5.3/conf/php.ini文件):
extension=raphf.so
extension=propro.so
extension="http.so"
关于最后一个带引号的扩展名:当我手动添加扩展时,我是这样做的:extension=http.so
。然后(在尝试修复问题时),我尝试了一种自动修改php.ini的替代安装方式,并用引号将扩展名括起来,但结果仍然相同,没有任何区别。
经过所有这些操作,我停止了MAMP服务器并重新启动它,但当我执行php时,我仍然得到错误提示(在php_error.log中可见):
PHP Fatal error: Class 'HttpRequest' not found
我主要遵循了这个指南,当然还有许多其他的: http://www.lullabot.com/blog/article/installing-php-pear-and-pecl-extensions-mamp-mac-os-x-107-lion
如果您有任何想法,我将非常感激,因为我已经没有更多想法了。