Instalar un Servidor Web Local Ubuntu 20.04 LTS en el subsistema Linux de Windows 10 WSL2
Linux/Unix Shell Scripting
,Windows 10
Actualizado el 1 de Diciembre del 2020 por Aitor (Publicado el 22 de Noviembre del 2020)
2.669 visualizaciones desde el 22 de Noviembre del 2020
¡PHP 8 ya está aquí! Fue lanzado el 26 de noviembre de 2020. Es una nueva versión principal, lo que
significa que introducirá algunos cambios importantes, así como muchas funciones nuevas y mejoras de
rendimiento.
He cambiado el procedimiento de instalación para actualizarlo a esta nueva versión.
Dado que esta instalación es para desarrollo y no para producción es lógico usar PHP 8.0 en lugar de PHP
7.4 e ir probando los sistemas existentes y su compatibilidad con esta versión así como la creación de
nuevas aplicaciones.
Servidor Web Local (Apache2, PHP 8.0, MySQL 8, phpMyAdmin 5.0.4 ) con Ubuntu 20.04 LTS en el
subsistema Linux de Windows 10 WSL2.
Se puede instalar un Servidor Web Local LAMP (Apache/PHP/MySQL) en el nuevo SubSistema Linux WSL2 que viene integrado en las últimas versiones de Windows 10 que permite tener un verdadero sistema Linux integrado y con sus ficheros accesibles desde Windows y mediante aplicaciones de Windows con un portapapeles compartido para copiar y pegar entre los 2 sistemas (Ctrl +C / Ctrl + V) y acceso bidireccional a los discos, carpetas y ficheros de una manera más ágil que con una máquina virtual VMWare o VirtualBox.
WSL2 no es un Linux en entorno gráfico según se instala por defecto (por ahora en estos momentos) aunque si tiene acceso a la GPU, pero como servidor web no es necesario en ningún momento el entorno/interfaz gráfico, aun así hay tutoriales en Internet para instalarlo.
Se accede al servidor desde el navegador en Windows como localhost ó 127.0.0.1 pero también se puede acceder desde cualquier otro equipo en la Red Local disponiendo la IP de wsl2 siguiendo unas instrucciones que no son objeto de esta GUÍA.
Se adjunta un fichero PDF con una Guía para la Instalación de un Servidor Web Local de Ubuntu 20.04 LTS en WSL2

significa que introducirá algunos cambios importantes, así como muchas funciones nuevas y mejoras de
rendimiento.
He cambiado el procedimiento de instalación para actualizarlo a esta nueva versión.
Dado que esta instalación es para desarrollo y no para producción es lógico usar PHP 8.0 en lugar de PHP
7.4 e ir probando los sistemas existentes y su compatibilidad con esta versión así como la creación de
nuevas aplicaciones.
Servidor Web Local (Apache2, PHP 8.0, MySQL 8, phpMyAdmin 5.0.4 ) con Ubuntu 20.04 LTS en el
subsistema Linux de Windows 10 WSL2.
Se puede instalar un Servidor Web Local LAMP (Apache/PHP/MySQL) en el nuevo SubSistema Linux WSL2 que viene integrado en las últimas versiones de Windows 10 que permite tener un verdadero sistema Linux integrado y con sus ficheros accesibles desde Windows y mediante aplicaciones de Windows con un portapapeles compartido para copiar y pegar entre los 2 sistemas (Ctrl +C / Ctrl + V) y acceso bidireccional a los discos, carpetas y ficheros de una manera más ágil que con una máquina virtual VMWare o VirtualBox.
WSL2 no es un Linux en entorno gráfico según se instala por defecto (por ahora en estos momentos) aunque si tiene acceso a la GPU, pero como servidor web no es necesario en ningún momento el entorno/interfaz gráfico, aun así hay tutoriales en Internet para instalarlo.
Se accede al servidor desde el navegador en Windows como localhost ó 127.0.0.1 pero también se puede acceder desde cualquier otro equipo en la Red Local disponiendo la IP de wsl2 siguiendo unas instrucciones que no son objeto de esta GUÍA.
Se adjunta un fichero PDF con una Guía para la Instalación de un Servidor Web Local de Ubuntu 20.04 LTS en WSL2

