Ahora que ya sabemos Cómo instalar una distribución Linux dentro de Windows 10 usando el WSL, podemos pasar al siguiente nivel y explorar tantas opciones como nos hagan falta, para trabajar con cualquier proyecto, sin tener que cambiarnos de ordenador o trabajar con máquinas virtuales.
La idea es facilitarnos la vida y que podamos implementar todas las herramientas necesarias sin la necesidad de invertir demasiado tiempo en ello.
Por esta razón, hoy vamos a explicar cómo podremos configurar un entorno PHP para desarrollar un proyecto utilizando Symfony; uno de los Frameworks más potentes, robustos y seguros que existen en el mercado.
Aclaración antes de seguir
Al momento de crear este artículo, existe un conocido error relacionado con el reloj en tiempo real con Ubuntu 20.04 y WSL2. Para evitar que surja este error, configuramos APT para congelar nuestra versión libc6 instalada a la de la distribución original emitiendo el siguiente comando:
sudo apt-mark hold libc6
Tan pronto como hayamos ejecutado el anterior comando, podremos actualizar los paquetes de ubuntu ejecutando los siguiente:
sudo apt update
sudo apt upgrade
Lo próximo que instalemos son las dependencias centrales para ejecutar la plataforma eZ (y muchas otras aplicaciones Symfony):
sudo apt install composer php-xml php-intl php-gd php-curl php-fpm
En la línea anterior, he omitido el servicio de base de datos para aclarar que la plataforma eZ es compatible con las bases de datos MySQL / MariaDB y PostgreSQL. ASí que podrás elegir lo que mejor se adapte a tus necesidades. En nuestro caso usaremos MariaDB para este tutorial. Instala el servidor MariaDB y la extensión PHP MySQL:
sudo apt install mariadb-server php-mysql
Ya estamos listos para arrancar la instancia del servidor MariaDB e iniciar sesión como usuario root:
sudo service mysql start
sudo mysql
Vamos a añadir una base de datos para la plataforma eZ, Por lo que ejecutamos las siguientes declaraciones SQL:
CREATE DATABASE ezp; GRANT ALL ON ezp.* TO 'ezp'@'localhost' IDENTIFIED BY 'wsl2ezp'; FLUSH PRIVILEGES; EXIT;
Y ahora comprobamos que podemos acceder a la base de datos:
mysql -uezp -pwsl2ezp ezp
Ahora ya tenemos un entorno Linux con PHP, MariaDB y el administrador de paquetes Composer listo para funcionar:
Ya que vamos a utilizar Symfony Encore para gestionar los activos de front-end, instalaremos el administrador de paquetes Yarn desde el repositorio del proyecto. De esta forma también instalará Node.js como dependencia:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update sudo apt install yarn
Instalando el CLI de Symfony
A estas alturas, puede que hayas notado que falta en el procedimiento de instalación anterior es la A en LAMP y la E en LEMP. En lenguaje sencillo: nuestra pila no tiene un servidor web instalado. Tradicionalmente, una pila PHP ha incluido un servidor web separado. Un servidor HTTP completo sigue siendo para instalaciones de producción, pero como estamos en desarrollo utilizaremos una opción más simple: Symfony Local Web Server
Symfony CLI es una aplicación de línea de comandos independiente que podremos instalar desde nuestra terminal WSL. Recuerda seguir las instrucciones de Linux, NO las de Windows:
wget https://get.symfony.com/cli/installer -O - | bash
El código anterior lo instalará en nuestra carpeta de usuario, pero podremos hacerlo disponible de forma global si ejecutamos el siguiente código, cambiando el NOMBRE DEL USUARIO por el tuyo:
sudo mv /home/nombre_usuario/.symfony/bin/symfony /usr/local/bin/symfony
Ahora podemos verificar que nuestra pila está funcionando creando una nueva aplicación Symfony hello world y ejecutando el servidor web:
symfony new hola-mundo cd hola-mundo symfony serve
Ha llegado el momento de abrir una ventana del navegador en http: // localhost: 8000 / para ver la aplicación en ejecución. La primera vez que lo ejecutes, es posible que Windows te pregunte si este tráfico está permitido. Ahora debería tener una aplicación Symfony básica ejecutándose en Windows usando WSL2 como se muestra en la captura de pantalla a continuación.
Para obtener más detalles sobre cómo configurar TLS, múltiples versiones de PHP, etc., diríjase a los documentos de Symfony.
Instalación de la Plataforma eZ y acceso a archivos
El siguiente paso es instalar y ejecutar una aplicación Symfony completa. Esto funciona como en cualquier entorno Linux (¡porque es uno!). Así que vamos a instalar una copia de la plataforma eZ y para ello utilizaremos. Éste se encargará de clonar los archivos desde el repositorio, verificará por nosotros las actualizaciones disponibles y a continuación instalar los paquetes necesarios usando:
composer create-project ezsystems/ezplatform ezplatform ^3 cd ezplatform
Lo siguiente será instalar nuestra base de datos y para ello, necesitamos definir la configuración de la base de datos y ejecutar el instalador:
echo "DATABASE_URL=mysql://ezp:wsl2ezp@127.0.0.1:3306/ezp?serverVersion=10.3" > .env.local composer run-script ezplatform-install
Cuando se haya completado el proceso de instalación, podremos ingresar al directorio del proyecto e iniciar el servidor web Symfony:
symfony serve
El resultado mostrará que el servidor web Symfony detecta y usa la copia instalada de PHP-FPM:
Ahora, si abrimos un navegador (en Windows) y nos dirigimos a http: // localhost: 8000 /, podremos ver la aplicación en ejecución. Para acceder a los archivos desde Windows, puede ejecutar el siguiente comando para abrir una ventana del Explorador de Windows en su directorio de trabajo actual:
explorer.exe .
Desde aquí, podrás recoger las cosas y usar cualquier IDE en Windows (¡o incluso notepad.exe!) Que necesites usar para tu desarrollo.