GNU/Linux >> Tutoriales Linux >  >> Linux

Configurar un entorno de desarrollo de WordPress local con Vagrant

Si desarrolla con WordPress, es preferible configurar un entorno local donde haya instalado un servidor, una herramienta de base de datos y algunos sitios de Wordpress junto con otras herramientas que necesita. Esto está bien si solo trabajas en algunos proyectos. Pero cuando se multiplican, surgen problemas. Y también los dolores de cabeza de mantener múltiples entornos, porque el cliente tiene una configuración diferente a la tuya.

Para solucionar este problema, podemos usar lo que llamamos Vagrant. Vagrant es una herramienta para trabajar con entornos virtuales. Proporciona una manera fácil de configurar un entorno de desarrollo local con unos pocos comandos y puede replicar una configuración completa tantas veces como desee, con facilidad y sin la molestia de instalar todo manualmente. Para ejecutar Vagrant, debe definir un conjunto de reglas. Vagrant configura su máquina virtual según estas reglas. Vagrant necesita dos archivos para esto:Vagrantfile, que le dice a Vagrant qué tipo de hardware necesita la máquina virtual, y un archivo de implementación, que le dice a Vagrant qué hacer en la máquina virtual.

Debido a que Vagrant funciona con entornos virtuales, necesita un software de máquina virtual para ejecutar Vagrant. Para nuestros propósitos, utilizaremos el Virtualbox de código abierto.

Instalando VirtualBox

Diríjase a la página de descarga de Virtualbox y descargue un archivo binario correspondiente a su host invitado. (El host invitado es el sistema operativo desde el que ejecutará su entorno de desarrollo). Instale Virtualbox.

Instalando Vagrant

Descarga el binario correspondiente a tu sistema operativo desde la página de descargas de Vagrant e instálalo.

Para probar si se instaló correctamente, escriba el siguiente comando en la línea de comandos de su sistema operativo.

$ vagrant -v

Instalación del complemento de actualización de hosts de Vagrant

El complemento vagrant-hostupdater modificará el archivo de hosts de su sistema operativo para que funcionen los dominios configurados por Vagrant. Para instalarlo, ejecute el siguiente comando

$ vagrant plugin install vagrant-hostsupdater

Reinicie su sistema operativo después de instalar Vagrant/Virtualbox para que no haya problemas de red.

Instalando Git

Linux

También necesitaremos el control de versiones de Git para este tutorial. Si no lo tiene instalado, instálelo usando el siguiente comando si tiene una distribución Debian/Ubuntu

$ sudo apt install git

o si tienes Fedora

$ sudo dnf install git

o si tiene CentOS/RHEL

$ sudo yum install git

Verifique la versión de Git instalada a través del siguiente comando

$ git --version

Verás algo como

$ git version 2.20.1

Debe configurar Git a través de los siguientes comandos.

$ git config --global user.name "Your Name" 
$ git config --global user.email "[email protected]"

Windows

Para instalar Git en Windows, dirígete a la página de descargas de Git e instala el binario.

MacOS

Si tiene homebrew instalado, puede instalar Git mediante el siguiente comando.

$ brew install git

o puede descargar un paquete binario desde la página de descargas de Git e instalarlo.

Instalar Variing Vagrant Vagrants

En lugar de crear una configuración de Vagrant desde cero, usaremos Varying Vagrants Vagrant (VVV), una configuración de Vagrant de código abierto destinada específicamente a crear entornos de desarrollo de WordPress. Un VVV estándar configurará su máquina virtual basada en Ubuntu 18.04 junto con el servidor Nginx, la base de datos MariaDB, PHP, WP-CLI, Node.js, MailHog, Composer, memcached, phpMyAdmin, git y varias otras herramientas. VVV le dará varias instalaciones de WordPress de forma predeterminada, una de ellas es la última versión de última generación para ayudarlo a experimentar.

El primer paso es clonar el repositorio Git de VVV en un directorio local de su sistema.

$ git clone -b master git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vvv

