Entornos

Resumen
Devilbox is a modern and highly customizable dockerized PHP stack supporting full LAMP and MEAN and running on all major platforms. El objetivo principal es fácilmente cambiar y combinar cualquier versión requerida para el desarrollo local. Soporta un número de proyectos ilimitado para vhosts, certificados SSL y registros DNS que se crean automáticamente. Se admiten proxies inversos por proyecto para garantizar que también se pueda acceder a un servidor de escucha como NodeJS. Las herramientas de desarrollo populares y de correo electrónico también estarán a su servicio. No será necesaria su configuración, ya que todo está preconfigurado.
Además, Devilbox proporciona un entorno de desarrollo idéntico y reproducible para diferentes sistemas operativos anfitriones.
Este ejemplo usará phalcon
para instalar Phalcon desde el contenedor PHP Devilbox. Una vez completados los pasos listados a continuación, tendrá una configuración funcional de Phalcon lista para ser servida a través de http y https.
Configuración
Se puede usar la siguiente configuración:
Setting |
Valor |
Project name |
my-phalcon |
VirtualHost directory |
/shared/httpd/my-phalcon |
Base de Datos |
n.a. |
TLD_SUFFIX |
loc |
Project URL |
http://my-phalcon.loc , https://my-phalcon.loc |
- Dentro del contenedor PHP Devilbox, los proyectos siempre están en
/shared/httpd/
.
- En su sistema operativo anfitrión, por defecto los proyectos están en
./data/www/
dentro del directorio git de Devilbox. Esta ruta puede ser cambiada mediante HOST_PATH_HTTPD_DATADIR
.
Activación
Su entorno estará listo en seis sencillos pasos:
- Introducir el contenedor PHP
- Crear un nuevo directorio VirtualHost
- Instalar Phalcon
- Enlace simbólico al directorio webroot
- Configurar registro DNS
- Visitar
http://my-phalcon.loc
en su navegador
- (Nginx) Crear archivo de configuración personalizado vhost
Introducir Contenedor PHP
Todo el trabajo se realizará dentro del contenedor PHP ya que ofrece todas las herramientas necesarias. Vaya al directorio git de Devilbox y ejecute ./shell.sh
(o shell.bat
en Windows) para entrar al contenedor PHP en ejecución.
Crear Nuevo Directorio Vhost
El directorio vhost define el nombre bajo el cual estará disponible su proyecto. (<vhost dir>.TLD_SUFFIX
será la URL final).
Instalar Phalcon
Vaya a su recién creado directorio vhost e instale Phalcon con el cliente phalcon
.
La estructura del directorio se ve así después de la instalación:
[email protected] in /shared/httpd/my-phalcon $ tree -L 1
.
└── phalconphp
1 directory, 0 files
Enlace Simbólico al Webroot
Es importante enlazar simbólicamente el actual directorio webroot a htdocs
. El servidor web espera que cada document root de un proyecto esté en <vhost dir>/htdocs/
. Esta es la ruta donde servirá los ficheros. Esta también es la ruta donde debe existir el punto de entrada de su aplicación (normalmente index.php
).
Sin embargo algunos frameworks, almacenan ficheros y contenido en directorios anidados de niveles desconocidos. Por lo tanto, es imposible establecer esto como preconfiguración en el entorno. Por eso tendrá que establecer manualmente un enlace simbólico a la ruta esperada que requiera su framework.
La estructura del directorio se ve así después de la instalación:
[email protected] in /shared/httpd/my-phalcon $ tree -L 1
.
├── phalconphp
└── htdocs -> phalconphp/public
2 directories, 0 files
Como puede ver en el listado anterior, la carpeta htdocs
requerida por el servidor web está apuntando ahora al punto de entrada de su framework.
NOTE: When using Docker Toolbox, you need to explicitly allow the usage of symlinks.
Registro DNS
If you have Auto DNS configured already, you can skip this section, because DNS entries will be available automatically by the bundled DNS server.
If you do not have Auto DNS configured, you will need to add the following line to your host operating system /etc/hosts
file (or C:\Windows\System32\drivers\etc
on Windows):
Abrir Navegador
Abra su navegador y vaya a http://my-phalcon.loc
o https://my-phalcon.loc
Crear Fichero de Configuración Personalizado Vhost (Sólo Nginx)
Por defecto las rutas no funcionarán si usa Nginx. Para solucionarlo, necesitará crear una configuración personalizada vhost.
En su carpeta de proyecto, necesitará crear una carpeta llamada .devilbox
, a no ser que cambie HTTPD_TEMPLATE_DIR
en .env
Copie la configuración por defecto de ./cfg/vhost-gen/nginx.yml-example-vhost
a ./data/www/my-project/.devilbox/nginx.yml
Edite con cuidado el fichero nginx.yml y cambie:
try_files $uri $uri/ /index.php$is_args$args;
a
try_files $uri $uri/ /index.php?_url=$uri&$args;
and
location ~ \.php?$ {
a
location ~ [^/]\.php(/|$) {
Guarde el fichero como nginx.yml
y asegúrese de no usar ningún tabulador en el fichero o devilbox no usará la configuración personalizada. Puede usar yamllint nginx.yml
desde dentro del shell de Devilbox para comprobar el fichero antes de reiniciar devilbox.
Referencias