Publicidad

Instalar nginx y configurar PHP en Vagrant y ubuntu


Por Alex el 03/08/2022, Comentar el artículo

Comparte este artículo:      




En lugar de instalar nginx y PHP en local vamos a instalarlo y automatizarlo en una máquina virtual con Vagrant


Para esto vamos a crear una serie de scripts que nos harán todo el trabajo, después de ejecutar el script de instalación tendremos un servidor de Ubuntu con Nginx y PHP instalado y configurado para poder trabajar. Y lo bueno es que podremos crear tantos como necesitemos a golpe de click, bueno no, a golpe de terminal porque todo esto lo hacemos desde el terminal de linux.

Antes de seguir voy a dejaros unos enlaces a artículos donde explico algunos temas nginx y vagrant que os pueden ir bien:

Instalar Vagrant para entornos de desarrollo en Linux
Instalar un servidor LAMP con Vagrant y Docker



El código este en GitHub podeis bajarlo y probarlo.

La estructura del proyecto es la siguiente:

Estructura del proyecto, ficheros y directorios

Y a continuación explico los scripts que componen el proyecto.

Tenemos un script principal Vagrantfile que es el que crea la máquina virtual con sus características y ejecuta el resto de scripts.

Vagrantfile

Toda la explicación está comentada en el script.

# Version de vagrant que vamos a utilizar
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  # IP de nuestro servidor nginx y que tendreis que utilizar desde local
  # para acceder al web. Si teneis varias maquinas teneis que tener diferentes IPs
  ip_address = "192.168.222.180"
  config.vm.network "private_network", ip: ip_address

	config.vm.define :core, primary: true  do |core|

    # nombre del host, lo mismo que la IP, diferente para cada maquina
    core.vm.hostname = 'dev-test-nginx-php.local'

    # Que tiempo de servidor utilizamos, en este caso Ubuntu 20.04
    # Aqui, https://app.vagrantup.com/boxes/search, podeis buscar el que mas os guste
    core.vm.box = "ubuntu/focal64"

    # Nombre de la maquina en VirtualBox, memoria y cpu
    # Igual que la IP multiples maquinas, diferentes nombres
    core.vm.provider :virtualbox do |p|
      p.name = "DEV-dev-test-nginx-Ubuntu_20.04-nginx-php"
      p.memory = 1024
      p.cpus = 1
    end

    # Establecemos dentro de la maquina virtual una vez instalada el directorio de trabajo
    # donde copiaremos (o incluiremos) los archivos que necesitemos para trabajar en el entorno virtual
    core.vm.synced_folder "/home/depruebas/Dropbox/AdyMaNet/Entornos/vagrant-pruebas/Ubuntu20.04-nginx-php/vagrant/", "/home/vagrant/data/", nfs: true

  end

  # Ejecutamos los comandos de instalación para instalar nginx y php y despues configurarlo
  config.vm.provision "shell", path: "vagrant/install-nginx-php.sh"

end

Dentro del directorio vagrant tenemos los scripts que se tiene que ejecutar y los que se tienen que utilizar.

  • default.conf, es el fichero de configuración de nginx para un nuevo site.
  • info.php, es el fichero que contiene el código de pruebas de php, info.php, para testear que la instalación funciona.
  • install-nginx-php.sh, es un script bash que instala y configura el sistema, esta todo explicado en el fichero paso a paso.
    
    #!/bin/bash
    
    # Actualizamos Ubuntu recien instalado
    sudo apt update -y
    sudo apt upgrade -y
    
    # Instalamos nginx, php-fpm y net-tools, con el parametro -y para que no pregunte
    sudo apt install -y nginx php-fpm net-tools
    
    # Borramos el site por defecto de nginx
    sudo rm /etc/nginx/sites-enabled/default
    
    # Enlazamos en el directorio de sites-enabled la configuracion de nuestro site
    # con la configuracion de php activada
    sudo ln -s /home/vagrant/data/default.conf /etc/nginx/sites-enabled/
    
    # enlazamos al directorio web por defecto de nginx la pagina donde tenemos
    # el test de phpinfo
    sudo ln -s /home/vagrant/data/info.php /var/www/html/
    
    # Y por ultimo reiniciamos nginx
    sudo /etc/init.d/nginx restart
    

Ahora para ejecutar y crear la máquina virtual con nginx y PHP, dentro del directorio donde esta el fichero Vagrantfile ejecutamos el comando:

vagrant up

Esto crea la maquina virtual e instala todo lo que le hemos dicho y después de ejecutar este script y que finalice todo el proceso podemos probar la url, en mi caso, http://192.168.222.180/info.php y tiene que salir algo como esto:

Información de php, test que está bien configurado nginx

Y con esto ya esta todo y nos podemos poner a trabajar.

Solo hacer un pequeño repaso de los comandos de Vagrant

# Crear (sino existe) o arranca una máquina virtual con vagrant a partir de un fichero Vagrantfile
vagrant up

# Entrar en la máquina recién puesta en marcha, se sale de la máquina con exit
vagrant ssh

# Parar una maquina virtual
vagrant halt

# Destruir una máquina virtual, entonces al hace vagrant up la creará de nuevo 
vagrant -f destroy



Y esto es todo, feliz programming
Saludos
Alex


Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.