Aquí estamos clonando la rama maestra del repositorio en el sistema. Si desea actualizaciones más rápidas, puede usar la rama de desarrollo.

Iniciando VVV

Cambie al directorio donde clonó VVV.

$ cd vvv

Inicie el entorno Vagrant que instalará la máquina virtual y configurará todo.

$ vagrant up

Este proceso puede llevar un tiempo, así que tenga paciencia. Es posible que se le solicite su contraseña raíz durante el proceso que se requiere para configurar el archivo de hosts de su sistema.

Nota para usuarios de Windows 8/10

Si está en Windows, es posible que reciba el siguiente error

==> default: Booting VM... 
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "1fe83aa1-2f23-4ddd-ad77-b7e7e00aabe6", "--type", "headless"]

Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only
Ethernet Adapter #3' (VERR_INTNET_FLT_IF_NOT_FOUND).
VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

Tenga en cuenta el adaptador al que se hace referencia aquí:

VirtualBox Host-Only Ethernet Adapter #3

Abra el Panel de control>> Centro de redes y recursos compartidos. Ahora haga clic en Cambiar la configuración del adaptador. Haga clic con el botón derecho en el adaptador cuyo nombre o el nombre del dispositivo coincida con VirtualBox Host-Only Ethernet Adapter # 3 y haga clic en Propiedades . Haga clic en Configurar botón.

Ahora haga clic en el Controlador pestaña. Haga clic en Actualizar controlador . Seleccione Buscar controladores en mi computadora . Ahora elija Permitirme elegir de una lista de controladores disponibles en mi computadora . Seleccione la opción que obtiene y haga clic en Siguiente. Haga clic en Cerrar para finalizar la actualización. Ahora regrese a su ventana de Terminal/Powershell/Command y repita el vagrant up dominio. Debería funcionar bien esta vez.

Una vez que haya terminado, puede visitar su panel de VVV en http://vvv.test url.

VVV viene con dos instalaciones predeterminadas de WordPress:http://one.wordpress.test y http://two.wordpress.test Ambos sitios tienen los mismos detalles de inicio de sesión, admin como nombre de usuario y contraseña como contraseña. Las credenciales de la base de datos para ambos sitios son wp como usuario y contraseña. Las credenciales de usuario raíz de MySQL son root como nombre de usuario y contraseña. Y las credenciales del usuario raíz de la VM son root como nombre de usuario y vagabundo como contraseña.

Hay una instalación de wordpress para desarrolladores en http://trunk.wordpress.net, pero no funcionará porque no se aprovisionó. Esta instalación es útil si es un colaborador de WordPress que trabaja con tickets y parches de Trac. Para habilitarlo, abra vvv-custom.yml y cambiar el valor de skip_provisioning en wordpress-trunk a falso y luego reaprovisionar la VM usando el comando

$ vagrant reload --provision

Hay otra instalación de wordpress sin URL etiquetada como wordpress-meta-environment. Esta instalación creará un entorno útil para las contribuciones al metaequipo de WordPress, por ejemplo, WordCamps, .org, etc. Para habilitar esta instalación, agregue la siguiente línea debajo de wordpress-meta-environment en el archivo vvv-custom.yml.

hosts:
- wpmeta.test

Y luego cambie el valor de skip_provisioning a falso y reaprovisionar la máquina virtual.

$ vagrant reload --provision

Agregar un nuevo sitio

Si desea agregar otro sitio a la VM, deberá editar el vvv-custom.yml archivo que puede encontrar en el vvv directorio. Si no está allí, simplemente copie vvv-config.yml y créelo. Este es un proceso único y no necesitará volver a hacerlo. Realice siempre sus cambios en vvv-custom.yml porque vvv-config.yml se sobrescribe cuando actualiza VVV.

Agregue el siguiente código en la sección de sitios a vvv-custom.yml para agregar un nuevo sitio.

newsite:
    repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
    description: "A WordPress subdir multisite install"
vm_dir: /srv/www/newsite
local_dir: /home/user/vvv/www/newsite
branch: master
nginx_upstream: php skip_provisioning: false hosts: - newsite.test custom: wp_type: subdirectory

