Si has llegado hasta aquí es que ya has completado los dos primeros capítulos sobre guía de desarrollo WordPress para Windows con WSL. Si aún lo lo has hecho, ya estás tardando.
Hagamos una recopilación del punto en el que nos encontramos:
- Tenemos WSL instalado y funcionando
- Hemos instalado un servidor Apache con PHP y MySQL/MariaDB
- Tenemos un sitio WordPress corriendo en WAMP/XAMPP
Ahora es el momento de migrar nuestros sitios desde WAMP/XAMPP a la distribución de Ubuntu, así que vamos a ello.
Migrar los archivos
El primer aspecto que vamos a contemplar es la migración de la base de código de tu sitio WordPress, esto es, los archivos PHP, Js, CSS, imágenes, etc.
Lo más sensato en este punto es mover los archivos a la carpeta que queramos dentro del sistema de archivos de nuestro WSL. Para ello, sigue los siguientes pasos:
- Desde la consola de Ubuntu, localiza dónde está tu sitio web de WAMP/XAMPP y entra en dicho directorio. Recuerda que las unidades de Windows están en
/mnt/
. Por ejemplo, n mi caso el sitio estaba en/mnt/c/xampp/htdocs/www
. - Mueve los archivos a la carpeta de Ubuntu deseada. En este ejemplo vamos a mover los archivos a
/var/www/html/
cd /carpeta_donde_estan_tus_archivos/
sudo mv * /var/www/html/carpeta_de_destino/

Migrar la base de datos
La opción más sencilla para migrar la base de datos es acceder a través de PHPMyAdmin y exportar la base de datos. Una vez que tengamos el archivo SQL, para simplificar las cosas, mueve tu archivo SQL a la carpeta donde está instalado tu sitio WordPress.
Luego podremos usar WP-CLI para crear la base de datos e importar nuestro archivo SQL en el servidor MySQL/MariaDB que tenemos en Ubuntu. Si quieres importar YA la base de datos, primero debes crear la base de datos con MySQL:
mysql –u root –p
> CREATE DATABASE new_db_name;
> exit;
Posteriomente, importa la base de datos con:
mysql –u username –p new_db_name < dump_file.sql
Para hacerlo con WP-CLI, primero sigue los pasos indicados en el siguiente capítulo: Desarrollo WordPress para Windows con WSL (parte 4): Integración de PHPStorm, Git, xDebug y WP-CLI
Luego revisa que la configuración de acceso al servidor de base de datos que tengas en tu wp-config.php corresponde con la configuración correcta de Ubuntu (nombre de usuario, contraseña y servidor). En mi caso, en XAMPP tenía al usuario root sin contraseña, pero en Ubuntu sí que tiene contraseña.
Una vez ajustados los valores en el archivo wp-config.php, sólo tienes que acceder a la carpeta donde está dicho archivo y lanzar los siguientes comandos de WP-CLI:
wp db create
wp db import nombre_de_tu_base_de_datos.sql

Crear un Virtual Host
Para poder tener distintos desarrollos en sus dominios locales correspondientes, lo más usual es tener distintos Virtual Hosts. En mi caso, para el sitio que estoy migrando tengo un Virtual Host en XAMPP con la siguiente configuración:
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName test-host.example.com
ErrorLog "logs/test-host.example.com-error.log"
CustomLog "logs/test-host.example.com-access.log" common
</VirtualHost>
Lo único que tendríamos que hacer en este punto es mover esta configuración a nuestro servidor Apache en Ubuntu. Para ello, desde la consola de Ubuntu, vamos a crear un nuevo Virtual Host con la configuración correspondiente. Para ello, lanza los siguientes comandos:
cd /etc/apache2/sites-available/
sudo cp 000-default.conf my-site.conf
Ya tenemos creado el fichero de configuración my-site.conf
, así que sólo tenemos que editarlo con vim o nano y configurar el DocumentRoot
con la ruta correspondiente a la carpeta de XAMPP:
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName test-host.example.com
ErrorLog ${APACHE_LOG_DIR}/test-host.example.com.error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Después de guardar el archivo, tenemos que activar la nueva configuración con los siguientes comandos:
sudo a2ensite my-site.conf
sudo service apache2 reload
Para probar que todo está en orden, APAGA tu servidor WAMP/XAMPP y visita el dominio que hayas configurado en tu navegador.
DISCLAIMER: puede que algo falle, que no funcione a la primera, que te desesperes. Aquí tienes una lista de comprobación de los posibles puntos de fallo que puedes ir comprobando:
- Revisa que los servidores de Ubuntu estén activos. Recuerda, tanto el servidor de Apache como el de MySQL deben estar levantados para que todo funcione.
- Revisa que los servidores Apache y MySQL de WAMP/XAMPP estén apagados. Si los tienes montados como servicios de Windows, asegúrate de que dichos servicios están detenidos.
- Revisa tu archivo de hosts. En
C:/Windows/system32/drivers/etc
encontramos el archivo dehosts
, en el cual deberás comprobar que el dominio que queremos usar está allí listado y apuntando a127.0.0.1
.
En WSL2 es importante añadir también la resolución del host por IPV4:
127.0.0.1 test-host.example.com
::1 test-host.example.com
- Revisa tu archivo de VirtualHost. Puede que recibas un código de error 403 a la hora de visitar el sitio web. Añade las siguientes líneas en tu fichero de VirtualHost:
<VirtualHost *:80>
DocumentRoot /var/www/html/
...
<Directory /var/www/html/>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Si nada de esto funciona, y siguen apareciendo problemas, sólo recuerda: Google es tu amigo.
Sigue leyendo la guía de desarrollo WordPress para Windows con WSL y su capítulo 4: Desarrollo WordPress para Windows con WSL (parte 4): Integración de Git, PHPStorm, xDebug y WP-CLI