Предупреждение Composer: расширение openssl отсутствует. Как включить в WAMP


132

Попытка установить средство управления зависимостями Composer на Win7 / 64 + WampServer 2.2 через установщик установки, и я получаю следующее сообщение:

Расширение openssl отсутствует, что снижает безопасность и стабильность Composer. Если возможно, вы должны включить его или перекомпилировать php с --with-openssl

Итак, вот что я сделал ...

  1. На моей иконке Wamp в трее нажал php > php extensions > php_openssl
  2. Это показало, что задача была выполнена, поставив галочку рядом с расширением
  3. Затем я перезапустил WampServer
  4. Затем на значке Wamp в трее я щелкнул php > php.iniи поискал openssl, чтобы убедиться, что он НЕ закомментирован). Не было.
  5. Затем я вернулся к Composer-Setup.exe и попытался снова. То же предупреждающее сообщение : «расширение openssl отсутствует»
  6. Не Имея никогда работал с OpenSSL, я не уверен , что должно быть установлено, поэтому я попытался перейти к одной из моих местных сайтов с использованием протокола HTTPS. Это не удалось.

Чего мне не хватает?

Пожалуйста, порекомендуйте.


Вот это да. Я просто зашел в Google, чтобы попытаться получить дополнительную информацию, и этот пост появился в результатах поиска. Уже? Блин, это было быстро. : -}
спящий

Вы перезапустили веб-сервер?
периклис

да, я перезапустил сервер.
спящий

Не знаю, насколько интенсивно вы пытаетесь использовать ssl, но это может помочь: phpjoel.com/2011/04/07/… . Если это вам не поможет, вы всегда можете попробовать старый добрый метод переустановки устранения неполадок после резервного копирования вашей БД и файлов.
Cameeob2003

Я только что обновил свою версию на WampServer до последней версии. То же сообщение Я просто продолжил установку. Пока что заметных ошибок нет. Weird.
спящий

Ответы:


316

WAMP использует разные файлы php.ini в интерфейсе командной строки и для Apache. когда вы включаете php_openssl через пользовательский интерфейс WAMP, вы включаете его для Apache, а не для CLI. Вам необходимо изменить C: \ wamp \ bin \ php \ php-5.4.3 \ php.ini, чтобы включить его для CLI.


2
вы спасли мою любовь, которую я чувствую, для laravel ... какого черта они не оставили установку, как это было в старой версии :)
Tom

1
Черт возьми, Laravel привел меня сюда
Tomexsans

1
Я использую uwamp, где я могу найти файл ini.
Sujeet Kumar

Ответ также работает для EasyPHP (щелкните правой кнопкой мыши значок EasyPHP на панели задач, выберите «Конфигурация | PHP», который открывает php.ini в блокноте, найдите openssl, раскомментируйте строку)
stifin

что мне делать для xampp? .. Я получил сообщение об ошибке, как это сообщение не может быть отправлено. Ошибка почтовой программы: отсутствует расширение: openssl ,,,
шт

27

В дополнение к раскомментированию ;extension=php_openssl.dllстроки, php.iniо которой говорили все остальные, вы также должны убедиться, что эта ;extension_dir = "ext"строка также раскомментирована. Чтобы раскомментировать, удалите точку с запятой в префиксе и сохраните.

Эта строка, возможно, уже не закомментирована в таких пакетах, как WAMP и XAMPP, но ее нельзя загрузить простым PHP для Windows, поэтому ее стоит проверить. Кроме того, вы должны создать php.iniфайл, скопировав один из примеров, например, php.ini-developmentв новый файл, и затем назвать его php.ini. Затем внесите эти изменения там.

Кроме того, в будущем для установки таких инструментов, как PHP и Composer, я рекомендую использовать менеджер пакетов Chocolatey. Тогда это так же просто, как choco install composer. Конечно, вам все равно нужно отредактировать php.ini перед установкой Composer с помощью метода choco. В будущих версиях Windows инструменты управления пакетами, такие как Chocolatey, будут встроены в Windows , как apt-getи в Ubuntu. Впереди захватывающие времена для разработчиков!

В любом случае после установки Composer не забудьте перезагрузить терминал. Независимо от того, используете ли вы командную строку, Bash (устанавливается с Git) или Powershell, вам необходимо перезапустить его, прежде чем обновленные переменные среды заработают.


4
Это правильный ответ, если вы пытаетесь установить композитор в Windows 10 и следовали этому руководству
ограблено

Абсолютно .. Это правда .. Я знал это, но забыл об этой extстроке в Windows. Спасибо за напоминание.
WM

16

У меня была такая же проблема, хотя openssl был включен. Проблема заключалась в том, что установщик Composer просматривал этот файл конфигурации:

