Lỗi cài đặt trình soạn thảo - yêu cầu ext_curl khi nó thực sự được bật


186

Tôi đang cố gắng cài đặt Facebook PHP SDK với Trình soạn thảo. Đây là những gì tôi nhận được

$ 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.

Vấn đề là, tôi đã bật tiện ích mở rộng curl (không bị lỗi trong php.ini). Khi tôi chạy phpinfo(), nó báo là nó được kích hoạt. Chỉ có manh mối tôi có là khi tôi chạy$ php -m , dòng 'curl' bị thiếu nhưng tôi không biết phải làm gì về nó.

Tôi có wamp 2.4 trên Win8 và tôi đang chạy trình soạn thảo trong cmd.exe.


5
Chạy "php -i | grep php.ini" để đảm bảo bạn đang chỉnh sửa tệp ini chính xác cho PHP?
Danack

3
Trình soạn thảo sẽ hỏi PHP hiện đang chạy cho các phần mở rộng, đó là phiên bản dòng lệnh của PHP, không phải phiên bản máy chủ. Nếu THAT PHP không có phần mở rộng curl, nó sẽ không hoạt động. Đó có lẽ là một thiếu sót của việc triển khai Trình soạn thảo hiện tại, bởi vì việc lấy các gói từ xa không yêu cầu các tiện ích mở rộng và máy chủ được sử dụng để lấy các gói không phải là máy chủ được sử dụng để thực thi mọi thứ.
Sven

Câu trả lời:


385

Điều này được gây ra bởi vì bạn không cài đặt thư viện php5-curl trong hệ thống của mình,

Trên Ubuntu, nó chỉ đơn giản là chạy mã dòng bên dưới, trong trường hợp của bạn trên Xamp, hãy xem tài liệu Xamp

sudo apt-get install php5-curl

Đối với bất cứ ai sử dụng php7.0

sudo apt-get install php7.0-curl

Đối với những người sử dụng php7.1

sudo apt-get install php7.1-curl

Đối với những người sử dụng php7.2

sudo apt-get install php7.2-curl

Đối với những người sử dụng php7.3

sudo apt-get install php7.3-curl

Hoặc đơn giản là chạy lệnh bên dưới để cài đặt theo phiên bản của bạn:

sudo apt-get install php-curl

10
Tác giả của câu hỏi dường như đang chạy Windows. Windows không dựa trên Debian.
huertanix

3
@huertanix mặc dù hệ thống của người dùng đang chạy, lỗi câu hỏi là do thư viện curl không được cài đặt trên hệ thống có thể gây ra lỗi soạn thảo, những gì tôi chỉ ra chỉ là một ví dụ để làm rõ người dùng cách khắc phục điều đó.
Adriano Rosa

3
tại Ubuntu 16 với php 5.6, bạn nên sử dụng sudo apt-get install php5.6-curl
barak

4
Được giải quyết với "sudo apt-get install php-curl" này
vnchopra

2
php-curl là gói meta giúp giải pháp độc lập với phiên bản php. Vì vậy, "sudo apt-get install php-curl" là câu trả lời phổ quát
Tối đa

113

Điều này làm việc cho tôi: http://ubuntuforums.org/showthread.php?t=1519176

Sau khi cài đặt trình soạn thảo bằng lệnh, curl -sS https://getcomposer.org/installer | phpchỉ cần chạy a sudo apt-get updaterồi cài đặt lại curl với sudo apt-get install php5-curl. Sau đó, quá trình cài đặt của nhà soạn nhạc sẽ hoạt động để cuối cùng bạn có thể chạy php composer.phar installđể có được các phụ thuộc được liệt kê trong tệp composer.json của bạn.


Tôi đã luôn tránh Trình soạn thảo do phương thức cài đặt, điều này khẳng định sự miễn cưỡng của tôi.
MrYellow

@MrYellow vậy bạn sử dụng gói / quản lý phụ thuộc nào? Có gì sai với phương pháp cài đặt của Composer?
Wirone

26

Như Danack đã nói trong các bình luận, có 2 tệp php.ini. Tôi đã bỏ ghi chú dòng có phần mở rộng curl trong thư mục Apache, đó là php.ini được sử dụng bởi máy chủ web.

Mặt khác, nhà soạn nhạc sử dụng php cho console, đây là một câu chuyện hoàn toàn khác. Tệp Php.ini cho chương trình đó không phải là tệp trong thư mục Apache mà là trong thư mục PHP và tôi cũng phải bỏ dòng trong đó. Sau đó tôi chạy cài đặt lại và nó vẫn ổn.


26

trên php7 chạy chẳng hạn:

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

cho mỗi phần mở rộng còn thiếu Sau đó:

> sudo apt-get update

và cuối cùng (trong thư mục gốc của dự án):

> composer install

11

Tôi gặp vấn đề tương tự khi cố gắng cài đặt Dropbox SDK.

CURL thực sự đã được kích hoạt trên hệ thống của tôi nhưng điều này có nghĩa là php.ini trong thư mục wamp \ bin \ apache.

Tôi chỉ đơn giản là phải chỉnh sửa thủ công php.ini nằm trong wamp \ bin \ php, bỏ ghi chú extension=php_curl.dll dòng, khởi động lại Wamp và nó hoạt động hoàn hảo.

