Composer нужен, когда в корне проекта есть composer.json и без vendor/ скрипт не встанет. Многие готовые архивы Microscript уже содержат зависимости или вовсе не используют Composer — тогда этот мануал можно закрыть. Если в readme написано composer install — читайте дальше.
На Windows грабля одна: Composer должен видеть тот же PHP 8, что и ваш локальный сервер, а не случайный php из PATH от старого XAMPP.
PHP в PATH
Узнайте, где лежит php.exe стека MicroServer (или OpenServer). Добавьте каталог в PATH пользователя либо вызывайте полный путь. Проверка в новом cmd/PowerShell:
php -v
php -m
Должна быть ветка 8.x и модули из требований. Если php не находится — Composer-Setup тоже может поставить «не тот» интерпретатор.
Установка Composer
- Скачайте официальный Composer-Setup для Windows.
- Укажите путь к php.exe нужной версии.
- Дождитесь установки, откройте новый терминал.
composer -V— должна показаться версия.
Альтернатива без установщика: composer.phar рядом с проектом и запуск php composer.phar install. На локалке установщик удобнее.
install в проекте
cd D:\MicroServer\www\project.loc
composer install
Для продакшен-подобной установки без dev-пакетов:
composer install --no-dev --optimize-autoloader
Появится каталог vendor/ и автозагрузка. Document root хоста не должен «случайно» отдавать лишнее из vendor без нужды — обычно php туда не кладут как публичную точку входа.
Частые ошибки
php не является командой— PATH.Your requirements could not be resolved— PHP ниже constraint в composer.json; обновите версию.- Нет zip/openssl/mbstring — доставьте расширения к PHP.
- Прокси/antivirus режет packagist — временно другая сеть или зеркало.
- memory exhausted —
COMPOSER_MEMORY_LIMIT=-1или выше memory_limit.
Не коммитьте сюда секреты. auth.json с токенами держите вне публичных копий.
composer install на месте нормален. См. перенос.Связка с локальным сервером
Хост проекта: *.loc. Стек: MicroServer. Альтернатива Денверу: здесь. После install откройте сайт и проверьте, что автозагрузка подхватилась — иначе 500 с Class not found: ошибка 500.
На VDS
Те же команды под Linux-пользователем сайта. PHP-CLI той же версии, что FPM. Без доступа SSH на shared Composer часто недоступен — тогда зависимости должны приехать архивом.
Подбор сервера: VDS, root — VPS с root. Установка продукта целиком: установка.
Обновление пакетов
composer update без нужды на боевом не запускайте — уедете на мажорные версии и сломаете скрипт. Обновляйте по инструкции релиза продукта. Локально можно экспериментировать на копии базы: бэкап перед апдейтом.
Какой PHP видит Composer
Частая ловушка на Windows: в PATH торчит C:\xampp\php или старый OpenServer, а сайт в MicroServer крутится на другом php.exe. Composer ставит пакеты, ориентируясь на platform php из CLI. В итоге composer install проходит, а веб орёт на синтаксис или отсутствующий модуль.
Проверка:
where php
php -v
composer config --list | findstr php
Если where показывает не тот путь — поправьте PATH или вызывайте:
C:\path\to\php.exe C:\ProgramData\ComposerSetup\bin\composer.phar install
В MicroServer путь к PHP смотрите в каталоге установки сервера. Документация стека: локальный сервер.
composer.json и lock
composer.lock фиксирует версии. На проде и локалке ставьте по lock через install, не через update. Иначе локально «у меня работает» на других минорных версиях библиотек, а на VDS — нет.
Если lock нет в архиве продукта, а json есть — install всё равно создаст lock. Сохраните его для повторяемых деплоев. Не правьте vendor руками: следующий install затрёт.
Ошибки SSL и packagist
На корпоративных Windows иногда режется SSL до repo.packagist.org. Симптом: curl error 60 / certificate problem. Лечится обновлением CA-бандла PHP или временно другой сетью, не отключением verify-peer «навсегда» в глобальном конфиге.
Антивирус с https-scan тоже иногда ломает composer. Если ошибка плавает — исключите каталог проекта и php.exe из проверки на время установки зависимостей.
Когда Composer не нужен
Многие поставки Microscript — «распаковал, создал БД, открыл установщик». Нет composer.json — не ставьте Composer «для галочки». Лишняя сущность на shared без SSH всё равно не пригодится.
Если в комплекте уже лежит vendor — не гоните install поверх без причины. Исключение: в readme явно сказано обновить зависимости после перехода на PHP 8.2.
Права и vendor на Linux после копирования с Windows
Перенесли проект с Windows на VDS архивом — следите за окончаниями строк и правами. vendor должен читаться пользователем PHP-FPM. Исполняемые бинарники в vendor/bin иногда теряют +x — для веб-скрипта это редко критично, для CLI-утилит — да.
Перенос целиком: перенос скрипта. Если после выкладки Class not found — автозагрузчик не найден или vendor не залили: ошибка 500.
Практический порядок для локалки
- Подняли хост
project.loc— vhost. - Распаковали архив скрипта.
- Проверили
php -vтой же ветки 8.x. - При наличии composer.json —
composer install. - Создали БД — phpMyAdmin.
- Установщик — установка.
На VDS с root порядок тот же, только бинарник php другой и PATH linux-овый: VPS с root, VDS. Альтернатива старого Денвера, если искали его под Composer: Денвер PHP 8.
Если composer install скачал пакеты, а сайт всё равно Class not found — проверьте, что document root смотрит в тот каталог, где лежит vendor, и что в index/bootstrap есть require autoload. Иногда архив продукта кладёт точку входа в public/, а вы открываете родительский каталог. На локалке это лечится правильной папкой хоста: *.loc. Не удаляйте vendor «для чистоты» перед выкладкой на shared без SSH — обратно не соберёте. Лучше архивируйте вместе с ним при переносе. Перед экспериментами с update на копии базы: бэкап, требования PHP: требования.
Частые вопросы
Composer на windows локально?
Composer ставит пакеты скрипта на локалке так же, как на VDS.
Сколько времени занимает «Composer на Windows локально»?
Ориентир по тексту мануала — около 5 мин. На практике зависит от хостинга и подготовки базы.
Нужен ли отдельный сервер?
Для большинства скриптов достаточно хостинга или VDS с PHP и MySQL. Подбор сервера — в разделе VDS и требованиях к PHP/MySQL.
Openserver альтернатива php 8?
Разбор рядом в мануале по этому запросу. openserver альтернатива php 8
Локальный сервер windows php 8 mysql?
Разбор рядом в мануале по этому запросу. локальный сервер windows php 8 mysql