Variables

variable de repositorio se refiere a un repositorio de Github predefinido que contiene información sobre cómo configurar un nuevo sitio de WordPress en la máquina virtual. Por ahora, estamos usando un repositorio mantenido por VVV.

descripción variable se explica por sí misma.

vm_dir es el directorio real dentro de la máquina virtual donde residirá su sitio.

dir_local es el directorio en su máquina host donde vive su sitio.

sucursal variable le dice a Vagrant que revise la rama maestra del repositorio en el ejemplo aquí.

nginx_upstream se usa para establecer a dónde Nginx pasa las solicitudes y generalmente se usa para cambiar la versión de PHP necesaria para su instalación. php aquí se refiere a la versión predeterminada de PHP, que es 7.2. Puede usar php71 para cambiarlo a PHP 7.1 o php56 para cambiarlo a PHP 5.6.

omitir_aprovisionamiento se establece en falso, lo que significa que debemos incluir este sitio en la máquina virtual.

anfitriones La variable se utiliza para establecer la URL que necesitaremos para acceder al sitio.

personalizado La sección es útil si necesita un control adicional sobre su sitio de WordPress. Puede utilizar esta sección para configurar la instalación multisitio o instalar una versión diferente de WordPress e incluso cambiar el nombre de la base de datos o su sitio que se utilizará para su instalación.

tipo_wp variable decide si su instalación será única, multisitio con dominios o multisitio con subdirectorio. wp_type toma cuatro valores:único, subdominio, subdirectorio y ninguno. Con la instalación de subdominios, puede definir múltiples hosts para su instalación multisitio en el siguiente formato

hosts:
    - multisite.test
    - site1.multisite.test
    - site2.multisite.test
  custom:
    wp_type: subdomain

Puede agregar una variable más en la sección personalizada que es wp_version . Puede configurarlo como nocturno si desea instalar la versión nocturna de WordPress. Toma tres valores:nightly, latest y un número de versión.

custom: 
     wp_version: nightly

Hay otra variable, db_name que le permite establecer el nombre de la base de datos para su instalación.

custom:
    db_name: super_secet_db_name

Y por último, site_title La variable le permite establecer el Título de su sitio WP.

custom:
    site_title: My Awesome Dev Site

Esto debería cubrir todas las variables y opciones que necesitaría para agregar su propio sitio web en VVV. Después de cambiar el archivo vvv-custom.yml, simplemente ejecute el siguiente comando para que su nuevo sitio funcione.

$ vagrant reload --provision

Agregar un sitio existente

Hasta ahora, aprendimos cómo agregar un sitio completamente nuevo a VVV. Pero, ¿qué sucede si ya está trabajando en un sitio y desea agregarlo en VVV? Veamos cómo podemos hacer eso.

Para agregar un sitio existente, el primer paso es el mismo que antes, es decir, editar el archivo vvv-custom.yml y agregar el siguiente código.

howtoforge:
    repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
    description: "A WordPress site"
vm_dir: /srv/www/newsite
local_dir: /home/user/vvv/www/newsite
hosts: - howtoforge.local

Esto le indicará a VVV que configure un nuevo sitio accesible a través de http://howtoforge.local Pero es un sitio completamente nuevo. Lo que tenemos que hacer es convertirlo en nuestra instalación existente. Para esto, necesitamos copiar los archivos de nuestra instalación de WordPress existente en el directorio local, es decir, /home/user/vvv/www/newsite

$ cp /var/www/howtoforge/ /home/user/vvv/www/newsite/

Ahora necesitamos copiar la base de datos. Una forma sencilla de hacerlo es exportar su base de datos existente como un archivo .sql, copiar ese archivo en el directorio de nuestro blog e importar la base de datos nuevamente mediante SSH a nuestra máquina virtual.

Primero, inicie sesión en mysql en la línea de comandos de su sistema local y use el siguiente comando para exportar la base de datos.

$ cd /home/user/vvv/www/newsite
$ mysqldump -u username -p database_name > data-dump.sql