Tại sao có 2 php.ini đó và chỉ có một sử dụng vẫn còn là một bí ẩn đối với tôi ...

Hy vọng nó sẽ giúp được ai đó!


Một php.ini được Apache sử dụng trong WAMP và cái kia được sử dụng khi khởi động máy chủ web PHP tích hợp như thế này: $ php -S localhost:8000trong bảng điều khiển
Yahya Uddin

Cảm ơn bạn, nó hoạt động hoàn hảo !! Không hiểu tại sao php_curl được kiểm tra và với ;tệp php.ini ...
w3spi

10

Tôi gặp vấn đề này sau khi nâng cấp lên PHP5.6. Câu trả lời của tôi rất giống với của Adriano, ngoại trừ tôi phải chạy:

sudo apt-get install php5.6-curl

Lưu ý "5.6". Cài đặt php5-curl không hoạt động với tôi.


5

Theo https://github.com/composer/composer/issues/2119 bạn có thể mở rộng địa phương của mình composer.jsonđể nói rằng nó cung cấp tiện ích mở rộng (điều này không thực sự làm - đó là lý do tại sao bạn không nên xuất bản công khai gói của mình, chỉ sử dụng nó trong nội bộ).


Thật lạ, nó hoạt động thế nào? Bạn có nghĩa là nhà soạn nhạc tải phần mở rộng chính nó?
Pacerier

Trước tiên, nhà soạn nhạc xây dựng một danh sách những thứ nên có, và sau đó tìm kiếm những thứ thỏa mãn danh sách yêu cầu này. Các phần mở rộng PHP được cài đặt đơn giản là một mục trong danh sách có sẵn để đáp ứng các yêu cầu. Các gói mà providemột gói được đặt tên giống như một phần mở rộng PHP cũng sẽ đáp ứng các yêu cầu, bởi vì ở giai đoạn so sánh các thứ bắt buộc và hiện có, một phần mở rộng chỉ đơn giản là một chuỗi giống như tên gói thư viện.
Sven

3

Kích hoạt trong php 7 thử lệnh dưới đây

sudo apt-get install php7.0-curl

2

Tôi gặp phải một vấn đề tương tự khi cố gắng để nhà soạn nhạc cài đặt một số phụ thuộc. Hóa ra, phiên bản Wamp của tôi đi kèm đã có xung đột, tôi đoán vậy, với Windows 64 bit.

Url này có các dll curl cố định: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

Cuộn xuống phần có nội dung: Đã sửa lỗi phần mở rộng Curl.

Tôi đã tải xuống "php_curl-5.4.3-VC9-x64.zip". Tôi chỉ ghi đè dll bên trong thư mục wamp / bin / php / php5.4.3 / ext với dll trong tệp zip và trình soạn thảo đã hoạt động trở lại.

Tôi đang chạy Windows 8 64 bit.

Hi vọng điêu nay co ich.


2

Đối với bất kỳ ai gặp phải vấn đề này trên Windows, tôi không thể tìm thấy câu trả lời của mình trên google. Tôi vừa thử chạy trình soạn thảo yêu cầu ext-curl và điều này đã làm việc. Hoặc thêm phần sau vào tệp composer.json của bạn:

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

1

Nếu sử dụng wamp, hãy truy cập:

wamp\bin\php\php.5.x.x\php.ini tìm: ;extension=php_curl.dll loại bỏ (;)


1

Tôi có Archlinux với php 7.2, được tích hợp Curl, vì vậy không có cấu hình nào có thể khiến Composer thấy ext-curl, mà PHP có thể nhìn thấy và hoạt động vui vẻ. Làm việc xung quanh là sử dụng Trình soạn thảo với --ignore-platform-reqs.

ví dụ: cập nhật nhà soạn nhạc --ignore-platform-reqs

Tham khảo = https://github.com/composer/composer/issues/1426


1

hãy thử cài đặt php5-curl bằng cách sử dụng đoạn trích bên dưới.

sudo apt-get install php5-curl

Nếu nó không hoạt động, hãy thử bên dưới mã tôi chắc chắn nó sẽ hoạt động tốt.

sudo apt-get install php-curl

Đối với tôi nó đã làm việc ... tất cả là tốt nhất :)


sudo apt-get install php-curl, đã làm việc cho tôi trên Ubuntu
tối đa

0

Trong trường hợp của tôi, tôi đã chuyển từ PHP5 sang PHP7 và tôi đã gặp lỗi này, chỉ cần truy cập /bin/php/php7/php.ini, sau đó mở rộng uncomment = php_curl.dll và khởi động lại máy chủ của bạn, chạy lại cài đặt trình soạn thảo của bạn.


0

Không chắc chắn tại sao một câu trả lời với các lệnh Linux sẽ nhận được rất nhiều phiếu bầu cho một câu hỏi liên quan đến Windows, nhưng dù sao thì ...

Nếu phpinfo() hiển thị Curl là được bật, nhưng php -mKHÔNG, điều đó có nghĩa là bạn cũng có thể có php-cli.ini. chạyphp -i và xem tập tin ini nào được tải. Nếu nó khác, hãy tìm nó và phản ánh và sự khác biệt trong tệp ini CLI. Sau đó, bạn nên tốt để đi.

Tải xuống Btw và sử dụng Git Bash thay vì cmd.exe!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.