Platzi
Platzi

LA EDUCACIÓN ES UN REGALO ¡ACCEDE AL PRECIO ESPECIAL!

Antes: $249
$149
Currency
Antes: $249
Ahorras: $100
COMIENZA AHORA
Termina en: 16D : 16H : 27M : 59S
Curso Avanzado de PHP

Curso Avanzado de PHP

Héctor Benitez

Héctor Benitez

Virtualización con Vagrant

3/35
Recursos

Cuando trabajas con múltiples proyectos, el hacerlo con tu máquina ya no es tan fácil ya que muchas veces necesitas diferentes versiones de PHP o tu equipo puede tener diferentes sistemas operativos, diferentes versiones de PHP o diferentes versiones de la base de datos lo cual puede ser bastante problemático. Para solucionar esto usamos la virtualización que nos permite crear entornos virtuales dentro de nuestro equipo que nos ayudan a tener un entorno de desarrollo ideal.

Existen dos vertientes principales: Vagrant y Docker. Vagrant genera máquinas virtuales completas en las cuales podemos instalar PHP, bases de datos, Apache, entre otras. La otra vertiente es Docker con la cual se generan pequeños contenedores dentro de una máquina virtual los cuales contienen la instalación de PHP o la base de datos, logrando que trabajen en conjunto.

  • Descargaremos Vagrant y lo instalaremos https://www.vagrantup.com/
  • Utilizaremos la imagen de Laravel Homestead siguiendo los pasos que aquí se describen: https://laravel.com/docs/5.7/homestead. Las imágenes de Vagrant las llamaremos box o cajas, Homestead es una de ellas.
  • Cuando inicializamos Homestead, lo que hacemos es crear un nuevo archivo de configuración “Homestead.yaml”.
  • Al editar el archivo “Homestead.yaml”, tenemos información de la ip que no es el localhost por ser máquina virtual. Aquí igualmente ligamos nuestra carpeta de proyecto a la carpeta de la máquina virtual; también podemos añadir bases de datos y diferentes proyectos dentro de la misma máquina o box.
  • Cuando usas el comando “vagrant up” se creará una máquina virtual vagrant si no existe; si existe se reiniciará la máquina existente. Se ejecutará también el aprovisionamiento que es configurar o instalar cualquier cosa que se necesite.

Aportes 59

Preguntas 15

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Hola a todos! no es estrictamente necesario que utlicen virtualizacion para continuar el curso, pero definitivamente es un tema que tenemos que conocer 😃 Saludos a todos!

Para los que tengan problemas con la private key, pueden ejecutar este comando y se las genera.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Es mi impresion o debieron cortar la parte en la que al levantar vagrant falla. ?

