Skip to content

Latest commit

 

History

History
179 lines (126 loc) · 4.47 KB

Ejemplo-DockerCompose-php.md

File metadata and controls

179 lines (126 loc) · 4.47 KB

Entorno de Desarrollo para php usando Docker 🐳

Entorno de Desarrollo para php usando Docker 🐳

Quieres aprender php, pero las configuraciones te han abrumado y el deseo de aprender van mermando. No, no detengas tu aprendizaje, siempre existe una solución a los problemas. Instalar php, configurar un servidor web en Windows es muy sencillo, en Linux y macOS es otra situación. Debes conocer sobre la terminal, un editor de código, vim, nano, ser avanzado... y mucho más.

La herramienta que vamos a utilizar y que permite trabajar con php, un servidor web y la terminal es Docker.

Docker: Es una plataforma de software que permite crear, probar e implementar aplicaciones rápidamente.

Docker-compose: Es una herramienta para definir y ejecutar aplicaciones; es multicontenedor que permite simplificar el uso de Docker a partir de archivos YAML, de esta forma es más sencillo generar contendores que se relacionen entre sí, conectarlos, habilitar puertos, volúmenes, etc.

Servidor web: software que permite a los usuarios ver una página web en su navegador. Servidores más utilizados Apache y Nginx.

Configuración de docker-compose.yml

Crear el archivo docker-compose.yml con la siguiente configuración:

# Los archivos docker-compose.yml son versionados, lo que significa que es muy importante indicar la versión de las instrucciones que queremos darle.
version: "3.3"

# Servidor nginx
services:
  web:
  	# versión
    image: nginx:latest
    # Puerto 8080 
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html
      - ./default.conf:/etc/nginx/conf.d/default.conf
    links:
      - php-fpm

  # Configuración de php-fpm
  php-fpm:
    image: php:8-fpm
    volumes:
      - ./src:/var/www/html

Creamos un nuevo archivo con el nombre default.conf con la siguiente configuración, al nivel que docker-compose.yml.

# No te preocupes, por las configuraciones. 
server {
  index index.php index.html;
  server_name phpfpm.local;
  error_log  /var/log/nginx/error.log;
  access_log /var/log/nginx/access.log;
  root /var/www/html;

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass php-fpm:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
  }
}

Comandos de docker-compose

Crea e Iniciar el contenedor:

# Crea e inicia el contenedor
# -d inicia los contenedores en segundo plano y los deja en ejecución.
➜ docker-compose up -d
# Crea e inicia el contenedor en primer plano
➜ docker-compose up

Para que la interacción sea efectiva y el aprendizaje una experiencia positiva, los archivos .php se crean dentro del directorio src.

# directorio principal
├── docker-php
│   ├── default.conf
│   ├── docker-compose.yml
│   ├── README.md
│   └── src       # Directorio
│       ├── holi.php
└──     └── index.php

# Dentro de la carpte src, crear el archivo index.php

Crear el archivo index.php en el directorio src,

# contenido de index.php
<?php
  echo phpinfo();

Ir al navegador favorito, visitar el siguiente enlace http://localhost:8080. Surge algún un error con la conexión al servidor local, agregar en la dirección php-fpm. a localhost:8080. La dirección queda de la siguiente forma:

http://php-fpm.localhost:8080/

Listo, tienes corriendo tu primer servidor nginx, junto a php utilizando docker-compose.

Interactuar con la terminal de docker-compose

Ingresar a bash de docker-compose

➜ docker-compose exec php-fpm bash

Crea el archivo variables.php

# crear archivo
touch variables.php

variables.php

<?php
// Definir variables
$numero_1 = 8;
$numero_2 = 7;

// Definir constantes
define("NUMERO_PI", 3.14);
// define("NUMERO_PI", 14);

echo NUMERO_PI;

echo "\n";

echo $numero_1 + $numero_2;

echo "\n";%    

Ejecutamos el archivo php en terminal:

php variables.php

Con el comando exit, cerramos bash.

Detener el contenedor que se ejecuta en segundo plano

# Segundo plano
docker-compose down

Detener contenedor en primer plano

# Primer plano
ctl + c

Utilizar Docker para aprender un lenguaje de programación, es una oportunidad de no para de aprender.

Nunca pares de aprender