Меню Рубрики

Установка composer на сервере

Как установить Composer на хостинг или сервер?

Раз вы читаете эту статью, то полагаю, что вы уже знаете, что такое Composer. Это достаточно популярный и современный менеджер зависимостей для PHP.

Я узнал о нем совершенно случайно, решая одну интересную и немного нестандартную задачу, о которой, возможно, будет написано немного позже. Суть Composer’a, если вкратце, – это автоматическая установка и доустановка необходимых пакетов в том или ином проекте. Например, вы делаете сайт. Находите в репозитории необходимый пакет для расширения функционала вашего сайта, устанавливаете его и все, от чего зависит устанавливаемый пакет, будет загружено в автоматическом режиме.

Вполне удобная штука. А теперь давайте посмотрим, как происходит установка Composer на хостинг.

Простая установка Composer на хостинг/сервер

Установку Composer мы будем производить на примере хостинга Beget, поскольку именно здесь есть браузерная реализация SSH (Терминал). На других хостингах и серверах все делается по аналогии, главное – иметь возможность SSH-соединения.

1. Войдите в Терминал (или в SSH-соединение с вашим хостингом/сервером) и выполните команду:

Таким образом вы попадаете в корневую папку аккаунта.

2. Далее, выполняете команду вида:

создав тем самым папку, в которой будет находиться исполняемый файл Composer.

3. Затем, грузите сам установщик Composer через команду:

4. После того, как загрузка завершилась – установите Composer. Сделать это можно с помощью команды:

5. После завершения установки удалите установщик Composer:

6. А завершающим шагом перезагрузите Терминал. Для этого введите команду:

После чего возобновите SSH-соединение.

Если установка Composer прошла без проблем, то после ввода команды:

перед вами появится информация о Composer’е и некоторая инструкция по работе с ним:

Если вы, как и я, в статье используете хостинг Beget, то для доступа к автозагрузчику из папки ваших сайтов вам необходимо открыть доступ к корневой папке аккаунта.

Для этого сделайте следующее.

1. Откройте файловый менеджер в панели управления хостингом.

2. В корневой папке аккаунта перейдите в меню «Инструменты», пункт «Настроить общий доступ к текущей директории».

3. Уровень доступа выставите на «Чтение и запись», а «Применить к» на «Включая вложенные папки»:

После чего жмете «Открыть доступ».

Таким образом, мы отключаем изоляцию сайтов, которая по умолчанию включена на хостинге. Если пренебречь этим правилом, то вы не сможете подключиться к автозагрузчику Composer из папки вашего сайта.

источник

Composer для самых маленьких

Когда я первый раз разбирался с composer, я набросал для себя маленькую шпаргалку и теперь, спустя некоторое время представляю её на суд общественности в несколько доработанном виде.
Данная публикация актуальная для тех, кто в первый раз столкнулся с незаменимым менеджером пакетов для PHP.

Итак, Composer — менеджер пакетов для PHP.

Для чего нужен Composer и простейший пример его использования

Возьмем для примера этот проект
Если в двух словах: то это набор скриптов для работы в VK API
Соответственно, для работы этих скриптов нужно несколько библиотек
Библиотеки перечислены в файле composer.json — ключевой файл при работе с composer

В этом проекте используется 5 библиотек. Соответственно, если разработчик решит опубликовать этот проект на github, то ему достаточно закинуть в репу саму папку со скриптами и составить composer.json, в котором будут описаны библиотеки, необходимые для работы этого проекта. Простота очевидна: в репу не нужно вслед за файлами прицепом тащить все нужные библиотеки. Занимает меньше места, проще распространять проект.

В папке scripts лежат непосредственно скрипты проекта, для работы которых и требуются эти 5 пакетов.

Запускаем установку пакетов:

После установки появляется папка vendor, куда складываются установленные пакеты и формируется файл autoload.php

Этот файл подключаем к проекту и всё — библиотеки подключены, можно спокойно с ними работать.

Простота очевидна: не нужно скачивать и подключать библиотеки и их зависимости самостоятельно, composer всё сделает за Вас. И вся эта пачка подключается одним единственным файлом autoload.php
Все пакеты, которые лежат в vendor, добавляются в автозагрузчик. При этом composer опирается на файлы composer.json, которые должны быть у каждого пакета. Формирование composer.json пакета — это задача разработчика пакета, от потребителя пакета требуется лишь описать в composer.json проекта, какие пакеты нужно подключить.

