🌐
Prueba técnica · Carlos García-Blanco

Guía de instalación

Tres formas de arrancar la herramienta según el entorno disponible. Elige la que mejor encaje con tu situación.

01

Docker Recomendado

Un único comando levanta PHP 8.3 + Apache preconfigurado. No requiere instalar nada más allá de Docker.

Prerequisitos

  • Docker Desktop — Mac / Windows: docker.com/products/docker-desktop — Linux: apt install docker.io docker-compose-plugin
  • Make — Mac: ya incluido con Xcode Command Line Tools (xcode-select --install) — Linux: apt install make — Windows: disponible en Git for Windows o WSL2

Pasos

  1. Descarga o clona el proyecto y accede a la carpeta:

    Terminal
    cd project-onetoone
  2. Lanza la instalación completa:

    Terminal
    make install

    Este comando construye la imagen Docker con PHP 8.3 + Apache, configura el VirtualHost apuntando a public/ y arranca el contenedor en segundo plano.

  3. Abre el navegador:

    Acceso http://localhost:8080

Otros comandos disponibles

ComandoAcción
make stopDetiene el contenedor (conserva los datos)
make restartDetiene y vuelve a arrancar
make logsMuestra los logs en tiempo real
make bashAbre una shell dentro del contenedor
make testEjecuta los tests unitarios con PHPUnit
02

PHP servidor integrado

PHP incluye un servidor web de desarrollo. Sin Apache, sin Docker, sin base de datos. Ideal para revisión rápida en local.

Prerequisitos

Si descargaste el ZIP del proyecto, la carpeta vendor/ ya está incluida. Puedes pasar directamente al paso de arranque.
Si clonaste el repositorio de GitHub, vendor/ no se incluye en el repositorio y necesitarás ejecutar composer install primero (ver debajo).

Pasos — con ZIP (sin Composer)

  1. Descomprime el ZIP y accede a la carpeta:

    Terminal
    unzip project-onetoone.zip
    cd project-onetoone
  2. Arranca el servidor integrado de PHP apuntando a public/:

    Terminal
    php -S localhost:8080 -t public/
  3. Abre el navegador:

    Acceso http://localhost:8080

Pasos — desde repositorio (con Composer)

  1. Instala Composer si no lo tienes: getcomposer.org/download

  2. Instala las dependencias PHP (solo PHPUnit para tests, sin nada en producción):

    Terminal
    composer install
  3. Arranca el servidor:

    Terminal
    php -S localhost:8080 -t public/
  4. Acceso http://localhost:8080

El servidor integrado de PHP procesa una sola solicitud a la vez. Es suficiente para revisión y pruebas, pero no está pensado para uso en producción.

03

Apache en servidor (sin puerto especial)

Para desplegar en un servidor Debian/Ubuntu con Apache ya instalado. El acceso es por dominio o IP directamente, sin especificar puerto.

Prerequisitos

  • Servidor Debian / Ubuntu (o compatible)
  • Apache2 + PHP 8.3 Se instala en el paso 1.
  • Composer Se instala en el paso 3.

Pasos

  1. Instala Apache y PHP:

    Terminal — como root o con sudo
    apt update
    apt install php8.3 php8.3-cli libapache2-mod-php8.3 apache2
    a2enmod rewrite
    systemctl restart apache2
  2. Copia el proyecto al servidor:

    Terminal
    cp -r project-onetoone /var/www/onetoone
  3. Instala Composer y las dependencias del proyecto:

    Terminal
    cd /var/www/onetoone
    curl -sS https://getcomposer.org/installer | php
    php composer.phar install --no-dev

    --no-dev excluye PHPUnit y otras herramientas de desarrollo. Solo se instala lo necesario para producción.

  4. Crea el VirtualHost de Apache:

    /etc/apache2/sites-available/onetoone.conf
    <VirtualHost *:80>
        ServerName tudominio.com
        DocumentRoot /var/www/onetoone/public
    
        <Directory /var/www/onetoone/public>
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>

    El DocumentRoot apunta a public/, no a la raíz del proyecto. Esto mantiene src/, data/ y vendor/ fuera del alcance del servidor web.

  5. Activa el sitio y aplica permisos:

    Terminal
    a2ensite onetoone.conf
    systemctl reload apache2
    chown -R www-data:www-data /var/www/onetoone
  6. Accede desde el navegador sin especificar puerto:

    Acceso http://tudominio.com o bien http://IP-del-servidor

Comandos Make — referencia completa

ComandoDescripciónRequiere Docker
make install Construye la imagen y arranca el contenedor. Primera instalación.
make start Arranca el contenedor si ya estaba construido previamente.
make stop Detiene el contenedor sin eliminarlo.
make down Detiene y elimina el contenedor.
make restart Equivale a make down && make start.
make logs Muestra el log de Apache en tiempo real (Ctrl+C para salir).
make bash Abre una shell interactiva dentro del contenedor.
make ps Muestra el estado de los contenedores.
make test Ejecuta los 26 tests unitarios con PHPUnit (requiere PHP local). no

Estructura del proyecto

Solo public/ es accesible desde el navegador. El resto del código está fuera del webroot por diseño.

Árbol de carpetas
project-onetoone/
├── public/                  ← webroot (único directorio expuesto)
│   ├── index.php            ← landing / página de inicio
│   ├── view.php             ← vista de compañías
│   ├── users.php            ← vista de asesores
│   ├── api.php              ← API REST JSON
│   ├── api-docs.php         ← documentación de la API
│   ├── docs/
│   │   └── instalacion.php  ← esta página
│   ├── css/                 ← hojas de estilo
│   └── js/                  ← scripts de cliente
│
├── src/                     ← código PHP (no expuesto)
│   ├── Controllers/
│   ├── Services/
│   ├── Repositories/
│   ├── Helpers/
│   └── Views/partials/
│
├── data/                    ← datos estáticos (simulan la BD)
├── tests/                   ← tests unitarios PHPUnit
├── vendor/                  ← dependencias Composer
├── docker/                  ← configuración de Apache para Docker
├── docker-compose.yml
├── Makefile
└── composer.json