Curl PHPUnit不识别卷曲扩展--can';t安装硒测试
我在运行WAMPserver的Windows7机器上,正在尝试为PEAR安装Selenium扩展。但是,每当我尝试安装它时,都会被告知它需要已经启用的PHP扩展“curl”:Curl PHPUnit不识别卷曲扩展--can';t安装硒测试,curl,selenium,phpunit,wamp,pear,Curl,Selenium,Phpunit,Wamp,Pear,我在运行WAMPserver的Windows7机器上,正在尝试为PEAR安装Selenium扩展。但是,每当我尝试安装它时,都会被告知它需要已经启用的PHP扩展“curl”: pear安装phpunit/phpunit\u Selenium Package "pear.phpunit.de/PHPUnit_Selenium" dependency "pear.phpunit.de/PHPUnit" has no releases phpunit/PHPUnit_Selenium requires
pear安装phpunit/phpunit\u 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
在上个月,我被告知要试试这个:
没有任何东西可以升级所有的
在搜索我的特定错误后,我发现了一个
“curl”php扩展需要作为
分机
运行此命令
php-me
如果“curl”没有被列为[PHP模块]之一,它就不会被删除
工作
我不完全确定如何在Windows上“将其作为扩展加载到php本身”。有没有一个简单的方法可以做到这一点?还是让PEAR相信我安装了这个
编辑
作为记录,PHP注意到了我的curl扩展(来自PHP_info()):
在大多数情况下,我认为这是由于php配置问题造成的
检查这一点的最简单方法是使用php-i
,查看curl扩展是否显示在输出中。如果没有,那么命令行php就有问题。很可能它使用了错误的php.ini
文件php--ini
可用于检查此项
但可能会有一种情况,因为某种原因,人们不想或无法启用curl扩展,因此我将以此作为答案:
如果您不需要phpunit的selenium模块,则可以跳过此软件包的安装,因为它是可选的依赖项
pear install --onlyreqdeps phpunit/phpunit
不应安装Selenium
以防万一,总有一件事需要尝试:
pear install --force --alldeps phpunit/phpunit
要告诉pear注意卷曲延伸未被识别,请注意:
如果只是pear没有选择扩展,但是普通脚本有问题,那么这可能会起作用。在处理WAMP时,有两个php.ini文件
在Apache下
在Php下
确保两个文件中都有未注释的“extension=php\u curl.dll”
。在编辑这两个文件并重新启动wamp服务器后,您的表现良好。pear安装程序可能正在PHP路径中查找curl设置,即使您的wamp服务器使用的是Apache版本。需要在不同位置对两个PHP.ini进行更改,例如:
C:\wamp\bin\php\php5.3.8
C:\wamp\bin\apache\Apache2.2.21\bin
大约从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\u curl.dll”更改为“extension=php\u curl.dll”
重新启动服务器,您就可以开始了。当您从wamp服务器甚至从php菜单更改php.ini时,它会更改apache版本,并且根本不会影响php。我从文件系统中更改了它们,它可以正常工作。:-) 我在Ubuntu上遇到了这个问题,我通过运行以下命令解决了这个问题
sudo apt get安装php5 curl
显然,有两个不同的curl包(curl和php5curl),php5curl是用于php的
希望这能有所帮助我按照上面的答案修改了这些文件,并且工作正常
C:\wamp\bin\php\php5.3.13
C:\wamp\bin\apache\apache2.2.22\bin
你能做一个php--ini | grep curl
来排除php.ini webserver vs.cli问题吗?@edorian运行该命令时没有返回任何结果。当我运行php--ini
(或任何其他扩展)时,没有提到curl.@edorian--不用担心php--ini
告诉我加载的配置文件:C:\wamp\bin\php\php5.3.5\php.ini
这是我上面提到的php.ini文件,其中包含php\u curl.dll扩展名。@edorianphp-I
实际上没有显示curl扩展名。错误报告已打开。但是,curl扩展显示的是从我的web目录根目录调用的php\u info()
函数。这就是为什么我怀疑存在某种web与cli配置问题。也许这会让你有所收获:)不幸的是,我正试图专门安装selenium扩展,并且已经安装了PHPUnit本身。也许使用--force来安装它,看看它是否有效,然后对你有帮助吗?强制安装效果很好。谢谢你的帮助!:DMy问题似乎最终与Pear有关,而不是ini文件。是的,谢谢。edorian的回答让我走到了那里:
; 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
...
C:\wamp\bin\php\php5.3.13
C:\wamp\bin\apache\apache2.2.22\bin