Это пример composer.json проекта:

Это пример composer.json пакета:

В секции require прописана зависимость этого пакета — библиотека guzzle http, необходимая для работы библиотеки getjump/vk. В данном случае, т.е. с точки зрения потребителя пакетов, всевозможные зависимости пакетов — это не наша «забота», с зависимостями composer разберётся сам.

Пространство имён пакета прописано в секции autoload

getjump\\Vk\\ — наименование пространства имён
src/getjump/Vk/ — директория, в которой лежат файлы с классами пакета
Работа с этой библиотекой в проекте:

Core и Friends — это классы библиотеки, которые разложены и прописаны в папке src в соответствии со стандартом PSR-4. Опять же формирование структуры пакета — это работа создателя пакета.
Нам, как потребителю пакета, достаточно прописать в наш проект
include ‘../vendor/autoload.php’;
и все эти классы и пространства имён будут отлично работать.
При этом нам не нужно заморачиваться и писать автозагрузчик. Composer это сделает сам при выполнении команды install.

Читайте также:  Установка dota 2 с диска

Установка

Установка Composer глобально

1) Для начала нужно что бы путь к директории с интерпретатором PHP был прописан в переменной окружения path.
Проверим, так ли это:
php –version

Если вывод получился типа такого, то этот шаг можно пропустить
На примере Windows 7
Система -> Дополнительные параметры системы -> Дополнительно -> Переменные среды

Далее нас будет интересовать переменная path:

Вписываем путь к интерпретатору

*С давних времён у меня на компьютере лежит сборка xampp, сама сборка здесь нафиг не нужна, а вот интерпретатор с неё вполне подойдёт (версия PHP – 5.6).

2) Перезапускаем терминал.
Создаём директорию и ставим composer (я ставил на диск D)
D:
cd /
mkdir bin
cd bin
php -r «readfile(‘https://getcomposer.org/installer’);» | php
echo php «%

3) Добавим в переменную окружения path путь к composer.bat, например для D:\bin должно получиться:

Дополнительно можно добавить в path
D:\Users\%userName%\AppData\Roaming\Composer\vendor\bin\
для того, что-бы было удобнее использовать инструменты, глобально установленные через Composer.
(У меня папка Users располагается на диске D, а на C создан симлинк на неё).
Всё, composer установлен и полностью готов к работе.

Ещё: при установке можно словить ошибку
[RuntimeException]
The APPDATA or COMPOSER_HOME environment variable must be set for composer to run correctly
Решение нашлось здесь github.com/composer/composer/issues/2033
Добавляем переменную APPDATA со значением D:\Users\GSU\AppData\Roaming

Установка Composer локально

