Próbuję zainstalować Facebook PHP SDK z Composer. Właśnie to dostaję
$ 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.
Problem w tym, że mam włączone rozszerzenie curl (niepomocowane w php.ini). Kiedy uruchamiam phpinfo()
, mówi, że jest włączony. Jedyną wskazówką, jaką mam, jest to, że kiedy biegnę$ php -m
, brakuje linii „curl”, ale nie wiem, co z tym zrobić.
Mam wamp 2.4 na Win8 i uruchamiam kompozytora w cmd.exe.
php
windows
curl
facebook-php-sdk
composer-php
Michał Artazow
źródło
źródło
Odpowiedzi:
Jest to spowodowane tym, że nie masz biblioteki php5-curl zainstalowanej w systemie,
Na Ubuntu wystarczy po prostu uruchomić poniższy kod linii, w twoim przypadku na Xampie zajrzyj do dokumentacji Xampa
Dla każdego, kto używa php7.0
Dla tych, którzy używają php7.1
Dla tych, którzy używają php7.2
Dla tych, którzy używają php7.3
Lub po prostu uruchom poniższe polecenie, aby zainstalować według wersji:
źródło
To zadziałało dla mnie: http://ubuntuforums.org/showthread.php?t=1519176
Po zainstalowaniu kompozytora za pomocą polecenia
curl -sS https://getcomposer.org/installer | php
wystarczy uruchomić, asudo apt-get update
następnie ponownie zainstalować curl za pomocąsudo apt-get install php5-curl
. Następnie proces instalacji kompozytora powinien działać, abyś mógł w końcu uruchomić,php composer.phar install
aby uzyskać zależności wymienione w pliku composer.json.źródło
Jak powiedział Danack w komentarzach, istnieją 2 pliki php.ini. Odkomentowałem wiersz z rozszerzeniem curl w tym w folderze Apache, którym jest serwer php.ini.
Z drugiej strony kompozytor używa php do konsoli, co jest zupełnie inną historią. Plik php.ini dla tego programu nie znajduje się w folderze Apache, ale znajduje się w folderze PHP i musiałem również odkomentować wiersz w nim. Potem ponownie uruchomiłem instalację i wszystko było w porządku.
źródło
na php7 uruchom na przykład:
dla każdego brakującego rozszerzenia. Następnie:
i na koniec (w folderze głównym projektu):
źródło
Zetknąłem się z tym samym problemem, próbując zainstalować Dropbox SDK.
CURL rzeczywiście został włączony w moim systemie, ale oznaczało to php.ini w folderze wamp \ bin \ apache.
Po prostu musiałem ręcznie edytować plik php.ini znajdujący się w pliku wamp \ bin \ php, odkomentować
extension=php_curl.dll
linię, ponownie uruchomić Wampa i działało idealnie.Dlaczego są te 2 php.ini i tylko jedna jest używana, wciąż jest dla mnie tajemnicą ...
Mam nadzieję, że komuś to pomoże!
źródło
$ php -S localhost:8000
w konsoli;
plikiem php.ini ...Miałem ten problem po aktualizacji do PHP5.6. Moja odpowiedź jest bardzo podobna do Adriano, tyle że musiałem biegać:
Zwróć uwagę na „5.6”. Instalacja php5-curl nie działała dla mnie.
źródło
Według https://github.com/composer/composer/issues/2119 możesz rozszerzyć swój lokalny,
composer.json
aby stwierdzić, że zapewnia on rozszerzenie (czego tak naprawdę nie robi - dlatego nie powinieneś publicznie publikować swojego pakietu, tylko użyj go wewnętrznie).źródło
provide
pakiet o nazwie takiej samej jak rozszerzenie PHP spełniałby również wymagania, ponieważ na etapie porównywania wymaganych i istniejących rzeczy rozszerzenie jest po prostu łańcuchem, podobnie jak nazwa pakietu biblioteki.Włącz w php 7 spróbuj poniżej polecenia
źródło
Wystąpił podobny problem, gdy próbowałem przekonać kompozytora do zainstalowania niektórych zależności. Okazuje się, że .dll, z którym przyszła moja wersja Wampa, miał, jak sądzę, konflikt z 64-bitowym Windowsem.
Ten adres URL ma poprawione dll curl: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/
Przewiń w dół do sekcji: Naprawiono rozszerzenia loków.
Pobrałem plik „php_curl-5.4.3-VC9-x64.zip”. Właśnie nadpisałem bibliotekę DLL w katalogu wamp / bin / php / php5.4.3 / ext biblioteką DLL, która była w pliku zip, i kompozytor znów działał.
Korzystam z 64-bitowego systemu Windows 8.
Mam nadzieję że to pomoże.
źródło
Dla każdego, kto napotka ten problem w systemie Windows, w ogóle nie mogłem znaleźć mojej odpowiedzi w Google. Właśnie próbowałem uruchomić kompozytora wymaga ext-curl i to zadziałało. Alternatywnie dodaj następujące informacje w pliku composer.json:
źródło
jeśli używasz wampa, przejdź do:
wamp\bin\php\php.5.x.x\php.ini
znajdź:;extension=php_curl.dll
usuń (;)źródło
Mam Archlinuxa z php 7.2, który ma zintegrowane Curl, więc żadna ilość konfiguracji voodoo nie spowodowałaby, że Composer zobaczy ext-curl, z którym PHP może zobaczyć i pracować z radością. Obejście polega na użyciu Composer z --ignore-platform-reqs.
np. aktualizacja kompozytora --ignore-platform-reqs
Odniesienie = https://github.com/composer/composer/issues/1426
źródło
spróbuj zainstalować php5-curl, używając poniższego fragmentu.
jeśli to nie zadziała, spróbuj poniżej kodu, jestem pewien, że będzie dobrze.
dla mnie to działało ... wszystkiego najlepszego :)
źródło
W moim przypadku przeniosłem się z PHP5 na PHP7 i dostałem ten błąd, po prostu przejdź do /bin/php/php7/php.ini, następnie odkomentuj rozszerzenie = php_curl.dll i zrestartuj serwer, uruchom ponownie instalację kompozytora.
źródło
Nie jestem pewien, dlaczego odpowiedź na polecenia Linuksa miałaby tyle głosów na pytanie związane z Windows, ale w każdym razie ...
Jeśli
phpinfo()
pokazuje Curl jako włączony, alephp -m
NIE, oznacza to, że prawdopodobnie też maszphp-cli.ini
. uruchomphp -i
i zobacz, który załadowany plik ini. Jeśli jest inny, różnicuj go i odzwierciedlaj oraz różnice w pliku ini CLI. Więc powinieneś być dobry.Pobierz Btw i użyj Git Bash zamiast cmd.exe!
źródło