Si a alguien le ayuda aqui dejo un post que me sirvio para la configuración Homestead.yaml en windows
(https://medium.com/@eaimanshoshi/i-am-going-to-write-down-step-by-step-procedure-to-setup-homestead-for-laravel-5-2-17491a423aa)

Si al tratar de levantar la maquina les sale este error: Check your Homestead.yaml file, the path to your private key does not exist sigan estos pasos y listo.
https://ekiketa.es/fallo-en-homestead-check-your-homestead-yaml-file-the-path-to-your-private-key-does-not-exist/

Ojo! para evitar cualquier error, para este video antes que nada toca tener instalado virtualbox y creada una llave ssh, esto evitará errores comunes como que no encuentra la llave pública que se especifica en el Homestead.yml, o que no encuentra el VboxManage(virtualbox)

Docker sin dudarlo es lo mejor!

Compañ[email protected] les comparto un proyecto personal en docker, el cual cuenta con un servidor proxy-inverso, letsencrypt para los certificados ssl, phpmyadmin, mysql, y un segmento para proyectos en php con servidor nginx.

Debo mejorar la documentación pero seria muy grato que le dieran un vistaso y me pudiecen hacer remomendaciones.

https://github.com/IngenieroCesar/laradock-compose

Si alguno puede llegar a mejorarlo hagamelo saber por favor. Gracias.

Sin duda la virtualización es un tema importante a conocer, sin embargo, yo prefiero trabajar en mi entorno normal ya que no suelo cambiar entre versiones y siempre suelo tener actualizados mis proyectos ^^

Si quieres hacer una url del estilo cursophp . test sin virtualización de entornos de trabajo tienen que crear virtualhosts dentro de su servidor apache, en Ubuntu y Xampp es super fácil:D!

Que tengo que hacer en este caso?

Siempre es importante leernos la documentación de cada herramienta que vamos a estar utilizando.

Lo mejor y lo que más se está usando en ambientes de desarrollo es Docker, es un buen momento de aprenderlo.

Debe instalar laradock

Si les genera error al ejecutar init.bat.
bash: init.bat: command not found![](
Solucion:
No ejecutes eso en git bash. Ejecútelo en la línea de comando de Windows. O mejor aún, simplemente haga doble clic init.baty lo ejecutará en relación con su directorio de inicio de Windows.
fuente: [(https://stackoverflow.com/questions/42775652/homestead-nor-homestead-yaml-is-showing-up-after-running-bash-init-bat)]

Excelente, para el desarrollo local y por integracion continua prefiero LARADOCK, sin embargo por velocidad y practicidad en Windows uso Laragon que tambien es un software muy fácil de manejar en Windows, sin embargo cuando trabajo en proyectos donde algunos en ocasiones trabajamos en otros sistemas como GNU\Linux o Mac OSX prefiero Laradock

Descargaremos Vagrant y lo instalaremos https://www.vagrantup.com/
Utilizaremos la imagen de Laravel Homestead siguiendo los pasos que aquí se describen: https://laravel.com/docs/5.7/homestead. Las imágenes de Vagrant las llamaremos box o cajas, Homestead es una de ellas.
Cuando inicializamos Homestead, lo que hacemos es crear un nuevo archivo de configuración “Homestead.yaml”.
Al editar el archivo “Homestead.yaml”, tenemos información de la ip que no es el localhost por ser máquina virtual. Aquí igualmente ligamos nuestra carpeta de proyecto a la carpeta de la máquina virtual; también podemos añadir bases de datos y diferentes proyectos dentro de la misma máquina o box.
Cuando usas el comando “vagrant up” se creará una máquina virtual vagrant si no existe; si existe se reiniciará la máquina existente. Se ejecutará también el aprovisionamiento que es configurar o instalar cualquier cosa que se necesite.

¿Alguien utilizó Docker para crear un contenedor para PHP y Composer?. Si alguien tiene una idea o pudiera explicarme como lo hizo lo agradecería mucho.

quienes quieran trabajar con el framework laravel y con containers o virtualizacion, usen laravel sail, es un docker muyyy sencillo

No me deja editar el archivo yaml

Actualmente la documentación de Homestead indica que una vez clonado el repo hacer chekout a la rama release, así solucioné mis errores:

git checkout release 

Hola disculpen? En el caso que yo este utilizando ya virtualbox centos7 porque estoy en un computadora window? siempre se puede usar vagrant y hacer todo el proceso?

Complicado! en mi opinion es dar muchas vueltas y no es el tema central del curso.

creo que para todos, no hacer este paso y si el problema es php, lo ideal seria usar wampserver, http://www.wampserver.com/en/, que es lo mismo que xampp, la diferencia es que tu decides con que versión de php quieres usar, y si quieres cambiar otra versión de php el da la opción de escoger y si no la posees también te da la opción de descargar

Si a alguien le da algún error al instalar homestead, prueben con esto:
cd
cd .vagrant.d/tmp/
rm -rf ~/.vagrant.d/tmp/
vagrant box add --insecure laravel/homestead
Esto elimina un archivo temporal que se crea al intentar instalar homestead la primera vez y luego se reinstala con el parámetro --insecure.

Hola todos, tengo un problema con la virtualizacion trabajo en windows y cuando coloco el comando vagrant up me dice este error "An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Couldn’t open file /C:/Users/Milton/Desktop/PHPAvanzado/base"
La carpeta base , no entiendo como la agrego.
Gracias

Cuando intento descargar el homestead me da el siguiente error

OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

Esto ocurre una vez que elijo la opción 3 (virtual box)

Agradezco la ayuda
Saludos!

Al momento de usar

vagrant box add laravel/homestead

hay alguna diferencia si utilizo Hyper-V?

solo puedo instalar vagrant 2.0.2 y necesito 2.1.0 pero no la puedo instalar estoy en lubuntu 😦

Ok a comenzar

Cual es la diferencia entre Vagrant y Docker? Porque no se hace en docker?

Estoy haciendo un proyecto en laravel 5.4.36 quiero compilar el comando PRESET . -> no esta definidio sera por version ??

Pra instalar vagrant en ubuntu es con el sigueinte comando: sudo apt install vagrant

Para los que tengan ZoneAlarm : Desbloquear archivo Hosts
en configuracion avanzada del firewall.
Sino se desbloquea, no se puede acceder desde la url.

hola ayuda porfa!
cuando pongo el comando vagrant box add laravel/homestead me sale lo siguiente:

Sin duda, para los usuarios de Windows https://laragon.org/

vagrant cuando lo suba en productivo tengo que subirlo es decir usar vagran en productivo ?

Buenas, estaba probando la instalación de la maquina virtual pero me dice que es privada y me saca.

Sinceramente no conocía Vagrant, parece interesante.

Por tener un caracter especial en el nombre de usuario del sistema operativo (CARLOS CASTAÑEDA en mi caso), en el CMD abierto como administrador toca realizar este paso previo

set VAGRANT_HOME=C:\HashiCorp\Vagrant

Además en el archivo de configuración Homestead.yaml se debe cambiar las rutas a absolutas y todas las copiarlas a rutas que no estén relacionadas con nombres de caracteres especiales (Por ejemplo: C:\vagrant.ssh ). Esta solución me funcionó luego de mucho intentar, si alguien tiene una mejor solución por aportar BIENVENIDA!.

Ojo con esta aclaración de Vagrant, llevo días sacandome los ojos con que mi nombre de usuario tenga “Ñ”

Windows users should not use the ~/ path syntax and instead should use the full path to their project, such as C:\Users\user\Code\project1.

Yo lo hice tanto en windows como en linux, si necesitan de ayuda por algun error dejo mi numero +573174219991 con gusto los ayudare

Cuando trabajas con múltiples proyectos, el hacerlo con tu máquina ya no es tan fácil ya que muchas veces necesitas diferentes versiones de PHP o tu equipo puede tener diferentes sistemas operativos, diferentes versiones de PHP o diferentes versiones de la base de datos lo cual puede ser bastante problemático. Para solucionar esto usamos la virtualización que nos permite crear entornos virtuales dentro de nuestro equipo que nos ayudan a tener un entorno de desarrollo ideal.

Existen dos vertientes principales: Vagrant y Docker. Vagrant genera máquinas virtuales completas en las cuales podemos instalar PHP, bases de datos, Apache, entre otras. La otra vertiente es Docker con la cual se generan pequeños contenedores dentro de una máquina virtual los cuales contienen la instalación de PHP o la base de datos, logrando que trabajen en conjunto.

No entiendo, como se relaciona esto con Virtual Box, por ejemplo podrías usar virtual box en vez de vagrant no?

Yo uso XAMPP un compilado .exe muy comodo …a un solo click

Para que utilizan Windows 10, por lo menos yo, me encontre el problema de que al iniciar la Maquina Virtual, no me mostraba ninguna carpeta. Después de varias pruebas, incluso poniendo la ruta completa “C:/…”, pero tampoco funcionaba. Por lo que encontre que el símbolo “~”, en windows hace referencia al directorio “home” del usuario. Y así pude asignar la ruta correcta. En mi caso era:

~/Documents/Estudios/Platzi/PHPAvanzado

There was an error while executing VBoxManage, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: [“startvm”, “1459b777-5d02-439b-a040-73e8ea1e016a”, “–type”, “headless”]

Stderr: VBoxManage.exe: error: Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

Yo instale Laragon para Windows, espero no sea un foco de conflicto mas adelante.

Hola, al ejecutar vagrant up, me sale este error.
➜ homestead git:(master) vagrant up
The provider ‘virtualbox’ that was requested to back the machine
’homestead-7’ is reporting that it isn’t usable on this system. The
reason is shown below:

Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.
Vagrant uses the VBoxManage binary that ships with VirtualBox, and requires
this to be available on the PATH. If VirtualBox is installed, please find the
VBoxManage binary and add it to the PATH environmental variable.

Alguna solución?

Siempre es interesante aprender cosas nuevas pero no se si este capítulo de Virtualización añade excesiva complejidad al curso aun siendo uno avanzado.

Es muy dificil hacer esto mismo en docker? creo que mi pc sufrira de falta de ram al tener una maquina virtual corriendo todo el tiempo. (Si alguien puede ponerme alguna guia o la documentación que necesito estaría genial)

No entiendo por que un curso de php avanzado tienen que enseñar virtualizacion.
¿No podrían crear un curso aparte acerca de esto y así evitar un poco perder el tiempo?

me recordo el videjuego VAGRANT STORY siahdauda bueno empezamos bien

huy GRACIAS POR NO decir que habia que elegir una carpeta en algun lugar para instalar el BOX nunca lo dijo y se me exploto la raiz de windows user

para instalar en linux solo tirar estos comanditos:

sudo apt install virtualbox vagrant

luego comprobamos que todo este ok:

wich virtualbox

wich vagrant

a seguir el curso relax

Al hacer:

vagrant up

Daba errores.

Investigué en los comentarios:

  1. Instala Virtual Box en tu compu (gracias Profe)
  2. Si te da problemas con la private key, este comando en la terminal las genera:
    ssh-keygen -t rsa -b 4096 -C “[email protected]
    (gracias Nycgia)

Despues de ver esta clase, y aun siendo novato en temas de servidores y virtualizaciones, creo que usare Laragon, porque me parecio muy facil para emular localhost y ademas de eso tiene todas las versiones de Php que necesitemos y las bases de datos como Apache y Mysql … en caso de que no pueda avanzar lo intentare con Docker.

una consulta , yo tengo una aplicacion en php que esta con el framework codeineiter 3.0 y lo quiero integrar con php 5.3 se puede?

lo que deseo hacer es desde el php 5.3 (programacion orientado a objetos ) es llamar a la funcion de codeineiter 3.0 se puede??

ayuda porfavor ?

estimado profesor: podria compartir un manual practico de como instalar un entorno virtual ?

no es mejor utilizar virtual box ? y instalar linux o centos y listo?? o no se ayuda porfavor?