Я пытаюсь установить Composer для Windows с помощью командной строки со следующим вызовом:
php -r "readfile ( https://getcomposer.org/installer );" | PHP
Однако я получаю сообщение об ошибке:
Предупреждение: readfile (): Не удалось найти оболочку «https» – вы забыли включить ее при настройке PHP? в строке командной строки в строке 1
Call Stack: 0.0010 224336 1. {main} () Код командной строки: 0 0.0010 224488 2. readfile () код командной строки: 1
Предупреждение: файл readfile ( https://getcomposer.org/installer ): не удалось открыть поток: недопустимый аргумент в строке командной строки в строке 1
Call Stack: 0.0010 224336 1. {main} () Код командной строки: 0 0.0010 224488 2. readfile () Код командной строки: 1
Я уже раскомментировал строку «; extension = php_openssl.dll» в каталоге php5.5.12, перезапустил браузер и попробовал другие варианты. Когда я запускаю команду только с «s» в https, я получаю:
Некоторые настройки на вашем компьютере не позволяют работать с Composer. Убедитесь, что вы устранили перечисленные ниже проблемы и снова запустите этот скрипт:
Расширение openssl отсутствует, что означает, что безопасные передачи HTTPS невозможны. Если возможно, вы должны включить его или перекомпилировать php с помощью –with-openssl
Я попытался включить этот флаг –with-openssl в разных местах, но, похоже, он не делает трюк.
Ну, так как решение по какой-то причине не работает для вас, вы можете заметить, что вся эта команда выполняет загрузку файла и печать его в другой php
процесс. Это довольно простая проблема, которая может быть решена с помощью небольших адаптаций.
Например, вы можете удалить https
и использовать http
:
php -r "readfile(http://getcomposer.org/installer);" | php -- --disable-tls
Или пусть другой инструмент извлечет этот файл, например:
wget -s -O - "https://getcomposer.org/installer" | php -- --disable-tls
Или даже:
curl -sSk "https://getcomposer.org/installer" | php -- --disable-tls
Параметр --disable-tls
относится к сценарию installer
, он будет указывать ему использовать http
вместо https
в загрузках, которые он будет выполнять во время установки.
Он работает, используя ответ Хэвендара. Просто добавьте '..', чтобы заключить URL-адрес
php -r "readfile('http://getcomposer.org/installer');" | php -- --disable-tls
Это похоже на то, что ваша установка не включена.
Найдите файл php.ini
(в Windows это, вероятно, находится на том же месте, что и php.exe
( c:\php
на моей машине).
Откройте его в своем любимом редакторе и найдите линию
;extension=php_openssl.dll
удалите полуколону
extension=php_openssl.dll
HTTPS теперь должен работать для вас из php.