C: \ WAMP \ Bin \ PHP \ php5.4.3 \ php.ini

Но загруженный файл конфигурации на самом деле находится здесь:

C: \ WAMP \ Bin \ Apache \ apache2.2.22 \ Bin \ php.ini

Поэтому мне просто нужно было раскомментировать его в первом файле php.ini, и это помогло. Вот как WAMP был установлен на моей машине по умолчанию. Я ничего не менял, так что, вероятно, это случится и с другими. Это в основном то же самое, что и ответ Оги Гарднера выше, но я просто хотел указать, что у вас может быть два файла php.ini.


Путь по умолчанию, указанный при установке, был неправильным, указание на исправление php.exe решило проблему, спасибо.
Сандеш Дамкондвар

12

раскомментируйте ;extension=php_openssl.dllв обоих

wamp\bin\php\php5.4.12\php.ini
wamp\bin\apache\Apache2.4.4\bin\php.ini

это сработает


Я использую xampp .. поэтому я отредактировал 2 файла с именами, c / php / php.ini и c / apache / bin / php.ini .. удалил точку с запятой в этом; extension = php_openssl.dll .. но все еще остается такой же ошибкой, как this Mailer Error: Extension missing: openssl ..
pcs

@saina, ты перезапустил свой сервер? Также запустите phpinfo (), чтобы проверить, где находится файл конфигурации.
Иванка Тодорова

5

C: \ laravel-master> composer create-project laravel / laravel Установка laravel / laravel (v4.0.6) - Установка laravel / laravel (v4.0.6) [RuntimeException] Вы должны включить расширение openssl для загрузки файлов через https

Я использую EasyPhp (типа WAMP). В значке EasyPHP на панели задач щелкните правой кнопкой мыши и выберите конфигурацию, затем выберите PHP. Я открою PHP.iniконфигурацию файла в Блокноте, с поиском-поиском или CTRL+ F в блокноте для слова, которое OPENSSLвы найдете, ;extension=php_openssl.dllпросто удалите; и extension=php_openssl.dllактивен.

C: \ laravel-master> composer create-project laravel / laravel Установка laravel / laravel (v4.0.6) - Установка laravel / laravel (v4.0.6) Загрузка: 100% созданный проект в C: \ laravel-master \ laravel Загрузка композитора репозитории с информацией о пакете Установка зависимостей (включая require-dev)


Я знаю, что это не по теме, но как у вас установлен композитор с EasyPhp. Я получаю только ошибки и мне приходится все переустанавливать.
HenryW

2

вам необходимо отредактировать поиск файла "c: \ Program Files \ wamp \ bin \ php \ php5.3.13 \ php.ini" для:; extension = php_openssl.dll

удалите точку с запятой в начале

Примечание: если сохранение файла не работает, вам необходимо отредактировать его от имени администратора. (на win7) перейдите в меню «Пуск», найдите блокнот, щелкните блокнот правой кнопкой мыши и выберите «Запуск от имени администратора»

в окнах установки композитора просто нажмите назад, затем затем (или закройте его и начните снова), и он должен работать



1

Коротко и мило, раскомментируйте эту строку wamp/bin/php/php5.3.13(или любую другую версию php):
;extension=php_openssl.dll (удалите ;)
Теперь запустите установку Composer из командной строки. У вас не будет ошибки.
Хорошо пойти!



1

Да, вам необходимо открыть php.ini и удалить точку с запятой, чтобы:

;extension=php_openssl.dll

удалить ";" вот так и будет работать.

extension=php_openssl.dll

Удачного кодирования.


0

Для установки Composer у меня сработали следующие шаги: (WAMP версия 2.4 x64bit)

edit ->
**C:\wamp\bin\php\php5.4.12\php.ini**
;;uncomment below line or remove the semicolons ';'
extension=php_openssl.dll

**C:\wamp\bin\apache\Apache2.4.4\bin\php.ini**

extension=php_openssl.dll

0

Все эти ответы хороши, но на самом деле, если вы хотите понять, каталог расширений должен быть правильным, если вы хотите, чтобы все ваши некомментированные расширения работали. Можно написать физический или относительный путь, например

extension_dir = "C:/myStack/php/ext"

или

extension_dir = "../../php/ext"

Это относительно веб-сервера Apache httpd.exe (C: \ myStack \ apache \ bin). Но если вы хотите, чтобы он работал с Composer или чем-то еще, вам нужен физический путь, потому что режим cli не использует веб-сервер!


0

Я столкнулся с той же проблемой. Я переименовал свою папку php php7_winxxxxв просто php, и она работала нормально. Похоже, что композитор проверял расположение модуля php_openssl в c:/php/ext.

Вам также может понадобиться добавить c:/phpк PATHпеременной окружения

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.