Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 018 707 раз!

Форум

Добро пожаловать, Гость!

Проблема с openssl и composer

Обсуждение общих вопросов связанных с программой
ale321
Сообщения: 7
C нами: 3 года 5 мес

Непрочитанное сообщение ale321 » 20 дек 2013, 18:07

Здравствуйте.
Open server 4.8.8
Проблема:
Использую менеджер зависимостей для php - composer.
При попытке скачать библиотеки выводится ошибка о невозможности загрузки "You must enable the openssl extension to download files via https".
Т.е. composer думает, что openssl-расширение не подключено.

Что делал.
Строка "extension=php_openssl.dll" раскомментирована в:
DISK:\userdata\config\PHP-5.3.27_php.ini (использую эту версию PHP, установлено в окне настроек), раскомментирована в аналогичных файлах в этой же папке для других версий PHP. Раскомментировал в php.ini в DISK:\userdata\temp\config. Раскомментировал везде, где только возможно.
Ничего не помогает.

Попытался посмотреть через CLI пути к конфигурационным файлам. Результат:

C:\Users\USER>php --ini
Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File: (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)

Что делаю не так? В чем может быть проблема?

    Аватара пользователя
    Максим
    Сообщения: 4872
    C нами: 5 лет 11 мес
    Контакты:

    Непрочитанное сообщение Максим » 20 дек 2013, 21:35

    Работа в консоли

    Для запуска встроенной консоли необходимо запустить сервер и выполнить [Меню - Дополнительно - Консоль]. Среда окружения (англ. Environment) формируется в момент запуска сервера и передаётся всем запускаемым модулям. Любые другие программы, будь то консоль или IDE, так же могут получить правильное окружение, достаточно запускать эти программы из меню Open Server. Для этого можно либо сделать закладку, либо добавить ярлык в меню программ (см. разделы "Меню закладок" и "Меню программ").

    Необходимо знать, что если вы запускаете консоль или любую другую программу из стандартного меню Пуск или с ярлыка на рабочем столе, а не из меню Open Server, то они не смогут работать с виртуальным окружением сформированным в Open Server.

    Встроенную консоль можно запустить даже если сервер выключен, в Full версии выполните [Меню - Программы - Интернет - Консоль]. Однако при выключенном сервере среда окружения не сформирована и поэтому работать из консоли с PHP и другими модулями или программами (Pear, Composer, скриптами и т.д.) будет невозможно.

    Важные особенности

    Если вы сначала запустили консоль и только потом запустили сервер, то среда окружения НЕ станет доступна в консоли. Чтобы начать полноценную работу с модулями после запуска сервера нужно закрыть и заново открыть консоль, поскольку только при активном сервере консоль получает правильно сформированное окружение в момент запуска. Точно так же среда окружения не будет обновлена в консоли если вы переключились на другой модуль PHP или MySQL и перезапустили сервер, но при этом не перезапустили консоль!

    medar
    Сообщения: 66
    C нами: 4 года 10 мес

    Непрочитанное сообщение medar » 20 дек 2013, 22:25

    ale321, это известный "ньюанс" в работе openserver, просто перепишите php.ini в одну папку с экзешником и все заработает: viewtopic.php?p=8836#p8836

    Аватара пользователя
    Максим
    Сообщения: 4872
    C нами: 5 лет 11 мес
    Контакты:

    Непрочитанное сообщение Максим » 20 дек 2013, 22:37

    medar писал(а):ale321, это известный "ньюанс" в работе openserver, просто перепишите php.ini в одну папку с экзешником и все заработает: viewtopic.php?p=8836#p8836


    Начиная с последней версии Open Server этого уже не нужно, по просьбам пользователей сервер теперь создаёт виртуальное окружение как если бы PHP был установлен стационарно. Так что даже путь до php.ini теперь указывать не требуется.

    Но это действует только для софта запускаемого из меню OS. Если запускать ПО из других мест то ваш совет поможет, но только для тех программ которым не нужны переменные окружения PHP и правильные пути в path. Поэтому я всегда всем советую кинуть ярлык в меню Open Server.

    Сам я не приветствую такое копирование, потому что если что-то поменять в шаблоне php.ini и потом не обновить этот файлик в папке с самим модулем (о чем легко можно забыть) - могут возникнуть неожиданные сюрпризы.

    medar
    Сообщения: 66
    C нами: 4 года 10 мес

    Непрочитанное сообщение medar » 20 дек 2013, 23:09

    Но это действует только для софта запускаемого из меню OS


    Вот именно.

    PS Напоминаю, что проблему с композером (c которой люди будут идти косяками) и другие подобные можно было бы легко решить копированием php.ini при старте опенсервера в папку с php.exe .

    Аватара пользователя
    Максим
    Сообщения: 4872
    C нами: 5 лет 11 мес
    Контакты:

    Непрочитанное сообщение Максим » 20 дек 2013, 23:18

    Проблемы нет и никогда не было, давайте называть вещи своими именами. Есть особенность работы Open Server (а именно то, что он портативен) и есть нежелание некоторых пользователей запускать софт из меню Open Server. Но в этом случае пускай устанавливают Apache, PHP и т.д. стационарно в систему и пользуются ими, Open Server им ни к чему.

    medar
    Сообщения: 66
    C нами: 4 года 10 мес

    Непрочитанное сообщение medar » 20 дек 2013, 23:33

    Да, это не проблема, согласен. У опенсервера есть несколько особенностей, несколько из них - документация не на сайте, а внутри в в chm формате, невозможность апдейта и принципиальная портабельность - всегда будут причинами появления людей на форуме с одними и теми же вопросами и одними и теми же ответами. Я все жду, когда автору надоест отвечать хотя бы по одной проблеме, но не настаиваю на решении, конечно.

    ale321
    Сообщения: 7
    C нами: 3 года 5 мес

    Непрочитанное сообщение ale321 » 20 дек 2013, 23:58

    medar писал(а):ale321, это известный "ньюанс" в работе openserver, просто перепишите php.ini в одну папку с экзешником и все заработает: viewtopic.php?p=8836#p8836


    Да, кинул php.ini в папку, как вы и сказали. Возникла проблема с imagemagick. Пришлось еще и в переменные окружения его папку прописывать.
    С ярлыками из указанной соседней темы тоже не сильно успешно. Использую composer c с помощью плагина в sublime text, а ему нужно "виртуальное окружение как если бы PHP был установлен стационарно". Так вот, он постоянно ругался.

    Максим, за информацию о консоли спасибо и за это:

    Начиная с последней версии Open Server этого уже не нужно, по просьбам пользователей сервер теперь создаёт виртуальное окружение как если бы PHP был установлен стационарно.


    P.S. Искал документацию на сайте - не нашел. В меню программы - не нашел. После того, как отписались - начал искать еще более тщательно. Нашел там, где не искал. Стереотипы сыграли свою роль. Искал, как обычно, в первом уровне меню и где-то снизу. Мысль озвучил - "выводы делать только вам", как в той передаче.

    Надо новую версию скачать и "установить", а то столько всего пытался уже воротить с этими sublime/composer + openserver, что уже и не помню всего того, что пытался сделать. Должно помочь.

    Аватара пользователя
    Максим
    Сообщения: 4872
    C нами: 5 лет 11 мес
    Контакты:

    Непрочитанное сообщение Максим » 21 дек 2013, 00:51

    ale321 писал(а):P.S. Искал документацию на сайте - не нашел. В меню программы - не нашел. После того, как отписались - начал искать еще более тщательно. Нашел там, где не искал.


    Вы говорите так, будто бы пол ночи перебирали сотню пунктов огромного меню длиной в два километра и еле нашли то что нужно. Меню программы маленькое, там всё просто и понятно. Как можно не найти там документацию по open server лично мне не понятно.

    По поводу окружения - если вам будет нужно чтобы Open Server подхватывал еще и виндовый PATH, то обратите внимание на соответствующую опцию в настройках Open Server (вкладка Сервер).

    ale321
    Сообщения: 7
    C нами: 3 года 5 мес

    Непрочитанное сообщение ale321 » 21 дек 2013, 01:20

    Для себя, я не понял, что изменилось.
    Использую composer через sublime text 2.
    Для тех, кто будет приходить с подобной проблемой (не работает composer при использовании в sublime text). (В описании присутствуют вещи, которые, казалось бы, не связаны с OpenServer. Но именно из-за особенностей работы OpenServer. Указанная связка не работает "из коробки")

    1. Скачать с оф. сайта автоматический инсталлятор Composer. Он добавляет composer в переменные окружения. В результате через стандартную командную строку должна исполняться команда "composer".
    2. Нужно скопировать "php.ini из \userdata\temp\config в \modules\php\PHP-X.X.XX - чтобы он лежал рядом с php.exe", где PHP-X.X.XX - папка используемой в настоящее время версии PHP. В этом файле должен быть раскомментирован модуль openssl.
    3. Добавить в переменные окружения эту же папку PHP-X.X.XX (полный путь, естественно).
    4. Если возникнет проблема с imagemagick, то добавить и эту папку в переменные окружения (modules\imagemagick).
    5. После этого в командной строке Windows должна исполняться команда "php -v".
    6. Создать файл composer.json (при использовании автоматического инсталлятора, его необходимо создать в папке пользователя).
    7. Выполнить в командной строке Windows команду "composer install". Должна создаться папка vendor и скачаться все необходимое.
    8. Запустить Sublime text с установленным плагином для Composer. Зайти в настройки Settings - User и добавить следующее:

    {
        "composer_command":  "composer"
    }


    9. Сохранить, выйти. Обязательно перезагрузить компьютер.
    10. Использование. Создаем проект в Sublime text, создаем файл composer.json в корне проекта, нажимаем shift+ctrl+p, вводим composer install, нажимаем enter.

    P.S.После каждого действия с переменными окружения нужно или перезагружаться или закрывать и открывать консоль Windows заново.
    P.P.S. Надо понимать, что после того, как изменится версия PHP в настройках, нужно будет повторять действие 2, предварительно удалив созданный ранее php.ini
    P.P.P.S. Ну, и еще... забыл. Нужно установить Git, скачав с сайта разработчика.

    Добавлено спустя 19 минут 32 секунды:
    если вам будет нужно чтобы Open Server подхватывал еще и виндовый PATH


    Скорее, чтобы Win подхватывал путь к php Open Server'а...

    По Sublime - можно чуть проще.
    Загвоздка только в том, что php при установке не добавляется в переменные окружения, т.к. Open Server устанавливается портативным методом.

    1. Установить Git, чтобы он исполнялся из стандартной командной строки.
    2. Скопировать "php.ini из \userdata\temp\config в \modules\php\PHP-X.X.XX - чтобы он лежал рядом с php.exe", где PHP-X.X.XX - папка используемой в настоящее время версии PHP. В этом файле должен быть раскомментирован модуль openssl.
    3. Добавить в переменные окружения эту же папку PHP-X.X.XX (полный путь, естественно).
    4. Если возникнет проблема с imagemagick, то добавить и эту папку в переменные окружения (modules\imagemagick).
    5. После этого в командной строке Windows должна исполняться команда "php -v".
    6. В консоли Open Server'а выполняем сначала команду:

    mkdir composer & cd composer & php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"


    потом

    echo @php "%~dp0composer.phar" %*>composer.bat


    7. Запустить Sublime text с установленным плагином для Composer. Зайти в настройки Settings - User и добавить следующее (указать путь к только что созданному файлу с расширением bat):

    {
        "composer_command":  "W:/composer/composer.bat"
    }


    8. Перезагрузить компьютер.
    9. Использование. Создаем проект в Sublime text, создаем файл composer.json в корне проекта, нажимаем shift+ctrl+p, вводим composer install, нажимаем enter.

    P.S. Надо понимать, что после того, как изменится версия PHP в настройках, нужно будет повторять действие 2, предварительно удалив созданный ранее php.ini
    P.P.S. Надеюсь, что кому-нибудь поможет и сэкономит день поисков. Искал на stackoverflow, в гугле, тут на форуме, но в одном месте такой информации не нашел.


    Вернуться в «Обсуждение Open Server»

    Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей