ВСЕ СТАТЬИ
Блог начинающего программиста
Регистрация
PHP хостинг ХостиЯ

Heroku хостинг позволяет установить сайт бесплатно

Опубликовано: 2017-08-01

Heroku - это облачная платформа, которая позволяет создавать, разрабатывать, устанавливать, запускать, контролировать и масштабировать сайты. Позиционирует себя как самый быстрый способ перейти от идеи к URL-адресу с приложением, избегая головных болей от работы с инфраструктурой. Благодаря сервису пользователи тратят время и силы только на разработку и развертывание проектов, которые сразу начинают приносить прибыль.

Как облачный хостинг Хероку появился в июне 2007 года, тогда он поддерживал только один язык программирования – Ruby. Сегодня Хероку дополнительно поддерживает Nod.js, Java, PHP, Python, Go, Scala, Clojure.

Dynos - сердце Heroku хостинга

Хероку платформа использует модель контейнера для запуска и масштабирования приложений.

Система называется масштабируемой, если она способна увеличивать производительность пропорционально дополнительным ресурсам. Масштабируемость можно оценить через отношение прироста производительности системы к приросту используемых ресурсов. Чем ближе это отношение к единице, тем лучше.

Википедия

Контейнеры, используемые в работе, называются «dynos». Это изолированные виртуальные контейнеры Linux, предназначенные для выполнения кода на основе заданной пользователем команды. Приложение может масштабироваться до любого количества контейнеров на основе требований к ресурсам. Возможность управления контейнерами предоставляют Heroku простой способ масштабировать, управлять количеством, размером и типом dynos, которые могут понадобиться проекту в любой момент времени.

Dynos - строительные блоки, которые управляют приложением Heroku. Контейнерная модель.
Принцип работы строительных блоков – dynos

Как установить сайт бесплатно

Хостинг позволяет бесплатно разместить до 5 проектов. Сначала надо зарегистрироваться, получив бесплатную учетную запись.

Учет работы Dyno

Учетная запись предоставляет 550 часов в месяц бесплатного использования Dyno. В дополнение к этим базовым часам счета, можно получить дополнительно 450 часов ежемесячной бесплатной работы приложений. Для этого потребуется зарегистрировать платёжную карту. Деньги взиматься не будут, просто надо ее зарегистрировать. Кстати, регистрация карты предоставляет и другие опции.

Халявные dynos обладают уникальным свойством – они умеют ложиться спать после 30-минутного бездействия сайта. Таким образом, расход часов прекращается. Условия бездействия:

  • отсутствие трафика, т.е. веб dynos не действуют;
  • рабочие dynos не работают.

Необходимо выполнение обоих условий.

При появлении трафика dynos просыпаются с небольшой малозаметной задержкой.

После израсходования всех часов в течение месяца, приложения засыпают и спят оставшуюся часть месяца.

Как определить остаток бесплатной работы Dyno

Посмотреть оставшиеся свободные часы можно используя Heroku CLI, набрать команду в командной строке

heroku ps -a <имя приложения>.

Или в аккаунте на странице управления счетами на вкладке Billing.

После расхода 80% запаса свободных часов придет уведомление на электронную почту. Второе уведомление придет после 100% расхода квоты времени, и приложения будут спать до конца текущего месяца.

Установка сайта

Для развертывания приложений следует установить на локальную машину популярную систему контроля версиями Git, интерфейс командной строки Heroku (CLI). CLI - важная часть использования Хероку. Он упрощает создание и управление приложениями Героку непосредственно с терминала.

Чтобы установить сайт с кодом PHP дополнительно потребуется установка Composer (перевод с английского – Композитор).

Последовательность действий для установки сайта

  1. Зайти в системную консоль, набрать команду

    heroku login

  2. Затем ввести адрес электронной почты, пароль.

  3. Если проект не загружен на сервис GitHub, а находится на жестком диске компьютера, зайти в папку для него, или создать ее.

  4. Создать локальный репозиторий, набрав

    git init

  5. Загрузить в эту папку репозитория файлы сайта.

    1. Создать и загрузить файл Procfile, другие необходимые для Хероку файлы, например composer.json при загрузке сайта PHP.

    2. Если файл composer.json не пустой, создать файл composer.lock, выполнив команду

      composer update.

  6. Чтобы добавить и закрепить файлы в репозитории, выполнить последовательно действия:

    git add .

    git commit -am "<Комментарий>".

  7. Создать приложение на Героку, которое готовит хостинг для получения исходного кода:

    heroku create

  8. Развернуть свой код

    git push heroku master

  9. Заключительное действие - открыть сайт в окне браузера

    heroku open