Есть вариант ещё поставить composer локально, но в большинстве случаев в этом нет явной необходимости.
Однако тут установка ещё проще.
Т.к. программа глобально не установлена, нужен загрузочный файл(мини-программа composer), для его загрузки пишем команду:
php -r «readfile(‘https://getcomposer.org/installer’);» | php
теперь в директории проекта появился файл composer.phar
Всё, можно использовать.
php composer.phar require [название пакета]

Отличия глобальной и локальной установки

Команды запускаются по разному при локальной и глобальной установках:

Например:
Локально: php composer.phar require silex/silex

1.1
Глобально: composer require silex/silex

При локальной установке нужно каждый раз скачивать установочный файл в папку текущего проекта
php -r «readfile(‘https://getcomposer.org/installer’);» | php

При глобальной установке этот файл не нужен. Composer запускается при любой текущей директории.

Команды

install — установка пакетов, прописанных в composer.json
update – обновление пакетов
dumpautoload — пересборка автозагрузчика
require somepackage/somepackage:someversion — добавление нового пакета (по умолчанию пакеты ставятся из оф. репозитория). При установке пакет прописывается в composer.json
update —lock — обновление файла блокировки composer.lock
config —global cache-files-maxsize «2048MiB» — пример изменения параметра конфигурации
—profile — добавление этого параметра к любой команде включит показ времени выполнения и объёма использованной памяти
—verbose — подробная инфомация о выполняемой операции
show —installed — список установленных пакетов с описанием каждого
show —platform — сведения о PHP
—dry-run — репетиция выполнения команды. Может добавляться к командам install и update. Эмулирует выполнение команды без её непосредственного выполнения. Необходим для того, чтобы проверить пройдёт ли установка пакетов и зависимостей успешно.
remove — удаление пакета. Точная противоположность require

Синтаксис composer.json

Именование пакетов и варианты описания пакетов

Имя пакета состоит из двух частей разделёных косой чертой: названия поставщика (vendor name) и названия библиотеки.

Если пакет оформлен в соответствии со стандартом PSR-4, но опубликован не на packagist.org, а на github, то вместо версии пакета нужно прописать ветку и репозиторий для этого пакета:

Пример подключения библиотеки, которая лежит на github, но при этом не оформлена по стандарту PSR-4, а представляет из себя обыкновенное нагромождение файлов с классами и функциями.

Pqr/superlib — эта та самая «неправильная» библиотека.

В секции repositories для неё пишем такую конструкцию

Ключевой момент — секция autoload, здесь указываем нужные нам файлы с классами и функциями.
Структура библиотеки:

Соответственно в проекте вызов getCurrentTime() будет выглядеть примерно так:
$timer = new pqr\superlib\TimerClass;
echo $timer->getCurrentTime();

источник

Как Установить Composer

Введение

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

Эта проблема особенно часто проявляется у PHP разработчиков. Это вполне обычная ситуация, когда программисты постоянно создают такие модули как персистентность данных с нуля. В результате — огромная трата ресурсов на дополнительные задачи — задачи, которые в противном случае могли бы быть выполнены с помощью уже существующих решений.

Composer — это удобный и простой менеджер зависимостей для PHP. Некоторые из вас, возможно уже знакомы с похожими менеджерами зависимостей, такими как PIP для Python или NPM для Node.js. Однако Composer поможет решить проблему со всеми зависимостями вашего проекта в одном месте.

Одна из функций Composer, которая заметно выделяет его среди других программ для управления зависимостями, таких как PEAR, это возможность решать зависимости на основе каждого проекта. Composer управляет зависимостями каждого из ваших проектов отдельно. Это означает, что у вас не будет неиспользуемых библиотек — неплохой бонус к уменьшению размера вашего проекта. Надо также упомянуть, что вы можете установить пакеты по всей системе с помощью Composer. Это можно сделать с помощью специальной глобальной команды, однако, мы не будем сильно углубляться в эту тему, просто из соображения сохранения простоты и удобства.

Читайте также:  Установка забора при помощи мотобура

В этом руководстве вы узнаете, как установить Composer, чтобы использовать его в своих будущих PHP проектах. Просто следуйте этому пошаговому руководству и вы легко со всем справитесь.

Что вам понадобится

Перед тем, как вы начнете это руководство, вам понадобится следующее:

  • Доступ к интерфейсу командной строки

Шаг 1 — Как установить Composer

Самый первый и самый легкий шаг — установка Composer на ваш компьютер. Здесь вы найдете руководство по установке Composer как на Linux, так и на Windows. Даже узнаете, как установить его на виртуальный хостинг Hostinger. Мы не забыли о пользователях Mac, просто откройте ваш терминал и следуйте инструкциям из Linux раздела. Ниже показаны три разных способа установки Composer.

Вариант 1 Установка Composer на виртуальный хостинг Hostinger

ВАЖНО! Composer теперь является предустановленной программой для премиум и бизнес тарифов Hostinger. Если вы являетесь одним из них, просто перейдите к следующему шагу.

  1. Во-первых, вам необходимо подключиться к вашему хостинг аккаунту через SSH. Вы можете найти подробные инструкции о том, как это сделать здесь.
  2. Теперь, создайте новый файл используя текстовый редактор nano и назовите его composer-installer.sh:
  1. Команда выше откроет ваш файл в текстовом редакторе nano. Вставьте данный код в файл:

Этот скрипт скачает последнюю версию Composer, проверит его подпись и если она правильная, то продолжит установку.

  1. Сохраните изменения и выйдите из текстового редактора, нажав сочетание клавиш CTRL (CMD для MacOS) + X , Y и затем ENTER.
  2. Теперь выполните скрипт следующей командой:
  1. Если установка будет успешной, вы не увидите никаких надписей. Для проверки правильности установки введите:
  1. Вы должны увидеть подобный результат:

Как видно по результату выше установка Composer прошла успешно. Теперь вы узнали, как установить Composer на Hostinger!

Вариант 2 Установка Composer на Linux/MacOS

Большинство PHP разработчиков используют для своих проектов операционные системы Mac или Linux, поэтому этот раздел особенно важен. Процесс довольно схож на обеих системах. Чтобы установить Composer, вам необходимо ввести в терминал одинаковые для обеих систем команды.

ЗАМЕТКА! В целях обучения, здесь мы будем использовать отдельные команды вместо целого скрипта. Часть из них меняется при выходе новых версий Composer. Поэтому, проверьте их здесь перед началом установки.

Локальная установка

Не самый популярный вариант, но вы можете установить Composer локально. Это означает, что ваша ОС не сможет запустить Composer без указания пути до него. Чтобы начать установку следуйте этим этапам:

  1. Откройте ваш терминал и подключитесь к вашему серверу через SSH.
  2. Выполните эти две команды:
  1. Первая захватит установщик Composer как PHAR файл (PHP архив), тогда как вторая обеспечит, что установщик не имеет каких-либо ошибок или повреждений. После выполнения этих команд на вашем диске появиться последняя версия установщика Composer.
  2. Установите Composer с помощью этой команды:
  1. Вы можете изменить каталог для установки и имя файла через параметры –install-dir и –filename. Из прошлой команды можно узнать, что каталог установки был bin, а имя под которым он был установлен было composer.
  2. Теперь, когда вы установили Composer, можно смело запустить его этой командой:

Глобальная установка

После локальной установки, мы рекомендуем сделать Composer доступным глобально. Это обеспечит возможность его запуска из любой точки вашей системы, в независимости от расположения. Мы сделаем это добавив Composer к переменной PATH.

Для того этого вам понадобится:

  1. Следуйте инструкциям из Локальной установки.
  2. Затем, запустите данную команду:
  1. Теперь вы можете запускать Composer независимо от вашего текущего расположения в терминале.
  2. Для запуска Composer выполните команду:

Поздравляем! Теперь вы узнали, как установить Composer на вашу систему.

Вариант 3 Установка Composer на Windows

Как и со многими другими программами, начать работу с Composer гораздо легче на Windows. Не нужно каких-либо команд для установки и загрузки Composer. Просто следуйте данным этапам:

  1. Скачайте последнюю версию Composer отсюда.
  2. После окончания загрузки, запустите мастер установки Composer. Процесс довольно прост и займет не более 5 минут.

  1. После окончания процесса установки, откройте командную строку. Для этого нажмите сочетание клавиш CTRL + R, впишите cmd и нажмите кнопку OK.
  2. В командной строке впишите следующее:

Вуаля! Вы узнали, как установить Composer на компьютер под операционной системой Windows. Установщик автоматически добавит Composer в вашу переменную PATH. Вы сможете открыть командную строку и запустить Composer в любом месте.

Шаг 2 — Создание и общая информация о composer.json

Теперь перейдем к самой интересной части — первое использование Composer для вашего PHP проекта. Для этого, создайте отдельный файл composer.json. Этот файл служит своего рода шпаргалкой для Composer; он будет загружать для вашего проекта только те пакеты (зависимости), которые в нем упомянуты.

Читайте также:  Установка bind и apache

Обратите внимание, что он также проверяет совместимость версий пакетов для вашего проекта. К примеру, если вы используете старый пакет в вашем проекте, файл composer.json даст вам об этом знать для избежания возможных проблем в будущем. У вас есть возможность создавать и обновлять файл composer.json самостоятельно. Но так как это руководство показывает, как автоматизировать некоторые задачи, этот способ будет слегка неуместен.

Давайте продемонстрируем полезность composer.json создав образец проекта. Наш проект — это простой таймер PHP, позволяющий разработчикам узнать сколько времени тратиться на выполнение той или иной части кода. Это очень полезно при оптимизации и отладке. Следуйте данным этапам для создания своего проекта:

  1. Создайте новую папку для проекта. Так как наш проект это таймер, мы назовем его немного неоригинально, phptimer. Для этого впишите эту команду:
  1. Войдите в созданную папку с помощью команды:
  1. Теперь вам нужен пакет или библиотека с уже реализованным в нем таймером PHP. Лучшее место для поиска пакетов это Packagist – официальное хранилище пакетов созданных для Composer. Здесь вы сможете найти все виды библиотек для облегчения вашей ноши разработчика. Для данного руководство нам понадобиться пакет или библиотека с таймером. Для этого впишите ‘timer’ в поисковое поле, как на картинке снизу:

  1. Как вы видите на сайте имеется множество таймеров для разработчиков сайтов. Каждый пакет имеет свое имя и краткое описание. Напротив каждого из пакетов есть счетчик скачиваний, вместе со счетчиком звезд GitHub. Давайте скачаем phpunit/php-timer (7-ой в списке) так как у него больше всего скачиваний и звезд GitHub. Обратите внимание, что каждый из пакетов имеет следующий формат: поставщик/пакет [phpunit/php-timer]. Это также называют пространством имен. Оно должно быть уникальным для каждого из пакетов на Packagist, так как оно используется для определения различных пакетов.
  2. После выбора пакета для установки, нам необходимо уведомить Composer о вашем выборе, чтобы он добавил его в ваш проект. Для этого впишите следующую команду в терминал:

После выполнения команды, Composer создаст в папке вашего проекта два файла (composer.json и composer.lock), в дополнение к новой папке под названием vendor.

Папка vendor это то место, где Composer хранит все пакеты и зависимости. Это довольно удобно, если вы хотите скопировать все пакеты из одной системы на другую. Однако мы настоятельно не рекомендуем это делать, так как это потребует ручного обновления файла composer.json, уже не говоря о беспорядке к которому это может привести. Еще один совет для тех, кто использует VCS (систему контроля версий) вроде Git; не добавляйте файл vendor в ваш репозиторий.

Говоря о версиях пакета, после выполнения команды выше, вы увидите строку с данными о версии скачанного Composer пакета phpunit/php-timer. В нашем случае она выглядит так:

Знак вставки (^) определяется Composer, как опция ‘максимальной совместимости.’ Это означает, что когда этот знак появляется возле версии, Composer разрешит обновление пакета, если он конечно не приведет к ошибкам. В нашем случае, Composer позволит обновление в диапазоне >=1.0.9 Шаг 3 — Использование скрипта автозагрузки

Если вы дошли до этой части руководства, все последующее вам должно даваться очень легко. Ваши зависимости были установлены и ваш проект готов к работе. Почти.

Теперь вам необходимо загрузить эти зависимости в ваш PHP скрипт. Если бы не файл автозагрузки Composer, мы бы потратили довольно много времени. Файл находится в папке vendor вашего проекта. Вставка этого единственного файла в ваш PHP скрипт обеспечит видимость каждого пакета установленного для вашего проекта скрипту.

Чтобы добиться автозагрузки, просто напишите следующую строку перед объявлением или созданием любых новых переменных в вашем скрипте:

Пример скрипта ниже поможет вам лучше это понять:

Запустите скрипт. В процессе выполнения он должен отображать результат подобный этому:

Шаг 4 — Обновление зависимостей вашего проекта

Теперь нам осталось лишь узнать, как производить обновление пакетов. Сделать это можно двумя способами:

  • Универсальное обновление

Для проверки и обновления всех ваших пакетов и зависимостей, впишите в терминал следующую команду:

  • Обновление конкретного пакета

Иногда, вам может понадобиться проверить обновления для определенного пакета. Без проблем, просто выполните команду ниже:

Не забудьте поменять vendor/package на имя пакета, который вы хотите обновить.

Composer также автоматически обновит файлы composer.json и composer.lock для соответствия текущему состоянию вашего проекта.

Заключение

В данном руководстве вы узнали, как установить Composer и использовать его в своем первом проекте. Разработчики не должны разбираться с зависимостями самостоятельно или разрабатывать свои собственные решения для проблем, которые были решены миллионы раз другими. Они должны иметь возможность брать существующие решения с открытым исходным кодом и легко внедрять их в свои проекты.

Именно поэтому Composer, это один из самых полезных инструментов в арсенале разработчика. Теперь вам не надо тратить драгоценное время на решение зависимостей, вы можете потратить его на другие сферы вашего проекта.

источник

Добавить комментарий

Adblock
detector