Composer: Как использовать Composer на виртуальном хостинге без SSH

Этот способ решает задачу установки PHP-библиотек через Composer на обычном виртуальном хостинге, где нет SSH и нельзя выполнить команды в консоли.

Подход подходит, если проект можно собрать локально и потом просто загрузить на хостинг готовые зависимости. Не подходит, если пакет требует серверной сборки, нестандартных расширений PHP на хостинге, запуска post-install скриптов на сервере или тесно завязан на окружение хостинга.


1. Готовое решение

Идея простая: все действия Composer выполняются локально на твоём ПК или на тестовой машине, а на хостинг загружается уже готовый результат.

Если библиотека ещё не добавлена в проект, сначала подключи её локально:

composer require monolog/monolog

После этого собери проект для загрузки на хостинг:

composer install --no-dev --prefer-dist -o

Что означает эта команда:

  • composer install — устанавливает зависимости проекта
  • --no-dev — не ставит пакеты для разработки
  • --prefer-dist — предпочитает готовые архивы пакетов
  • -o — оптимизирует autoload для production

Что потом загружать на хостинг:

  • vendor/
  • composer.json
  • composer.lock
  • код проекта, который использует зависимости

Если проект уже использует автозагрузчик Composer, в PHP обычно достаточно такого подключения:

declare(strict_types=1);

require_once __DIR__ . '/vendor/autoload.php';

echo 'Composer autoload loaded';

2. Как использовать пошагово

  • Установи Composer локально на свой ПК.
  • Открой папку проекта, где лежит composer.json.
  • Если библиотека ещё не добавлена — выполни composer require vendor/package.
  • Собери проект командой composer install --no-dev --prefer-dist -o.
  • Проверь, что появилась папка vendor и файл composer.lock.
  • Загрузи проект на хостинг через FTP/SFTP.
  • Убедись, что пути в проекте указывают на vendor/autoload.php.
  • Открой сайт или тестовый файл проверки.

Если библиотека добавляется в уже существующий проект, то после очередного composer require vendor/package локально нужно заново загрузить обновлённые vendor, composer.json и composer.lock.


3. Пример проверки на хостинге

Создай временный файл composer-check.php в корне сайта:

declare(strict_types=1);

ini_set('display_errors', '1');
error_reporting(E_ALL);

require_once __DIR__ . '/vendor/autoload.php';

echo 'OK: vendor loaded';

Если при открытии файла в браузере видишь OK: vendor loaded, значит зависимости подключаются корректно. После проверки файл лучше удалить.

Просмотров: 199
Материал помог? Оценка помогает находить устаревшие и спорные решения.

Комментарии

0

Нашли ошибку или хотите дополнить материал?

Комментариев пока нет.Можно первым дополнить материал или сообщить об ошибке.
Telegram