Cómo Instalar y Configurar un Servidor LAPP en Linux y Windows

El siguiente tutorial te guiará en la configuración de un servidor local LAPP (Linux, Apache, PostgreSQL, PHP) en sistemas operativos Linux y Windows. El objetivo es que puedas utilizar esta infraestructura para el desarrollo de aplicaciones web de manera local, como si estuvieras en un entorno de producción. A continuación, te muestro cómo configurar cada componente y crear un entorno de desarrollo seguro y funcional.

Paso 1: Instalación de Apache, PostgreSQL y PHP en Linux

  1. Actualizar los repositorios: Antes de empezar, actualiza los paquetes de tu sistema operativo.
    sudo apt update
    sudo apt upgrade
  2. Instalar Apache: Apache es el servidor web que se encargará de entregar el contenido a los usuarios. Ejecuta el siguiente comando:
    sudo apt install apache2

    Una vez instalado, verifica su funcionamiento accediendo a http://localhost en tu navegador. Deberías ver la página de inicio de Apache.

  3. Instalar PostgreSQL: PostgreSQL será nuestra base de datos para gestionar la información. Instálalo con:
    sudo apt install postgresql postgresql-contrib

    Luego, inicia el servicio con:

    sudo systemctl start postgresql
    sudo systemctl enable postgresql
  4. Configurar PostgreSQL: Crea un usuario y una base de datos de prueba.
    sudo -i -u postgres
    createuser --interactive
    createdb mi_basededatos

    Sal del entorno de PostgreSQL con exit.

  5. Instalar PHP: PHP es el lenguaje de servidor que nos permitirá interactuar con Apache y PostgreSQL.
    sudo apt install php libapache2-mod-php php-pgsql

    Reinicia Apache para que se carguen los módulos de PHP:

    sudo systemctl restart apache2
  6. Configurar Virtual Hosts: Crea un archivo de configuración en /etc/apache2/sites-available/mi_sitio.confcon el siguiente contenido:
    <VirtualHost *:80>
        ServerName mi_sitio.local
        DocumentRoot /var/www/mi_sitio
        <Directory /var/www/mi_sitio>
            AllowOverride All
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/mi_sitio_error.log
        CustomLog ${APACHE_LOG_DIR}/mi_sitio_access.log combined
    </VirtualHost>

    Habilita el nuevo virtual host:

    sudo a2ensite mi_sitio.conf
    sudo systemctl reload apache2

Paso 2: Instalación de Apache, PostgreSQL y PHP en Windows (usando XAMPP)

  1. Descargar XAMPP: XAMPP es un paquete que incluye Apache, MySQL (puede ser sustituido por PostgreSQL) y PHP. Descárgalo desde Apache Friends.
  2. Instalar XAMPP: Durante la instalación, selecciona los componentes Apache y PHP. Una vez completado, abre el panel de control de XAMPP.
  3. Configurar PostgreSQL en Windows:
    • Descarga el instalador de PostgreSQL desde su sitio oficial: PostgreSQL.
    • Durante la instalación, elige el directorio de instalación y crea un usuario con rol de administrador (por ejemplo, postgres).
  4. Configurar PHP para conectar con PostgreSQL: Edita el archivo php.ini en el directorio de instalación de XAMPP (por defecto C:\xampp\php\) y descomenta la línea:
    extension=pgsql

    Reinicia Apache desde el panel de control de XAMPP para aplicar los cambios.

  5. Crear Virtual Hosts en Apache para Windows: Abre el archivo httpd-vhosts.conf ubicado en C:\xampp\apache\conf\extra\ y añade la siguiente configuración:
    <VirtualHost *:80>
        DocumentRoot "C:/xampp/htdocs/mi_sitio"
        ServerName mi_sitio.local
        <Directory "C:/xampp/htdocs/mi_sitio">
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>

    Guarda el archivo y reinicia Apache.

  6. Probar la configuración: Crea un archivo llamado index.php en la carpeta C:\xampp\htdocs\mi_sitio con el siguiente contenido:
    <?php
    echo "¡Servidor LAPP en funcionamiento!";
    ?>

    Luego, accede a http://mi_sitio.local desde tu navegador.