Всё, сайт успешно установлен на облачный хостинг!

Procfile

Прокфайл определяет команды, которые выполняют приложения в контейнерах динос, объявляет типы процессов. Каждый дино-контейнер относится к одному из объявленных типов процессов и выполняет команду, связанную с этим типом процесса.

Procfile - это простой текстовый файл, который называется точно Procfile (например, Procfile.txt не действует).

Прокфайл должен находиться в корневом каталоге приложения. Он не работает, если находится в ином месте.

Procfile объявляет типы процессов в отдельных строках файла, каждая из которых имеет следующий формат: <тип процесса>: <команда>. Каждая новая декларация процесса начинается с новой строки.

Тип процесса web является особым: это единственный тип процесса, который может получать внешний HTTP-трафик с маршрутизаторов Хероку. Если проект включает веб-сервер, необходимо объявить процесс как web .

Composer.json

Composer.json располагается в корневом каталоге. При его наличии Хероку распознает приложение как PHP. Поддержка PHP будет применяться только тогда, когда проект с программой имеет файл с именем composer.json в корневом каталоге.

Хероку использует Композитор для управления зависимостями в проектах PHP. Если программа имеет какие-либо зависимости с другими внешними библиотеками, composer.json файл должен указать их.

Даже если приложение не имеет зависимостей от Композитор, оно должно содержать в composer.json хотя бы пустое поле ({}), чтобы быть распознанным как приложение PHP.

Также этот файл инструктирует Хероку, какую версию PHP использовать. Если такую инструкцию не указать, то Heroku выберет самую последнюю возможную версию PHP 5.

Устранение проблем установки

Размещая приложение на платформу, я обнаружил конфликт между локальным сервером OpenServer и Heroku. Хостинг для PHP проектов требует установить на компьютер средство по управлению зависимостями со сторонними библиотеками – Композитор.

Установил средство, и обнаружилась проблема. При проверке правильности установки командой в системной консоли composer –V выдало:

«"""" не является внутренней или внешней командой, исполняемой программой или пакетным файлом».

Проблему решило изменение в настройках OpenServer. Файл php.exe при установке Композитор я загрузил в папку \OpenServer\modules\php\PHP-7. А в этой директории OpenServer-а имеются файлы composer.phar и composer.bat устаревшей версии, и они подхватываются в Композитор. Чтобы их не удалять, я их только переименовал, добавив «1».

Полезные команды для сайта на хостинге

Чтобы попасть в корень проекта на хостинге команда: heroku run bash -a=<наименование проекта >.

Удалить проект с хостинга команда: heroku apps:destroy --app <наименование проекта >.

Вывод

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

На основании вышесказанного следует вывод: облачный хостинг Героку – прекрасный ресурс для бесплатного размещения сайтов.

Кипящий чайник с выхлопом клубов пара из носика

Интенсив «Основы программирования»

Бесплатный курс по программированию

Начать обучение

Бесплатный курс по основам PHP

Бесплатный Видеокурс по PHP!

Пример создания PHP-сайта!

Подробнее

Комментарии

аватар
Администратор 06 Июля 2018г, 08ч 53мин

Как удобно работать на Хероку убедился при редактировании моего приложения для Алисы - голосового помощника Яндекса. О навыке для Алисы - https://xn--e1ai0c.xn--p1ai/article.php?id=20 .

Изменил файл index.php в директории на локальном компьютере; закрепил изменения командами 

git add . , git commit -am "; развернул изменения на хостинг - git push heroku master.

И всё! Приложение работает в новой версии.

Оставить свой комментарий:

Важно! Только у зарегистрированных пользователей имеется защита оригинального имени. Поэтому посторонние пользователи не имеют возможности комментировать от их имени. Зарегистрироваться

Имя:
Электронная почта:
Текст комментария:
Введите код с картинки:
картинка
PHP хостинг ХостиЯ