Установка 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, введя команду:
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