Установка Composer в Open Server
15 января 2021
Сначала чуть вводных сведений. Composer - это менеджер библиотек (пакетов) для PHP, работающий на уровне приложения. Composer нужен для того, чтобы под каждый проект можно было организовывать и вести собственный набор библиотек.
Настройки окружения и версии библиотек указываются в файле composer.json. С помощью команды composer update можно выполнить обновление библиотек до последних версий. Допустимые версии библиотек указываются во всё том же файле composer.json. Composer для загрузки и обновления пакетов по умолчанию использует репозиторий Packagist https://packagist.org/ но можно настраивать загрузку из своих частных хранилищ.
Другими словами, Композер даёт приложению удобное управление и поддержание используемых библиотек. Для маленького проекта это не всегда имеет смысл, а вот для большой разработки очень нужная штука.
Теперь перейдём непосредственно к установке Composer в Open Server.
Запускаем Open Server, открываем консоль


Теперь (а вернее до запуска сервера) нужно определиться для какой версии PHP устанавливаем Composer. В моём случае это PHP 8.0
Переходим в папку PHP, введя команду:

Далее нам нужно скачать установочный файл Composer, который находится по адресу https://getcomposer.org/installer и запустить его установку. Всё это делается командой:
После ввода у меня посыпались ошибки вида:

Это произошло из-за того, что при запуске сервера у меня стояла конфигурация сервера, настроенная на PHP 7.4, потом я открыл консоль, изменил PHP на 8.0, перезапустил сервер, НО не перезапустил (не переоткрыл) консоль. То есть нужно было в конце действий переоткрыть консоль.
Снова вводим команды и появляется другая ошибка:

Такая ошибка возникает из-за того, что у Open Server включена защита от внешнего доступа. Зайдём в настройки Open Server и снимем галочку «Защитить сервер от внешнего доступа»


Сохраняем настройки, перезагружаем Open Server, повторно открываем консоль и опять переходим в папку PHP, запускаем установку Composer:
Отлично, установка пошла. В конце появилось сообщение Composer (version 2.5.8) successfully installed, а значит Композер установился

Сейчас, чтобы обращаться к Композеру мы вынуждены вводить команды вида:
Можно настроиться на более короткий вид команд, сократив строку до вида:
Для этого введём команду, которая создаст в папке PHP файл composer.bat, и который собственно будет запускать composer.phar:
Теперь всё ок. Для помощи по командам Композера используется команда:

Настройки окружения и версии библиотек указываются в файле composer.json. С помощью команды composer update можно выполнить обновление библиотек до последних версий. Допустимые версии библиотек указываются во всё том же файле composer.json. Composer для загрузки и обновления пакетов по умолчанию использует репозиторий Packagist https://packagist.org/ но можно настраивать загрузку из своих частных хранилищ.
Другими словами, Композер даёт приложению удобное управление и поддержание используемых библиотек. Для маленького проекта это не всегда имеет смысл, а вот для большой разработки очень нужная штука.
Теперь перейдём непосредственно к установке Composer в Open Server.
Запускаем Open Server, открываем консоль


Теперь (а вернее до запуска сервера) нужно определиться для какой версии PHP устанавливаем Composer. В моём случае это PHP 8.0
Переходим в папку PHP, введя команду:
cd C:\OpenServer\modules\php\PHP_8.0

Далее нам нужно скачать установочный файл Composer, который находится по адресу https://getcomposer.org/installer и запустить его установку. Всё это делается командой:
php -r "readfile('https://getcomposer.org/installer');" | php
После ввода у меня посыпались ошибки вида:
Warning: PHP Startup: xsl: Unable to initialize module
Module compiled with module API=20170718
PHP compiled with module API=20200930
These options need to match
in Unknown on line 0

Это произошло из-за того, что при запуске сервера у меня стояла конфигурация сервера, настроенная на PHP 7.4, потом я открыл консоль, изменил PHP на 8.0, перезапустил сервер, НО не перезапустил (не переоткрыл) консоль. То есть нужно было в конце действий переоткрыть консоль.
Снова вводим команды и появляется другая ошибка:
Warning: is_writeable(): open_basedir restriction in effect. File(C:\OpenServer\modules\php\PHP_8.0) is not within the allowed path(s): (c:/openserver/domains;c:/openserver/userdata/composer;c:/openserver/userdata/temp;c:/openserver/modules/system/html/openserver) in Standard input code on line 748
The installation directory "C:\OpenServer\modules\php\PHP_8.0" is not writable

Такая ошибка возникает из-за того, что у Open Server включена защита от внешнего доступа. Зайдём в настройки Open Server и снимем галочку «Защитить сервер от внешнего доступа»


Сохраняем настройки, перезагружаем Open Server, повторно открываем консоль и опять переходим в папку PHP, запускаем установку Composer:
cd C:\OpenServer\modules\php\PHP_8.0
php -r "readfile('https://getcomposer.org/installer');" | php
Отлично, установка пошла. В конце появилось сообщение Composer (version 2.5.8) successfully installed, а значит Композер установился

Сейчас, чтобы обращаться к Композеру мы вынуждены вводить команды вида:
php composer.phar -v
Можно настроиться на более короткий вид команд, сократив строку до вида:
composer -v
Для этого введём команду, которая создаст в папке PHP файл composer.bat, и который собственно будет запускать composer.phar:
echo @php "%~dp0composer.phar" %*>composer.bat
Теперь всё ок. Для помощи по командам Композера используется команда:
composer -help
