Вы должны включить расширение openssl для загрузки файлов через https


123

Я хотел установить Zend Framework 2. Я скачал скелетное приложение. Как упоминалось в руководстве ZF2, мы должны выполнить команду

php composer.phar install 

Внутри скелета.

Но я получаю ошибку

Вы должны включить расширение openssl для загрузки файлов через https

Затем я включил ssl_module в своем wamp, я проверил файл php_ini и вижу следующую строку

расширение = php_openssl.dll

Тем не менее, я получаю ту же ошибку. Кто-нибудь знает, что я пропустил?


1
У меня была эта проблема с запуском travis-ci, и оказалось, что в отличие от всех дистрибутивов linux под солнцем, некоторые из старых сред travis-ci были скомпилированы без openssl, на всякий случай, если кто-то еще столкнется с той же проблемой.
Kzqai

@Kzqai можно ли скомпилировать это расширение в travis, например, для PHP 5.3.3 в моем вопросе ? Из их кулинарной книги я вижу, что вы можете установить расширения PECL, но я не думаю, что расширение openssl доступно через PECL.
Джефф Пакетт

Ответы:


286

PHP CLI SAPI использует php.iniмодуль, отличный от CGI или Apache.

Найти строку ;extension=php_openssl.dllв wamp/bin/php/php#.#.##/php.ini и раскомментировать ее, удалив точку с запятой ( ;) от начала строки.


Мне также пришлось включить расширение phar (extension = php_phar.dll) и, как сказано ниже, модуль apache ssl!
Диего Фаверо

1
«PHP CLI SAPI использует другой php.ini, чем CGI или модуль Apache». Это был трюк!
Джордж Д.

Если вы не можете найти эту строку в своем, php.iniпросто добавьте ее в раздел extension=php_openssl.dll«Динамические расширения».
totymedli

Я использую xampp, Composer выдает ту же ошибку отсутствия открытого ssl даже после удаления ';' расширения openssl в php.ini.
Шашикумар Мисал

Если вы используете Mac и port, вы можете выбрать версию PHP port select php php55и установить расширениеport install php55-openssl
Прабово Мурти,

36

Убедитесь, что вы редактируете правильный файл php.ini.

Ссылка: https://github.com/composer/composer/issues/1440

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


2
Кто бы мог подумать, что ... Действительно ... Это решило проблему. Спасибо
Ruwantha 03

20

убедитесь, что у вас правильный путь к папке расширения

extension_dir = "ext"

по умолчанию он комментируется; персонаж


1
эта строчка была полностью закомментирована, и теперь она работает
Брайан Диллингем

важно для установки windows!
haakym

Где эта линия? В каком файле? php.ini в 1, C: \ wamp64 \ bin \ apache ИЛИ 2. C: \ wamp64 \ bin \ php \ php7.0.0?
MyDaftQuestions

9

У меня также была такая же проблема, когда я играл с Zend Framework 2 и композитором. Я использую PHP 5.4 (устанавливается через macports), и моим решением было установить openssl для PHP 5.4 также через macports.

sudo port установить php54-openssl

5

Я столкнулся с этой проблемой, но настройка openssl (также для cli) не помогла.

Я обновил композитора, и это решило мою проблему.

Просто введите:

$ php composer.phar self-update

или

$ composer selfupdate

Удачи!


4

Я использую XAMPP. В C: \ xampp \ php \ php.ini записи для openssl не существовало, поэтому я добавил «extension = php_openssl.dll» в строку 989, и композитор работал.


4

Вам необходимо включить extension = php_openssl.dll в обоих файлах (php и apache). мой путь к файлам ПК:

  1. C: \ WAMP \ Bin \ PHP \ php5.3.13 \ php.ini

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


Это не верно. Проверьте с помощью phpinfo (), какой php.ini используется
ThaDafinser

3

Уттам, если ваша проблема не решена, попробуйте следующий трехэтапный подход. Это сработало для меня, так как у меня была точно такая же проблема.

Шаг 1: щелкните значок в трее.

шаг 2: перейти в меню apache-> модули apache

Шаг 3: нажмите на пункт меню «ssl_module»

он автоматически перезапустит вамп. если wamp не перезагружается автоматически, перезапустите его через меню лотка wamp-> Restart All services. После перезапуска убедитесь, что "ssl_module" идет, как отмечено в меню apache-> apache modules.

после этого просто попытайтесь установить php composer.phar через ответ, предоставленный вами, файл php.ini содержит extension = php_openssl.dll, а в каталоге php / ext также есть файл "php_openssl.dll"

удачи


3

Мне помог ответ Валерия: https://stackoverflow.com/a/14265815/492457

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


2

Убедитесь, что вы обновили файл php.iniдля CLI. В моем случае это была строка C:\wamp\bin\php\php5.4.3\php.iniраскомментации extension=php_openssl.dll.


1

Поздний ответ, но добавление, чтобы другие могли узнать причину.

Вам также необходимо отредактировать файл php.ini в папке «wamp \ bin \ php \ php-XYZ».



0

Будьте осторожны, если вы используете wamp, не используйте интерфейс wamp для включения extension=php_openssl.dll

просто перейдите в свой каталог php, например: C:\wamp\bin\php\php5.4.12и отредактируйте php.iniи раскомментируйте extension=php_openssl.dll.

он должен работать.

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