Ahora podemos aprovisionar la máquina virtual nuevamente.

$ vagrant reload --provision

SSH en su máquina virtual.

$ vagrant ssh

Ahora importe la base de datos nuevamente a su VM.

$ cd /srv/www/newsite 
$ mysql -u root -p newsite < data-dump.sql

VVV ya ha creado una nueva base de datos durante el aprovisionamiento de nuestro blog llamado newsite. La contraseña para el usuario root es root aquí. El comando anterior importará nuestra base de datos existente a la nueva.

Esto completa la configuración de un sitio existente en VVV.

Habilitar SSL

Las instalaciones de host local generalmente no están protegidas. Y la instalación de su propio certificado en localhost puede ser un proceso largo y tedioso, incluso con Let's Encrypt. Pero VVV hace que este proceso sea bastante fácil y, de forma predeterminada, tiene habilitado SSL en todas sus instalaciones de WordPress. Simplemente comience a usar https con sus sitios. Por primera vez, su navegador se quejará de un certificado no válido, pero lo agregará como una excepción y debería estar bien a partir de ahora.

Actualizando WordPress

Puede actualizar su instalación de WordPress desde su tablero. Además, VVV actualizará su wordpress cada vez que vuelva a aprovisionar la máquina virtual. También puede actualizar WordPress manualmente descargándolo de WordPress.org y extrayendo el archivo zip. Y también puede usar WP CLI que se incluye con VVV. Para actualizar su sitio con WP CLI, use los siguientes comandos.

$ cd /srv/www/newsite
$ wp core update

Actualizando VVV

El primer paso es detener la máquina Vagrant.

$ vagrant halt

Ahora asegúrese de que su vagabundo y Virtualbox estén actualizados. Si no, descárguelos nuevamente e instálelos.

Ejecute el siguiente comando para actualizar su caja Vagrant. Es opcional, pero es mejor que lo sigas adelante.

$ vagrant box update

Ahora, obtenga la última versión de VVV de Github.

$ git pull

Vuelva a aprovisionar la caja para completar la actualización.

$ vagrant up --provision

Herramientas adicionales

VVV se envía con varias utilidades que puede instalar. Los encontrará enumerados en la sección de utilidades en su archivo vvv-custom.yml. De forma predeterminada, tls-ca y phpmyadmin están habilitados. Puede instalar las versiones de memcached, opcache, webgrind, mongodb, tideways y php de la 5.6 a la 7.3 eliminando el # delante de ellas en la sección de utilidades.

Incluso puede agregar su propio software que desee instalar. Deberá modificar vvv-custom.yml archivo con algo como

utilities:
  core:
    - tls-ca
- phpmyadmin java: - java7 utility-sources: java: repo: https://github.com/example/java-utilities.git branch: master

Agregará una nueva sección, java aquí, por ejemplo. El código para la instalación provendrá de un repositorio de git. Su repositorio de git debe estar estructurado algo así como

java7/
    provision.sh

El archivo provision.sh contendrá el código necesario para instalar Java en su máquina virtual. El nombre de la carpeta debe coincidir con el nombre que usó anteriormente en vvv-custom.yml archivo.

Conclusión

Con esto concluye nuestro tutorial sobre cómo configurar un entorno de desarrollo local de WordPress con Vagrant. Háganos saber si tiene alguna pregunta.


Linux
  1. Cómo uso Vagrant con libvirt

  2. Configuración de almacenamiento local en Linux con Stratis

  3. Configurar el clúster de Kubernetes con Rancher

  4. Configure un entorno chroot en Ubuntu con debootstrap

  5. Retención de permisos de archivo con Git

Un script de Shell para configurar el entorno de desarrollo en Ubuntu

Configurar el entorno de desarrollo local de WordPress en Linux

Configuración automatizada de Ansible Lab con Vagrant y Virtualbox en Linux

Cómo configurar WordPress en Ubuntu Server con Apache

Cómo trabajar con Ansible Provisioner en Vagrant

Instalar WordPress con Nginx en Ubuntu 18.04