PHPUnit无法识别cURL扩展 - 无法安装selenium测试

时间:2011-12-13 20:36:48

标签: curl selenium phpunit wamp pear

我在运行WAMP服务器的Windows 7计算机上,我正在尝试为PEAR安装Selenium扩展。但是,每当我尝试安装它时,我都被告知它需要已经启用的PHP扩展“curl”:

pear install phpunit/PHPUnit_Selenium

Package "pear.phpunit.de/PHPUnit_Selenium" dependency "pear.phpunit.de/PHPUnit" has no releases
phpunit/PHPUnit_Selenium requires PHP extension "curl"
No valid packages found
install failed

所以我去检查我的php.ini文件,看它是否已启用。果然,它就是:

extension=php_apc.dll
;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
;extension=php_exif.dll

this website,有人告诉我试试这个:

  
      
  1. 如果您收到“未找到有效软件包安装失败”的错误,请运行以下命令pear upgrade-all
  2.   

但是当我运行该命令时,它只是告诉我Nothing to upgrade-all

在搜索到我的特定错误后,我找到了PHP bug that mentions

  

“curl”php扩展需要作为一个加载到php本身   扩展

     

运行此命令

     

php -me

     

如果“curl”未被列为[PHP模块]之一,则不会   工作

我并不完全确定如何在Windows上将此“加载到php本身作为扩展”。是否有捷径可寻?或者让PEAR相信我安装了这个?

修改

为了记录,PHP注意到我的curl扩展名 (来自php_info()):

cURL support    enabled
cURL Information    7.20.0

6 个答案:

答案 0 :(得分:12)

在大多数情况下,我会说这是来自php配置问题。

检查此问题的最简单方法是使用php -i并查看卷曲扩展名是否显示在输出中。如果它没有命令行php有问题。有可能使用了错误的php.ini文件。 php --ini可用于检查此


但可能有一种情况,由于某些原因,人们不想或不能启用卷曲扩展,所以我会将其作为答案:

如果没有需要 phpunit的selenium模块,有一种方法可以跳过此软件包的安装,因为它是一个可选的依赖项。

pear install --onlyreqdeps phpunit/phpunit 

不应安装Selenium。

以防万一总有一件事要尝试:

pear install --force --alldeps phpunit/phpunit

要告诉梨注意关于未被识别的卷曲延伸的关注,有:

pear install --force phpunit/PHPUnit_Selenium

如果有一些问题只是梨没有选择扩展但正常的脚本是可能的话。

答案 1 :(得分:6)

我在Ubuntu上遇到了这个问题,我通过运行以下命令解决了这个问题,

sudo apt-get install php5-curl

显然有两个不同的卷曲包(curl和php5-curl),php5-curl一个用于php。

希望这可以提供帮助

答案 2 :(得分:1)

在使用WAMP时,有两个php.ini文件

  1. 在Apache
  2. 在Php下
  3. 确保您在两个文件中都取消注释"extension=php_curl.dll"。编辑完两个文件并重新启动wamp服务器后,您就会很好。即使您的wamp服务器使用的是Apache版本,pear安装程序也可能会在PHP路径中查找curl设置。

答案 3 :(得分:1)

需要对两个不同位置的php.ini进行更改,例如:

  1. C:\瓦帕\ BIN \ PHP中\ php5.3.8
  2. C:\瓦帕\ BIN \阿帕奇\ Apache2.2.21 \ BIN
  3. 从第950行开始,您将看到

    ; Windows Extensions
    ; Note that ODBC support is built in, so no dll is needed for it.
    ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
    ; extension folders as well as the separate PECL DLL download (PHP 5).
    ; Be sure to appropriately set the extension_dir directive.
    ; 
    ;extension=php_bz2.dll
    ;extension=php_curl.dll
    ;extension=php_dba.dll
    ;extension=php_exif.dll
    ...
    

    将“; extension = php_curl.dll”更改为“extension = php_curl.dll”

    重新启动服务器,您应该准备好了。

答案 4 :(得分:0)

当您从wamp服务器甚至从php菜单更改php.ini时,它会更改apache版本,它根本不会影响php。我从文件系统更改了它们,它的工作原理。 : - )

答案 5 :(得分:0)

我按照上面的回答更改了这些文件并且工作正常。

C:\wamp\bin\php\php5.3.13
C:\wamp\bin\apache\apache2.2.22\bin