logo
Secciones

Entradas del blog


Usar PHP desde Docker | Fedora 42

453

Contexto:

XAMPP era el entorno de desarrollo para PHP favorito de muchos, ya que incluía en empaquetados Base de datos, PHP, Perl, phpMyAdmin para la gestión de base de datos.

Sin embargo, XAMPP se quedó hasta la versión 8.2.12, aparentemente está descontinuado, por lo que es necesario buscar nuevas formas de probar y desarrollar PHP

Aquí entra en juego Docker, la idea es sencilla, instalar docker en fedora, crear una carpeta donde estarán todos los archivos en el host, y enviarlos a docker, abrir el enlace con la url del proyecto en cuestión:

Instalación de Docker

La instalación de docker y configuración, viene en otro tutorial para no extender éste tutorial, por lo que, se ver el siguiente link: Tutorial Instalar Docker Fedora

Arquitectura para proyecto de PHP con Docker

La idea es la siguiente: Docker tendrá instalado php 8.4, para éste ejemplo, pero puede ser cualquier versión que se requiera. Desde el host editar y modificar los archivos del proyecto, incluso contar con la base de datos instalada en el host.

Montar el proyecto en docker, conforme se requiera e ir modificando:

Crear la estructura del proyecto en directorios:

proyecto/
├── docker/
│   ├── Dockerfile
├── docker-compose.yml
├── public/            # directorio para el proyecto
|   ├── index.php

Ir al directorio donde estará ubicado el proyecto, ejemplo Carpeta Personal/www y crear el primer directorio llamado proyecto, o bien asignar el nombre que se desee:

mkdir proyecto
cd proyecto
mkdir docker
mkdir public

Dentro del directorio proyecto crear el siguiente archivo: docker-compose.yml

services:
  phpweb:
    build:
      context: .
      dockerfile: docker/Dockerfile
    container_name: php84-clase
    volumes:
      - ./public:/var/www/html
    network_mode: "host"

Dentro del directorio docker crear el archivo Dokerfile

FROM php:8.4-apache

# Instala extensiones necesarias
RUN docker-php-ext-install pdo pdo_mysql mysqli

# Cambiar Apache para escuchar en el puerto 81
RUN sed -i 's/80/81/g' /etc/apache2/ports.conf /etc/apache2/sites-available/000-default.conf

# Habilita mod_rewrite si lo necesitas
RUN a2enmod rewrite

# Asegura que el contenedor tenga permisos correctos
RUN chown -R www-data:www-data /var/www/html

# Copia inicial del código (será sobrescrito por volumen)
COPY ./public /var/www/html

Y finalmente del directorio public, crear un archivo de prueba index.php cuál contendrá lo que se requiera de php, y en este directorio contendrá todo lo necesario para el proyecto que será montado directo en docker:

<?php


echo 'Hola mundo desde PHP y Docker';

Levantar Docker

Levantar el servicio, sólo si el servicio de docker no se inicia con el sistema:

sudo systemctl start docker

Iniciar o instalar el contenedor

Éste comando se realiza desde el directorio principal, en éste ejemplo se llama proyecto:

docker compose up --build

Y listo, se tiene un entorno de desarrollo de PHP, cualquier comentario, favor de hacerlo saber.

Comentarios:

Conoce la red social linuxClick
Redes sociales
Accesos directos