---
title: "Cómo aislar aplicaciones web con entornos virtuales en Linux"
description: "Instalar múltiples aplicaciones web en un servidor Linux sin que unas afecten a otras es posible gracias a los entornos virtuales . Esta técnica te permite ejecutar diferentes versiones de PHP, Python..."
url: https://www.puntocomunica.com/como-aislar-aplicaciones-web-con-entornos-virtuales-en-linux/
date: 2026-01-03
modified: 2026-01-02
author: "redacción puntocomunica"
image: https://www.puntocomunica.com/wp-content/uploads/2026/01/entornos-virtuales.jpg
categories: ["Innovación, Internet y Tecnología"]
tags: ["entornos virtuales", "internet y tecnología", "odoo", "python"]
type: post
lang: es
---

# Cómo aislar aplicaciones web con entornos virtuales en Linux

Instalar múltiples aplicaciones web en un servidor Linux sin que unas afecten a otras es posible gracias a los **entornos virtuales**. Esta técnica te permite ejecutar diferentes versiones de PHP, Python o Node.js simultáneamente, manteniendo cada proyecto completamente aislado. Veamos sus ventajas:

**Aislamiento de dependencias**: Cada CMS puede tener sus propias versiones de librerías, PHP, Python o Node.js sin conflictos entre proyectos. Por ejemplo, puedes tener WordPress con PHP 7.4 y Drupal con PHP 8.2 simultáneamente.

**Seguridad mejorada**: Al aislar cada aplicación, si un CMS se ve comprometido, el impacto no afecta directamente al sistema host ni a otros proyectos.

**Facilidad de mantenimiento**: Puedes actualizar, probar o eliminar un CMS sin afectar el resto del sistema. Es como tener varios servidores en uno.

**Reproducibilidad**: Puedes replicar el mismo entorno en producción, evitando el clásico problema de «en mi máquina funciona».

### Opciones principales para Linux

**Docker/Contenedores**: La opción más popular actualmente. Cada CMS corre en su propio contenedor con su stack completo (web server, base de datos, PHP/Python). Herramientas como Docker Compose facilitan la orquestación.

**Máquinas virtuales (VirtualBox, KVM)**: Más pesadas pero con aislamiento completo a nivel de sistema operativo. Útiles si necesitas diferentes distribuciones de Linux.

**Entornos virtuales de Python (venv, virtualenv)**: Específicos para CMS basados en Python como Django CMS o Wagtail. Aislan las dependencias de Python.

**Chroot/Systemd-nspawn**: Soluciones más ligeras que VMs pero con buen aislamiento.

### Ejemplo práctico con Docker

Para instalar WordPress en un entorno aislado, crearías un `docker-compose.yml`:

```
version: '3'
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_PASSWORD: ejemplo123
    volumes:
      - ./wordpress:/var/www/html
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: ejemplo123
```

Con un simple `docker-compose up -d` tendrías WordPress corriendo de forma aislada.

### Otro ejemplo: instalar Odoo 18 en un entorno virtual

#### 1. Preparar el sistema

Primero, asegúrate de tener las dependencias necesarias:

bash

```
sudo apt update
sudo apt install python3-dev python3-pip python3-venv \
  libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev \
  libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev \
  libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev \
  libfribidi-dev libxcb1-dev libpq-dev nodejs npm git
```

#### 2. Crear estructura de directorios

bash

```
mkdir -p ~/odoo18
cd ~/odoo18
```

#### 3. Crear el entorno virtual

```
python3 -m venv venv
source venv/bin/activate
```

Verás que tu prompt cambia, mostrando `(venv)` al inicio, indicando que el entorno está activo.

#### 4. Descargar Odoo 18

```
git clone https://github.com/odoo/odoo.git --depth 1 --branch 18.0 odoo18-src
cd odoo18-src
```

#### 5. Instalar dependencias de Python

```
pip install --upgrade pip
pip install wheel
pip install -r requirements.txt
```

#### 6. Instalar wkhtmltopdf (para PDFs)

```
sudo apt install wkhtmltopdf
```

#### 7. Crear base de datos PostgreSQL

```
sudo -u postgres createuser -s $USER
createdb odoo18
```

#### 8. Crear archivo de configuración

Crea un archivo `odoo18.conf`:

```
nano ~/odoo18/odoo18.conf
```

Con este contenido:

```
[options]
admin_passwd = admin_password_seguro
db_host = localhost
db_port = 5432
db_user = tu_usuario
db_password = False
addons_path = /home/tu_usuario/odoo18/odoo18-src/addons
http_port = 8069
logfile = /home/tu_usuario/odoo18/odoo18.log
```

**Nota importante**: Cambia `http_port` si tu Odoo global usa el 8069. Usa 8070, 8071, etc.

#### 9. Ejecutar Odoo 18

```
cd ~/odoo18/odoo18-src
./odoo-bin -c ~/odoo18/odoo18.conf
```

O con el entorno virtual:

```
source ~/odoo18/venv/bin/activate
python3 ~/odoo18/odoo18-src/odoo-bin -c ~/odoo18/odoo18.conf
```

#### 10. Acceder a Odoo 18

Abre tu navegador en: `http://localhost:8069` (o el puerto que configuraste)

#### Script de inicio rápido

Crea un script para facilitar el inicio:

```
nano ~/odoo18/start_odoo18.sh
```

```
#!/bin/bash
source ~/odoo18/venv/bin/activate
cd ~/odoo18/odoo18-src
./odoo-bin -c ~/odoo18/odoo18.conf
```

Ahora le damos permiso de ejecución:

```
chmod +x ~/odoo18/start_odoo18.sh
```

Ahora puedes iniciar con: `~/odoo18/start_odoo18.sh`

#### Alternar entre instalaciones

- **Odoo global**: Ejecutas como lo haces normalmente
- **Odoo 18 virtual**: Activas el entorno (`source ~/odoo18/venv/bin/activate`) y ejecutas desde allí

Cada uno usa su propio puerto, base de datos y librerías Python, sin interferencias.
