작곡가 설치 오류-실제로 활성화 된 경우 ext_curl 필요


188

Composer와 함께 Facebook PHP SDK를 설치하려고합니다. 이것이 내가 얻는 것입니다

$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

    Problem 1
        - Installation request for facebook/php-sdk dev-master -> satisfiable by facebook/php-sdk[dev-master].
        - facebook/php-sdk dev-master requires ext-curl * -> the requested PHP extension curl is missing from your system.

문제는 컬 확장이 활성화되어 있다는 것입니다 (php.ini에서 주석 처리되지 않음). 내가 실행하면 phpinfo()활성화되었다고 표시됩니다. 내가 가진 단서는 내가 실행할 때 $ php -m'컬'라인이 누락되었지만 그것에 대해 무엇을 해야할지 모르겠다는 것입니다.

Win8에 wamp 2.4가 있고 cmd.exe에서 composer를 실행 중입니다.


5
"php -i | grep php.ini"를 실행하여 PHP에 대한 올바른 ini 파일을 편집하고 있습니까?
Danack

3
Composer는 현재 실행중인 PHP에 서버 버전이 아닌 PHP의 명령 줄 버전 인 확장 기능을 요청합니다. PHP에 curl 확장이 없으면 작동하지 않습니다. 원격 패키지를 가져 오는 데 확장이 필요하지 않으며 패키지를 가져 오는 데 사용되는 서버가 작업을 실행하는 데 사용되는 서버가 아니어야하므로 현재 Composer 구현의 단점 일 수 있습니다.
Sven

답변:


390

시스템에 php5-curl 라이브러리가 설치되어 있지 않기 때문에 발생합니다.

우분투에서는 간단하게 아래 라인 코드를 실행하십시오 .Xamp의 경우 Xamp 설명서를 살펴보십시오.

sudo apt-get install php5-curl

php7.0을 사용하는 사람

sudo apt-get install php7.0-curl

php7.1를 사용하는 사람들을 위해

sudo apt-get install php7.1-curl

php7.2를 사용하는 사람들을 위해

sudo apt-get install php7.2-curl

php7.3을 사용하는 사람들을 위해

sudo apt-get install php7.3-curl

또는 아래 명령을 실행하여 버전별로 설치하십시오.

sudo apt-get install php-curl

10
질문의 저자는 Windows를 실행하는 것 같습니다. Windows는 데비안 기반이 아닙니다.
huertanix

3
@huertanix는 사용자의 시스템이 실행 중임에도 불구하고 컬 오류가 시스템에 설치되어 있지 않아 작곡가 오류를 일으킬 수 있기 때문에 문제가 발생합니다.
Adriano Rosa

3
PHP 5.6의 우분투 16에서는 sudo apt-get install php5.6-curl
barak

4
이 "sudo apt-get install php-curl"로 해결
vnchopra

2
php-curl은 솔루션을 php 버전과 독립적으로 만드는 메타 패키지입니다. "sudo apt-get install php-curl"은 보편적 인 답변입니다.
Max

113

이것은 나를 위해 일했다 : http://ubuntuforums.org/showthread.php?t=1519176

명령을 사용하여 작곡가를 설치 한 후 curl -sS https://getcomposer.org/installer | php바로 실행 sudo apt-get update한 후 다시 설치 곱슬 sudo apt-get install php5-curl. 그런 다음 composer의 설치 프로세스가 작동 php composer.phar install해야 composer.json 파일에 나열된 종속성을 얻을 수 있습니다.


설치 방법으로 인해 Composer를 항상 피했습니다.
MrYellow

@MrYellow 어떤 패키지 / 종속성 관리자를 사용하십니까? Composer의 설치 방법에 어떤 문제가 있습니까?
Wirone

26

Danack이 의견에서 말했듯이 2 개의 php.ini 파일이 있습니다. 웹 서버에서 사용하는 php.ini 인 Apache 폴더의 curl 확장 줄을 주석 처리하지 않았습니다.

반면, Composer는 완전히 다른 이야기 인 콘솔에 PHP를 사용합니다. 해당 프로그램의 Php.ini 파일은 Apache 폴더의 파일이 아니지만 PHP 폴더에 있으며 행의 주석을 제거해야했습니다. 그런 다음 설치를 다시 실행했는데 문제가 없었습니다.


26

php7에서 다음을 실행하십시오.

> sudo apt-get install php-curl
> sudo apt-get install php-mbstring

모든 누락 된 확장에 대해 그때:

> sudo apt-get update

그리고 마지막으로 (프로젝트의 루트 폴더에) :

> composer install

11

Dropbox SDK를 설치하려고 할 때 같은 문제가 발생했습니다.

CURL은 실제로 내 시스템에서 활성화되었지만 wamp \ bin \ apache 폴더의 php.ini가 의미합니다.

wamp \ bin \ php에있는 php.ini를 수동으로 편집하고 extension=php_curl.dll줄을 주석 해제하고 Wamp를 다시 시작하면 완벽하게 작동했습니다.

