Cursos de Linux/Unix Shell Scripting - Instalar un Servidor Web Local Ubuntu 20.04 LTS en el subsistema Linux de Windows 10 WSL2

Imágen de perfil
Val: 19
Ha aumentado 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

.pdfInstalar un Servidor Web Local Ubuntu 20.04 LTS en el subsistema Linux de Windows 10 WSL2gráfica de visualizaciones


Linux/Unix Shell Scripting

,

Windows 10

Actualizado el 1 de Diciembre del 2020 por Aitor (Publicado el 22 de Noviembre del 2020)
2.267 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


servidor-web-local

Si alguno de los archivos de descarga no funciona, comentanos aquí el error.




Comentarios... (5)

Imágen de perfil
23 de Noviembre del 2020
estrellaestrellaestrellaestrellaestrella
Excelente!!!! muy bien explicado paso a paso.
Responder
Imágen de perfil
31 de Diciembre del 2020
estrellaestrellaestrellaestrellaestrella
Se puede hacer que en el arranque del sistema se ejecuten estas instrucciones automáticamente para activar los servicios apache2 y mysql añadiendo al final del fichero estas instrucciones editando el fichero bashrc en el directorio /home del usuario.

nano ~/.bashrc

Código:
1
2
3
4
5
6
7
8
9
10
11
12
## Start apache2 if not running
status=`service apache2 status`
if [[ $status == *"apache2 is not running" ]]
then
  sudo service apache2 start
fi
## Start MySQL if is stopped
status=`service mysql status`
if [[ $status == *"MySQL is stopped." ]]
then
  sudo service mysql start
fi


Al arrancar WSL se inician estos servicios pidiendo la contraseña de SuperUsuario ya que se ejecutan con permisos con la instrucción SUDO
Responder
Imágen de perfil
11 de Enero del 2021
estrellaestrellaestrellaestrellaestrella
Como continuación del procedimiento de instalación de un servidor web local en WSL 2, vamos a proceder a establecer el acceso desde cualquier dispositivo conectado a la red local, bien por cable (PC/portátil) o por wifi (smartphone/tablet/portátil) a este servidor.

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:
1
2
3
4
5
6
7
ipconfig
Adaptador de LAN inalámbrica Wi-Fi:
   Sufijo DNS específico para la conexión. . :
   Vínculo: dirección IPv6 local. . . : fe80::977:7a5f:1a4d:3b1b%2
   Dirección IPv4. . . . . . . . . . .: 192.168.1.40
   Máscara de subred . . . . . . . . .: 255.255.255.0
   Puerta de enlace predeterminada. . : 192.168.1.1

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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';
 
if( $found ){
  $remoteport = $matches[0];
} else{
  echo "The Script Exited, the ip address of WSL 2 cannot be found";
  exit;
}
 
#[Ports]
 
#All the ports you want to forward separated by coma
$ports=@(80,443,10000,3000,5000);
 
 
#[Static ip]
#You can change the addr to your ip config to listen to a specific address
$addr='0.0.0.0';
$ports_a = $ports -join ",";
 
 
#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";
 
for( $i = 0; $i -lt $ports.length; $i++ ){
  $port = $ports[$i];
  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
wsl

Desde una consola/terminal PowerShell abierta en modo administrador ejecutar este fichero:

Código:
1
.\arranque-servidor-web.ps1


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

G8P2PyE

Si hay algún error en este procedimiento, por favor, comentad.
Responder
Imágen de perfil
11 de Enero del 2021
estrellaestrellaestrellaestrellaestrella

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:
1
2
3
4
5
6
7
8
9
10
sudo apt update && sudo apt -y upgrade
sudo apt-get purge xrdp
sudo apt install -y xrdp
sudo apt install -y xfce4
sudo apt install -y xfce4-goodies
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
sudo sed -i "s/3389/3390/g" /etc/xrdp/xrdp.ini
sudo sed -i "s/max_bpp=32/#max_bpp=32\nmax_bpp=128/g" /etc/xrdp/xrdp.ini
sudo sed -i "s/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g" /etc/xrdp/xrdp.ini
echo xfce4-session > ~/.xsession


A continuación editar el fichero siguiente:

Código:
1
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:
1
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:
1
sudo apt install firefox

0WWt05Y
Responder
Imágen de perfil
11 de Enero del 2021
estrellaestrellaestrellaestrellaestrella
El acceso desde windows al escritorio remoto de WSL2:

NKWJIga
Responder

Comentar

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/c11022