Потрібно включити розширення openssl для завантаження файлів через https


123

Я хотів встановити Zend Framework 2. Тому я завантажив програму скелета. Як згадується в посібнику ZF2, ми повинні випустити команду

php composer.phar install 

Всередині скелета.

Але я отримую помилку

Потрібно включити розширення openssl для завантаження файлів через https

Тоді я включив ssl_module у моїй базі, я перевірив файл php_ini і я можу побачити наступний рядок

extension = 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 (розширення = php_phar.dll) і, як сказано нижче, модуль apache ssl!
Дієго Фаверо

1
"PHP CLI SAPI використовує php.ini, відмінний від модуля CGI або Apache." То був фокус!
Джордж Д.

Якщо ви не можете знайти цей рядок, php.iniпросто додайте рядок extension=php_openssl.dllпід частиною динамічних розширень.
totymedli

Я використовую xampp, композитор дає ту саму відкриту помилку, яка відсутня, навіть після видалення ';' розширення openssl у php.ini.
Шашикумар Місал

Якщо ви використовуєте Mac і port, ви можете вибрати версію PHP, port select php php55встановивши розширенняport install php55-openssl
Prabowo Murti,

36

Переконайтесь, що ви редагуєте правильний файл php.ini.

Довідка: https://github.com/composer/composer/isissue/1440

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


2
хто б міг подумати, що ... Дійсно ... Це вирішило проблему. Спасибі
Руванта

20

переконайтеся, що у вас правильний шлях до папки розширення

extension_dir = "ext"

за замовчуванням це коментується; характер


1
цю лінію було прокоментовано повністю і зараз вона працює
Брайан Діллінгем

важливо для установки Windows!
хаакім

Де ця лінія? У якому файлі? 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 встановити 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

Уттам, якщо ваше питання не вирішено, то спробуйте підходити до 3-х крокових підходів. Це працювало для мене, оскільки у мене було саме таке питання.

крок 1: натисніть на значок лотка wamp.

крок 2: перейти до меню модулів apache-> apache

step3: натисніть на пункт меню "ssl_module"

він автоматично перезапустить wamp. якщо wamp не перезапускається автоматично, перезавантажте його через меню лотка wamp-> Перезапустити всі сервіси. Після перезапуску підтвердьте, що "ssl_module" надходить як позначено в меню apache-> apache-модулі

після цього просто спробуйте встановити php composer.phar, щоб пройти через відповідь, яку ви поділили, файл php.ini містить розширення = php_openssl.dll, а в каталозі php / ext також є файл "php_openssl.dll"

Щасти


3

Відповідь Валерія мені допомогла: https://stackoverflow.com/a/14265815/492457

WAMP використовує різні файли php.ini в CLI та 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

Я повинен був розкоментуйте extension=opensslв php.iniфайлі для всього до роботи!


0

Будьте уважні, якщо ви використовуєте wamp, не використовуйте wamp ui для включення 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.