Nanobox
Обзор
Nanobox - это портативная микроплатформа для разработки и развертывания приложений. При локальной работе Nanobox использует Docker для ускорения и настройки виртуальной среды разработки, настроенной в соответствии с вашими потребностями. Когда вы будете готовы к развертыванию на живых серверах, Nanobox возьмет ту же среду и раскрутит ее в своем облачном провайдере, где вы сможете управлять своим приложением и масштабировать его с помощью панели управления Nanobox.
Локальная разработка
Nanobox можно использовать для локальной разработки в любом количестве проектов (не только в PHP). Чтобы начать работать с nanobox, сначала создайте бесплатную учетную запись Nanobox, а затем загрузите и запустите установщик Nanobox. Учетная запись используется только для входа в nanobox с помощью командной консоли. Nanobox запомнит ваши учетные данные, поэтому вам нужно сделать это только один раз. Если вы намерены использовать nanobox только локально, вам не нужно делать ничего другого. Однако тот же логин можно использовать позже, если вы хотите развернуть приложение в реальной среде.
Создание нового проекта
Создайте папку проекта и cd
перейдите в нее:
mkdir nanobox-phalcon && cd nanobox-phalcon
Добавить boxfile.yml
Nanobox использует boxfile.yml
для создания и настройки среды выполнения и среды вашего приложения. В корне вашего проекта создайте boxfile.yml
со следующим:
run.config: engine: php engine.config: runtime: php-7.2 document_root: public extensions: - phalcon extra_steps: #=========================================================================== # PSR компиляция расширений - | ( CURRENT_FOLDER=$(pwd) rm -fR /tmp/php-psr cd /tmp/build git clone --depth=1 https://github.com/jbboehr/php-psr.git cd php-psr set -e phpize ./configure --with-php-config=$(which php-config) make -j"$(getconf _NPROCESSORS_ONLN)" make install cd $CURRENT_FOLDER rm -fR /tmp/php-psr unset CURRENT_FOLDER ) - echo -e 'extension=psr.so' >> "/data/etc/php/dev_php.ini" - echo "alias phalcon=\'phalcon.php\'" >> /data/var/home/gonano/.bashrc
Это говорит Nanobox:
- Используй движок PHP, набор скриптов, которые создают среду выполнения вашего приложения.
- Используй PHP 7.2.
- Установить для корня документа Apache значение
public
. - Включить расширение Phalcon. Nanobox использует простой подход к расширениям, поэтому вам, вероятно, придется включить другие расширения. Более подробную информацию можно найти здесь.
- Установить необходимое расширение PSR
- Добавить bash псевдоним для Phalcon Devtools, чтобы вы могли просто использовать команду
phalcon
.
В зависимости от потребностей вашего приложения может потребоваться добавить дополнительные расширения. Например, вы можете добавить mbcrypt
, igbinary
, json
, session
и redis
. Ваш раздел extensions
в boxfile.yml
будет выглядеть так:
run.config: engine: php engine.config: extensions: - json - mbstring - igbinary - session - phalcon - redis
ПРИМЕЧАНИЕ. Порядок расширений имеет значение. Некоторые расширения не будут загружаться, если их предварительные требования не загружены. Например,
igbinary
должен быть загружен передredis
и т.п.
Добавьте Phalcon Devtools к вашему composer.json
Создайте файл composer.json
в корне проекта и добавьте пакет phalcon/devtools
в требования к разработчику:
{ "require-dev": { "phalcon/devtools": "~3.0.3" } }
ПРИМЕЧАНИЕ. Версия Phalcon Devtools зависит от используемой версии PHP, а также от версии Phalcon.
Запустите Nanobox и создайте новое приложение Phalcon
В корневом каталоге вашего проекта выполните следующие команды, чтобы запустить Nanobox и создать новое приложение Phalcon. Когда Nanobox запускается, движок PHP автоматически установит и включит расширение Phalcon, запустив composer install
который установит Phalcon Devtools, а затем поместит вас в интерактивную консоль в виртуальной среде. Ваш рабочий каталог монтируется в каталог /app
на виртуальной машине, поэтому после внесения изменений они будут отражены как на виртуальной машине, так и в вашем локальном рабочем каталоге.
# запустить nanobox и зайдать в консоль nanobox nanobox run # перейти в каталог /tmp cd /tmp # создать новое приложение phalcon phalcon project myapp # вернуться в каталог /app cd - # скопировать сгенерированное приложение в ваш проект cp -a /tmp/myapp/* . # выйти из консоли exit
Запустить приложение
Перед тем, как запускать новое приложение Phalcon, мы рекомендуем использовать Nanobox для добавления псевдонима DNS. Это добавит запись в ваш локальный hosts
файл, указывающий на вашу среду разработки и предоставляющий удобный способ доступа к вашему приложению из браузера.
nanobox dns add local phalcon.dev
В качестве альтернативы можно использовать IP-адрес контейнера. IP-адрес отображается при первом запуске контейнера. Если вы забыли или не заметили его, на отдельном терминале перейдите в ту же папку, что и ваш проект, и введите
nanobox info local
Вывод этой команды покажет вам все IP-адреса, контейнеры и компоненты, а также пароли к базам данных (если применимо).
Nanobox предоставляет вспомогательный скрипт php-server
, который запускает как Apache (или Nginx в зависимости от конфигурации boxfile.yml
), так и PHP. При передаче с помощью команды nanobox run
он запускает локальную среду разработки и сразу же запускает ваше приложение.
nanobox run php-server
После запуска вы можете посетить свое приложение на https://phalcon.dev
.
Проверьте окружающую среду
Ваша виртуальная среда включает в себя все необходимое для запуска приложения Phalcon.
# зайти в консоль Nanobox nanobox run # проверить версию php php -v # проверить, что phalcon devtools доступны phalcon info # проверить, что ваша локальная кодовая база смонтирована ls # выйти из консоли exit