Бесплатный хостинг от heroku для микропроектов

heroku logo

В качестве хостинга выбран heroku, т.к это отличная площадка для микро проектов. Здесь есть масса современных инструментов, которые можно попробовать совершенно бесплатно. А вообще heroku это облачная PaaS платформа (платформа как услуга) с поддержкой популярных языков программирования. Когда-то давно был только Ruby, сейчас к нему добавились: Java, Node.js, Scala, Clojure, Python и конечно же PHP. На серверах Heroku используются Debian и Ubuntu.

Для загрузки проекта heroku предоставляет удобные инструменты, на данный момент их 3 и это более чем достаточно. С двумя из трех многие давно знакомы, это GitHub и Dropbox. Третий инструмент Heroku Toolbelt, пожалуй, самый необходимый инструмент для тесной работы с платформой, позволяет создавать проекты, загружать исходный код, смотреть и настраивать конфиг, отдает логии и многое другое.

GitHub и Dropbox являются больше менеджерами загрузки проектов, с их помощью можно загружать проект на heroku, но инструментов для управления они не предоставляют. Если плотно работаете с GitHub, то можете настроить автоматический деплой проекта на heroku. Загрузку из Dropbox можно сделать только из веб интерфейса (dashboard) проекта на вкладке Deploy.

Инструмент Heroku Toolbelt, устанавливается в систему и позволяет из командной строки управлять приложениями, размещенными на платформе. После установки необходимо ввести свои учетные данные и пользоваться. Когда heroku предложить сгенерировать SSH ключ, надо согласиться.

<code class="bash">heroku login
>Enter your Heroku credentials.
>Email: user@example.com
>Password: ***
>Could not find an existing public key.
>Would you like to generate one? [Yn]
>Generating new SSH public key.</code>

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

<code class="bash">git init
heroku git:remote -a SomeProject</code>

инциализация репозитория в папке разрабатываемого проекта и привязка файлов к репозиторию some-project на сервере

<code class="bash">git remote –v</code></code>

для проверки, что репозиторий привязан

<code class="bash">heroku apps:create [name]
</code>

создает приложение и привязывает текущую папку к репозиторию проекта

<code class="bash">heroku config</code>

Выводит конфигурации для проекта

<code class="bash">heroku logs -n 1500</code>

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

Загрузка проекта на сервер через git выполняется комндами

<code class="bash">git add .
git commit -am Comment
git push heroku master</code>

Теперь проект загружен на сервер и его можно открыть по адресу some-project.herokuapp.com, заменив some-project на имя которое сгенерировал heroku или какое вы придумали сами. Во время загрузки heroku проверить наличие фалов composer.lock и Procfile. Все зависимости прописанные в composer буду установлены сами кроме ветки "require-dev". Сразу хочу сказать, что если требуется включить некоторые расширения PHP то их проще всего прописать в composer, например для расширений intl и mbstring прописать

<code class="bash">"require": {
    "ext-intl": "*",
    "ext-mbstring": "*"
}</code>

Помимо расширений есть возможность выбрать версию PHP или HHVM, более подробно можно почитать здесь.

Файл Procfile позволяет настроить типы процессов, например тип web может быть запущен с командами heroku-php-apache2 (for PHP & Apache2) или heroku-php-nginx (for PHP & Nginx), аналогично для hhvm.

Стоит сказать и об ограничениях платформы heroku

Проект погружается в "сон", если в течении часа к нему не было обращений. После обращения проект просыпается. Репозиторий не может превышать 1 Гб. Есть еще масса различных ограничен, которые не сильно чувствительны к микропроектам, можно ознакомиться здесь.

comments powered by HyperComments