Es un rollo si por ejemplo estas trabajando o probando algo con wordpress tener que montarte una máquina con el wordpress limpio cada vez. Con Vagrant es muy sencillo crearnos un Vagrantfile para desplegar una máquina rápidamente que lleve lo que queramos.
Para este segundo post he creado un repositorio Git en el que se puede uno/a/e clonar el Vagrantfile para desplegar en local una máquina que te permita trabajar con wordpress todo lo que quieras.
Un wordpress limpio recién instalado sobre una máquina virtual Debian 10 con Nginx, PHP7.3 y MariaDB.
El proceso para probarlo es el siguiente (suponiendo que tienes instalado vagrant y como proveedor de vagrant virtualbox):
$ git clone http://git.56k.es/fanta/vagrantfiles
$ cd vagrantfiles/debian10-wp/
$ vagrant destroy -f && vagrant up --provision
$ vagrant ssh
Analizando un poco el Vagrantfile
En el repositorio git anda el código. Aquí lo dejo de todos modos pegado y ahora lo analizamos:
# -*- mode: ruby -*- # vi: set ft=ruby : $scriptProvision = <<-SCRIPT sudo apt update sudo apt install git nginx wget -y sudo apt install mariadb-server php7.3 -y sudo rm -rf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default sudo git clone http://git.56k.es/fanta/nginx_wordpress /tmp/nginx_wordpress sudo cp -pRv /tmp/nginx_wordpress/wordpress_nginx /etc/nginx/sites-available/ sudo ln -s /etc/nginx/sites-available/wordpress_nginx /etc/nginx/sites-enabled/wordpress_nginx wget "https://wordpress.org/latest.tar.gz" -O /var/www/wordpress.tar.gz cd /var/www/ tar xfz wordpress.tar.gz rm -rf wordpress.tar.gz rm -rf html sudo apt remove apache2-bin -y sudo apt remove apache2* -y sudo apt install php7.3-fpm php7.3-mysql -y sudo systemctl restart nginx sudo mysql -u root -Bse "create database wordpress;" sudo mysql -u root -Bse "create user 'username'@'localhost' identified by 'password';" sudo mysql -u root -Bse "grant all privileges on wordpress.* to 'username'@'localhost';" sudo chown -R www-data:www-data /var/www/wordpress/ SCRIPT Vagrant.configure("2") do |config| config.vm.box = "debian/buster64" config.vm.hostname = "wordpress" config.vm.define "wordpress" config.vm.network "public_network", ip: "10.10.10.200", hostname: true config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.provision "shell", inline: $scriptProvision end
Se puede acceder al wordpress desde el navegador en 10.10.10.200 . No obstante eso es la IP que pongamos que queremos que sea la que tenga. En tu caso por ejemplo puedes poner una de tu red local que ande libre.
Solamente vamos a tener una máquina. Con vagrant status podemos ver esto.
Se ha mapeado el puerto 80 para que podamos acceder al nginx. La configuración del nginx para wordpress la agarra de otro repositorio git. Concretamente desde este:
git.56k.es/fanta/nginx_wordpress
Es por eso que primero instala git para poder luego clonar el repositorio y copiar el archivo de configuración.
El proceso de provisión se carga el apache, instala php7.3, instala mariaDB y crea una base de datos llamada wordpress con el usuario llamado usuario y la password password :).
Esto es perfecto porque el wordpress cuando accedes por primera vez te solicitará los datos de la base de datos. Simplemente con darle a Enviar con los datos por defecto pues ya lo tendremos.
En este caso no fallará si elegimos inglés. Si seleccionamos otro idioma pues tendremos que adaptar nuestro Vagrantfile para que lleve el user, password y nombre de base de datos en ese idioma. Los datos por defecto.
Con esto levantaremos un wordpress que tiene la base de datos dentro de la misma máquina.
Si se necesitan más cosas se van añadiendo a ese Vagranfile porque para eso lo tenemos en un repositorio Git. Esto supone que si por ejemplo detectamos que php7.3-curl, php7.3-gd y php7.3-mbstring lo vamos a necesitar pues se lo añadimos.
En cuestión de muy poco tiempo levantamos máquinas y se aprovisionan.
Para trabajar con wordpress esto es buena cosa. Puedes probar algo rápidamente en la máquina o usarla para programar.
En siguientes posts pondré ejemplos de como levantar varias máquinas, de como compartir un directorio de nuestro equipo con la máquina virtual, etc…
Pero con eso yo creo que es suficiente para ver un ejemplo de como levantarse un wordpress de pruebas rápidamente.
Saludos cordiales.