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 鈥淗omestead.yaml鈥.
  • Al editar el archivo 鈥淗omestead.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 鈥渧agrant 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 64

Preguntas 21

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]"

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)

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

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/

Docker sin dudarlo es lo mejor!

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!

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)

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

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.

creo que los cursos deberian actualizarse o en su defecto indicar las versiones con las que se esta trabajando. adicional, mi instalacion de vagrant no reconoce el comando de vagrant add box. y me da la impresion que tambien requiero virtualbox y no lo mencionan. 馃槮

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

Deber铆an de poner en la descripci贸n aclaraciones como:
-para windows
.\init.bat
-generar key ssh
-instalar virtualbox

Que tengo que hacer en este caso?

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

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 鈥淗omestead.yaml鈥.
Al editar el archivo 鈥淗omestead.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 鈥渧agrant 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.

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

Command: [鈥渟tartvm鈥, 鈥1459b777-5d02-439b-a040-73e8ea1e016a鈥, 鈥溾搕ype鈥, 鈥渉eadless鈥漖

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

me siento como en mi primera clase de programacion instalando cositas, no conosco ninguna de estas que muestran en el curso jajaj tal cual

donde encuentro la rama 2.0? No est谩 en el repo

Por si las moscas,
Si estas en windows y est谩s utilizando gitbash como consola, no debes ejecutar:
// init.bat
si no:
// bash init.sh

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鈥檛 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 CASTAEDA 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 鈥 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 鈥淐:/鈥︹, pero tampoco funcionaba. Por lo que encontre que el s铆mbolo 鈥渵鈥, en windows hace referencia al directorio 鈥渉ome鈥 del usuario. Y as铆 pude asignar la ruta correcta. En mi caso era:

~/Documents/Estudios/Platzi/PHPAvanzado

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 鈥榲irtualbox鈥 that was requested to back the machine
鈥檋omestead-7鈥 is reporting that it isn鈥檛 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?