Entornos Nanobox

Preámbulo
Nanobox es una micro plataforma portable, para desarrollar y desplegar aplicaciones. Cuando trabajamos localmente, Nanobox utiliza Docker de girar y configurar un entorno de desarrollo virtual configurado a sus necesidades específicas. Cuando esté listo para implementar servidores en vivo, Nanobox tomará ese mismo entorno y los girará para arriba en su proveedor de la nube de elección, donde puede gestionar y ampliar su aplicación a través de la consola de Nanobox.
Desarrollo local
Nanobox se puede utilizar para el desarrollo local en cualquier número de proyectos (no sólo en PHP). Para comenzar a trabajar con Nanobox, primero deberá crear una cuenta gratuita en Nanobox, luego descargar y ejecutar el instalador de Nanobox. La cuenta se usa sólo para iniciar sesión en nanobox usando el comando de consola. Nanobox recordará sus credenciales por lo que sólo tendrá que hacerlo una vez. Si su intención es usar nanobox localmente, no necesita hacer otra cosa. Sin embargo, el mismo inicio de sesión puede utilizarse más tarde si desea desplegar su aplicación en un entorno en vivo.
Crear un Nuevo Proyecto
Crear una carpeta de proyecto y utilizar el comando cd
en él:
mkdir nanobox-phalcon && cd nanobox-phalcon
Añadir un boxfile.yml
Nanobox utiliza el archivo boxfile.yml
para construir y configurar su aplicación en tiempo de ejecución y entorno. En la raíz de su proyecto, crear un archivo boxfile.yml
con lo siguiente:
run.config:
engine: php
engine.config:
runtime: php-7.2
document_root: public
extensions:
- phalcon
extra_steps:
#===========================================================================
# PSR extension compilation
- |
(
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
Esto le indicará a Nanobox:
- Utilizar el motor de PHP, un conjunto de scripts que se crean en tiempo de ejecución de la aplicación.
- Utilizar PHP 7.2.
- Establezca la raíz de documento de Apache en
public
.
- Incluir la extensión de Phalcon. Nanobox adopta un enfoque básico para extensiones, así que es probable que necesite incluir otras extensiones. Puede encontrar más información aquí.
- Instala la extensión PSR necesaria
- Agregar un alias al bash para Phalcon Devtools por lo que se puede usar el comando
phalcon
.
Dependiendo de las necesidades de su aplicación, puede que necesite añadir extensiones adicionales. Por ejemplo, podría querer añadir mbcrypt
, igbinary
, json
, session
y redis
. La sección extensions
del boxfile.yml
se verá así:
run.config:
engine: php
engine.config:
extensions:
- json
- mbstring
- igbinary
- session
- phalcon
- redis
NOTA El orden de las extensiones si importa. Ciertas extensiones no se cargarán si no se cargan sus prerequisitos. Por ejemplo igbinary
tiene que ser cargado antes de redis
etc.
Cree un archivo composer.json
en la raíz de su proyecto y agregue el paquete de phalcon/devtools
a sus requisitos de dev:
{
"require-dev": {
"phalcon/devtools": "~3.0.3"
}
}
Nota: la versión de Phalcon Devtools depende de qué versión PHP y Phalcon que estés utilizando.
Iniciar Nanobox y generar una nueva aplicación de Phalcon
Desde la raíz de su proyecto, ejecute los siguientes comandos para iniciar Nanobox y generar una nueva aplicación de Phalcon. Cuando Nanobox inicia, el motor de PHP automáticamente instalará y habilitará la extensión de Phalcon, ejecutar un composer install
para instalar Phalcon Devtools, luego lo dejará en una consola interactiva dentro del entorno virtual. El directorio de trabajo está montado en el directorio /app
de la máquina virtual, los cambios que se hagan, se verán reflejados en la VM y en el directorio de trabajo local.
# iniciar nanobox e ingresar a la consola
nanobox run
# cambiar al directorio /tmp
cd /tmp
# generar una nueva aplicación Phalcon
phalcon project myapp
# volver a cambiar al directorio /app
cd -
# copiar la aplicación generada en su projecto
cp -a /tmp/myapp/* .
# sailr de la consola
exit
Ejecutar la aplicación
Antes de realmente ejecutar su nueva aplicación de Phalcon, recomendamos utilizar Nanobox para añadir un alias de DNS. Esto añade una entrada al archivo local hosts
apuntando a su entorno dev y proporciona una manera conveniente de acceder a la aplicación desde un navegador.
nanobox dns add local phalcon.dev
También puede utilizar la dirección IP de su contenedor. La dirección IP se muestra cuando se ejecuta por primera vez el contenedor. Si lo olvidó o no lo notó, en un terminal separado, navega a la misma carpeta que donde esta tu proyecto y escribe
La salida de este comando le mostrará todas las direcciones IP de sus contenedores/componentes así como contraseñas a bases de datos (si corresponde).
Nanobox proporciona un script de ayuda php-server
que inicia tanto Apache (o Nginx dependiendo de su configuración de boxfile.yml
) y PHP. Cuando se pasa el comando nanobox run
, iniciará el entorno dev local y ejecutar inmediatamente su aplicación.
Una vez en funcionamiento, puede visitar su aplicación en https://phalcon.dev
.
Revisar el entorno
El entorno virtual incluye todo que lo necesario para ejecutar su aplicación Phalcon.
# Ingresar a la consola de Nanobox
nanobox run
# Comprobar la versión de PHP
php -v
# Comprobar que versión de Phalcon Devtools esta disponible
phalcon info
# Comprobar que tu código base este montado
ls
# Salir de la consola
exit