Paso 3: Configuración de Seguridad en Apache y PostgreSQL

  1. Configurar Firewall en Linux: Si usas ufw, abre los puertos para Apache y PostgreSQL.
    sudo ufw allow 'Apache Full'
    sudo ufw allow 5432/tcp
    sudo ufw enable
  2. Configurar Contraseñas en PostgreSQL: Cambia la contraseña del usuario postgres para aumentar la seguridad:
    ALTER USER postgres PASSWORD 'mi_contraseña_segura';

Restringir Acceso a Apache en Linux y Windows

La seguridad es un aspecto clave al configurar cualquier servidor web. Tanto en Linux como en Windows, se puede restringir el acceso a archivos y directorios sensibles en Apache para evitar que se expongan datos críticos del sistema o de la aplicación.


Restringir Acceso a Directorios y Archivos en Linux

  1. Abrir el archivo de configuración de Apache: El archivo de configuración principal de Apache en Linux suele encontrarse en /etc/apache2/apache2.conf o en los archivos de sitios virtuales dentro de /etc/apache2/sites-available/. Puedes editar el archivo con el siguiente comando:
    sudo nano /etc/apache2/apache2.conf
  2. Restringir acceso a directorios sensibles: Añade directivas para denegar el acceso a directorios críticos, como /etc/:
    <Directory /etc/>
        Require all denied
    </Directory>

    Esto evitará que los usuarios accedan a cualquier archivo en /etc/ a través del navegador.

  3. Proteger archivos ocultos como .htaccess: Para proteger archivos como .htaccess, añade lo siguiente al archivo de configuración:
    <FilesMatch "^\.ht">
        Require all denied
    </FilesMatch>
  4. Reiniciar Apache: Después de realizar las modificaciones, reinicia Apache para que los cambios tengan efecto:
    sudo systemctl restart apache2

Restringir Acceso a Directorios y Archivos en Windows

En Windows, los pasos son similares, pero con algunas diferencias en la ubicación de los archivos. Apache en Windows utiliza los mismos archivos de configuración, pero con rutas diferentes.

  1. Abrir el archivo de configuración de Apache en Windows: El archivo de configuración de Apache para XAMPPen Windows suele estar en la carpeta C:\xampp\apache\conf\ o en C:\xampp\apache\conf\extra\ si usas archivos de configuración adicionales.Abre el archivo httpd.conf o httpd-vhosts.conf con cualquier editor de texto (como Notepad++):
    C:\xampp\apache\conf\httpd.conf
  2. Restringir acceso a directorios críticos en Windows: Al igual que en Linux, puedes denegar el acceso a directorios específicos. Por ejemplo, para proteger la carpeta de configuración de Apache:
    <Directory "C:/xampp/apache/conf/">
        Require all denied
    </Directory>

    Esto evitará que se acceda al contenido de la carpeta de configuración del servidor Apache.

  3. Proteger archivos sensibles como .htaccess: Para restringir el acceso a los archivos .htaccess y archivos de configuración ocultos:
    <FilesMatch "^\.ht">
        Require all denied
    </FilesMatch>
  4. Reiniciar Apache en Windows: Después de hacer las modificaciones, es necesario reiniciar el servidor Apache desde el Panel de Control de XAMPP o usando el siguiente comando en el símbolo del sistema:
    C:\xampp\apache\bin\httpd.exe -k restart

Conclusión

Con estos pasos, ahora tienes un servidor LAPP completamente configurado en Linux y Windows, listo para alojar y desarrollar aplicaciones web. No olvides siempre actualizar tus aplicaciones y mantener buenas prácticas de seguridad.

Al configurar servidores web en Linux y Windows, es fundamental asegurarse de que los archivos y directorios sensibles estén protegidos adecuadamente. Con estas configuraciones, puedes limitar el acceso no autorizado y proteger mejor tu servidor Apache. Los pasos anteriores te permitirán restringir el acceso tanto en sistemas Linux como Windows, utilizando configuraciones equivalentes y adaptadas a cada sistema.

Con estas medidas de seguridad, tu servidor local LAPP estará mucho más protegido, ya sea que trabajes en Linux o en Windows.

Views: 4

0 Comments

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>