왜 그 2 개의 php.ini가 있고 오직 하나만 사용됩니까?

누군가에게 도움이되기를 바랍니다!


하나의 php.ini는 WAMP 내에서 Apache에 의해 사용되고 다른 하나는 다음과 같이 내장 PHP 웹 서버를 시작할 때 사용됩니다 : $ php -S localhost:8000콘솔
Yahya Uddin

고마워요, 완벽하게 작동합니다! php_curl이 왜 검사되고 ;php.ini 파일에 a가 있는지 이해하지 못합니다 .
w3spi

10

PHP5.6으로 업그레이드 한 후이 문제가 발생했습니다. 내 대답은 내가 달리기를 제외하고 Adriano와 매우 유사합니다.

sudo apt-get install php5.6-curl

"5.6"에 주목하십시오. php5-curl을 설치해도 효과가 없었습니다.


5

https://github.com/composer/composer/issues/2119 에 따르면 composer.json확장 기능을 제공한다는 사실로 로컬 을 확장 할 수 있습니다 (실제로는 그렇지 않습니다-공개적으로 패키지를 게시해서는 안됩니다) 내부적으로 사용하십시오.


이상하게 작동합니까? 작곡가가 확장 프로그램 자체를로드한다는 의미입니까?
Pacerier

Composer는 먼저 표시해야 할 항목 목록을 작성한 다음이 요구 사항 목록을 만족하는 항목을 검색합니다. 설치된 PHP 확장은 단순히 요구 사항을 충족시키는 데 사용할 수있는 목록의 항목입니다. provide필수 및 기존 항목을 비교하는 단계에서 확장은 단순히 라이브러리 패키지 이름과 같은 문자열이기 때문에 PHP 확장과 동일한 이름 을 가진 패키지도 요구 사항을 충족시킵니다.
Sven

3

PHP 7에서 아래 명령을 사용하십시오.

sudo apt-get install php7.0-curl

2

composer가 일부 종속성을 설치하려고 할 때 비슷한 문제가 발생했습니다. 내 Wamp 버전과 함께 제공된 .dll은 64 비트 Windows와 충돌한다고 생각합니다.

이 URL은 curl dll을 수정했습니다 : http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

고정 컬 확장 기능 섹션으로 스크롤하십시오.

"php_curl-5.4.3-VC9-x64.zip"을 다운로드했습니다. 방금 zip 파일에 있던 dll로 wamp / bin / php / php5.4.3 / ext 디렉토리의 dll을 덮어 쓰고 composer가 다시 작동했습니다.

64 비트 Windows 8을 실행하고 있습니다.

도움이 되었기를 바랍니다.


2

Windows 에서이 문제가 발생하는 사람은 Google에서 전혀 답을 찾지 못했습니다. 방금 작곡가 ext-curl필요합니다 . 또는 composer.json 파일에 다음을 추가하십시오.

"require": {
"ext-curl": "^7.3"
}

1

wamp를 사용하는 경우 :

wamp\bin\php\php.5.x.x\php.ini 찾기 : ;extension=php_curl.dll 제거 (;)


1

Curl이 통합 된 PHP 7.2의 Archlinux가 있으므로 Composer가 ext-curl을 볼 수있는 구성 부두가 많지 않으므로 PHP가 행복하게보고 작업 할 수 있습니다. 해결 방법은 --ignore-platform-reqs와 함께 Composer를 사용하는 것입니다.

예 : 작곡가 업데이트 --ignore-platform-reqs

참조 = https://github.com/composer/composer/issues/1426


1

아래 스 니펫을 사용하여 php5-curl을 설치하십시오.

sudo apt-get install php5-curl

작동하지 않으면 코드 아래에서 시도해보십시오.

sudo apt-get install php-curl

나를 위해 그것은 효과가 있었다 ... 모두 최고 :)


sudo apt-get install php-curl, 우분투에서 나를 위해 일했습니다
최대

0

필자의 경우 PHP5에서 PHP7로 옮겼고이 오류가 발생했습니다. 간단히 /bin/php/php7/php.ini로 이동 한 다음 extension = php_curl.dll의 주석 처리를 제거하고 서버를 다시 시작하고 작곡가 설치를 다시 실행하십시오.


0

왜 리눅스 명령으로 대답을해서 Windows 관련 질문에 대한 투표권을 얻었는지 잘 모르겠지만 어쨌든 ...

경우 phpinfo()쇼 컬 활성화로, 아직 php -m당신이 아마이 있다는 것을 의미하지 않습니다 php-cli.ini너무. 실행 php -i및로드 INI 어떤 파일을 참조하십시오. 다른 경우, 차이점과 CLI ini 파일의 차이점 및 차이점. 그렇다면 잘 가야합니다.

Btw 다운로드하여 cmd.exe 대신 Git Bash를 사용하십시오!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.