Si alguno de los archivos de descarga no funciona, comentanos aquí el error.
Comentarios... (5)
nano ~/.bashrc
Código:
## Start apache2 if not running
status=`service apache2 status`
## Start MySQL if is stopped
status=`service mysql status`
Al arrancar WSL se inician estos servicios pidiendo la contraseña de SuperUsuario ya que se ejecutan con permisos con la instrucción SUDO
Supongamos que en el ordenador PC/portátil host donde está instalado el servidor web en WSL 2 está conectado a la red local mediante una conexión wifi.
En una consola/terminal PowerShell o cmd y mediante la instrucción ipconfig vemos que la IPv4 del host en la red inalámbrica es 192.168.1.40
Código:
Que un smartphone conectado en la misma red wifi se puede realizar un ping con respuesta positiva a esta dirección IP anterior.
Creamos en el directorio que se quiera, pero preferentemente en C:\ un archivo de texto "arranque-servidor-web.ps1" con las siguientes instrucciones:
Código:
echo "The Script Exited, the ip address of WSL 2 cannot be found";
}
#[Ports]
#All the ports you want to forward separated by coma
#[Static ip]
#You can change the addr to your ip config to listen to a specific address
#Remove Firewall Exception Rules
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' ";
#adding Exception Rules for inbound and outbound Rules
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort $ports_a -Action Allow -Protocol TCP";
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort $ports_a -Action Allow -Protocol TCP";
iex "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$addr";
iex "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$addr connectport=$port connectaddress=$remoteport";
}
#arrancar el subsitema linux wsl2 establecido por defecto
Desde una consola/terminal PowerShell abierta en modo administrador ejecutar este fichero:
Código:
En este momento se puede acceder al servidor web en WSL 2 desde un dispositivo en la misma red local con la instrucción en el navegador de la dirección IP del host: 192.168.1.40
Si hay algún error en este procedimiento, por favor, comentad.
Habilitar GUI (entorno gráfico) para Ubuntu-20.04 LTS en WSL2
Como continuación al guion de la instalación y en el caso de que se quiera acceder al subsistema Linux en un entorno gráfico, entre muchas soluciones está la de utilizar el Escritorio remoto de Windows 10, para lo cual hay que ejecutar una a una (copiar y pegar en el terminal) las siguientes instrucciones en la instalación de Ubuntu en WSL2:
Código:
sudo apt-get purge xrdp
sudo apt install -y xrdp
sudo apt install -y xfce4
A continuación editar el fichero siguiente:
Código:
sudo nano /etc/xrdp/startwm.sh
Poner el simbolo # en el inicio de estas líneas:
# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# exec /bin/sh /etc/X11/Xsession
Añadir al final del fichero estas líneas:
# xfce
startxfce4
Luego Ctrl+O y Ctrl+X para guardar los cambios y salir.
Luego escribir, en el terminal, para inicializar lo siguiente:
Código:
sudo /etc/init.d/xrdp start
Luego en Windows en el campo de búsqueda donde pone "Escribe aquí para buscar" escribir Conexión a Escritorio remoto y luego pulsar en la opción abrir.
Introducir localhost:3390 y enter
Luego el usuario xxxxxxxx y la contraseña yyyyyyyy
Conexión a Escritorio remoto
Si se quiere automatizar el arranque del servicio de escritorio remoto cuando se inicia el sistema.
Código:
sudo nano ~/.bashrc
Añadir al final la línea:
sudo /etc/init.d/xrdp start
Luego Ctrl+O y Ctrl+X para guardar los cambios y salir.
Si hay algún error en este procedimiento, por favor, comentad.
Si se quiere añadir el navegador Firefox.
Código: