12 Deploy de la Aplicación – Taller de desarrollo de una Tienda en Línea

Hola, bienvenido(a), al Post 12 del Taller de Desarrollo de una Tienda en línea con Bootstrap, Laravel 5.1 y la API de Paypal.

Por fin vamos a realizar el Deploy de nuestra aplicación, una disculpa por el tiempo que me tarde en realizar este post, he estado metido en algunos proyectos 🙂

La forma tradicional en que realizábamos el deploy de nuestras aplicaciones hace algunos años era: primero comprar con un proveedor un hosting y un nombre de dominio, después a través de una herramienta como cpanel accedíamos al servidor, creábamos y configurábamos nuestra base de datos, cuentas de correo, etc., por último subíamos nuestros archivos con un cliente ftp como filezilla, de esta forma nuestra aplicación ya estaba online.

Ahora lo que hacemos para aplicaciones como las basadas en Laravel es utilizar el llamado Cloud Computing, de esta forma aprovechamos servicios que nos permiten configurar un servidor a medida para nuestra aplicación.

Existen diferentes empresas que nos pueden brindar esos servicios, entre otras podemos mencionar a:

En nuestro caso y para fines didácticos usaremos Fortrabbit, aprovechando que nos brinda un trial de 72 horas, lo que nos permite hacer las pruebas necesarias sin tener que gastar un solo peso.

En el siguiente vídeo pueden ver la explicación completa:


Eso es todo para este post, compartanlo por favor, espero les haya sido de utilidad este taller, suerte con sus proyectos y les deseo lo mejor para el próximo año!

  • Linda Mejia Laura

    GRACIAS M.R OVED ……..POR SU TIEMPO Y ESFUERZO…….. FELICES FIESTAS.

    • Gracias Laura por seguir el taller, suerte con tus proyectos.

  • Celpabu

    Buenos dias ovedfs muy bueno el ultimo video 12 del deploy pero seria muy bueno si al proyecto le aumentaras por ejemplo cantidad de productos disponible que hay y cuando alguien hace el pedido y lo concretize mostrar lo que queda, ademas que un usuario nuevo pueda registrarse tanto desde la web misma o con facebook o twitter, tambien cuando un usuario le de en el boton la quiero se muestre en la parte superior en la imagen del carrito la cantidad d producto o item. y sobre el menu hacerlo algo como de prestashop o de apple me gustaria que vayas mejorando cada vez mas el proyecto tiene mucho potencial espero sigas con el proyecto

    • Roberto Figuera Espinoza

      Yo opino que ovedfs nos enseño el camino y ya queda de parte de nosotros implementarle cosas nuevas…

      • Hola Roberto, gracias por tu comentario, si, la idea era enseñar un poco de Laravel y que cada quien tratara de mejorar la aplicación, sin embargo, sí tengo un poco de tiempo tratare de complementarla un poco más, saludos!

    • Hola Celpabu, me gustaría seguir complementado la aplicación, en cuanto tenga el tiempo suficiente tratare de hacer algún otro vídeo, tomare en cuenta tus sugerencias, saludos!

  • Steven

    Buen dia. he seguido todos tus videos y han sido de gran ayuda para reforzar mis conocimientos en este framework, de verdad muchas gracias. Tengo una ultima pregunta acerca del deploy, con que fin se hace esto?, osea esto es igual a tener un sitio de hosting ya comprado o para saber que si funciona en linea y mirar con que caracteristicas hay que comprar un dominio y todo?……Muchas Gracias

    • Hola Steven, que bien que el taller te ha sido de ayuda, esa es la idea. Respecto al deploy, este se refiere a poner nuestra aplicación (desarrollada en local) en línea (producción), para que pueda ser usada para el fin por el cual fue desarrollada. La diferencia esta en que con Laravel el deploy difiere de la forma tradicional en que poníamos en línea una aplicación, de esto es de lo que trata este post. Saludos!

      • Steven

        aaa ok muchas gracias, pero lo que veo es que no va a quedar con un dominio .com.co por ejemplo o .com. porque si me gustaria poner mi pagina o mi proyecto en produccion osea en la internet. quiere decir con esto que esos que mencionas como fortrabit son sitios de hosting?… Muchas Gracias

        • Si puedes tener un dominio personalizado y Fortrabbit si te da el hosting para tu aplicación hecha en Laravel. En nuestro caso hicimos el deploy de la tienda usando un trial (de 72 horas) solo para mostrar como podría hacerse, por eso no personalizamos nuestro dominio.

          • Steven

            Hola ovedfs, me han servido muchos tus tutos. Tengo una pregunta, con respecto a pasarlo a produccion(en linea). Igualmente cualquier servicio de hosting que tenga php incorporado con cpanel puede subirse este framework?. Gracias

          • Hola, no es lo mas recomendable usar cpanel, aunque si se puede lograr, lo mas adecuado es usar servicios como el mencionado en el vídeo o parecidos. Saludo!

  • Michael mahan

    Hola Oved he seguido el tutorial y sin duda es excelente. Pero tengo un problema en el deploy, a ver si puedes ayudarme. Todo va bien hasta el comando del tunel, lo ejecuto luego pongo la clave para hacer el migrate y me salta un error y me indica el archivo bootstrapautoload.php linea 17.
    No consigo pasar de ahi!
    espero tu respuesta, muchas gracias!
    Un saludo.

    • Hola Michael, gracias por seguir el taller, es necesario modificar la conexión a mysql y agregar la del túnel, todo esto en el archivo database.php, como se indica en el vídeo. Recuerda que en las instrucciones para la migración y los seeders es necesario usar el password adecuado, como se menciona también y al ejecutar los comandos para la migración y los seeders debes tener abierto en otra terminal el tunel. Saludos!

      • Michael Mahan

        Oved, gracias por tu respuesta!
        He conseguido solucionar el problema del “migrete” asi que genial! Pero a la hora de hacer el seed me crea un conflicto entre la tabla categorías y productos, al parecer el orden del seed, tiene que ser categorías y luego productos. Si te fijas en la imagen el seed de usuarios lo hace bien. He intentado hacer el seed individual de cada tabla pero daba error también ( DB_PASSWORD=”mipassword” php artisan make:seeder productsTableSeeder –database=mysql-tunnel).
        Espero tu respuesta y muchas gracias por tu tiempo.

        Un saludo desde Madrid.

        • Si importa el orden en que se ejecutan los seeds, una solución podría ser que revises el archivo DatabaseSeeder y que pongas bien el orden en que se ejecutaran, es decir que el CategoryTableSeeder este antes del ProductTableSeeder, después haz el push de esos cambios al server en remoto, trata de volver a ejecutar en la terminal la instrucción para cargar los seeders. Si aún así no funciona, entonces, entra a mysql y revisa que las tablas estén vacías y vuelve a repetir el proceso, en ultima instancia, elimina todas las tablas de la base de datos y repite el proceso completo ya con el DatabaseSeeder correcto.

          • Michael Mahan

            Muchas gracias por tu respuesta Oved!! hice lo del archivo DatabaseSeeder y ahora va correcto!!
            Una vez mas gracias, un saludo!

  • Michael Mahan

    Hola Oved, tengo una problema con git a la hora de conectar mi maquina con fortrabbit. he conseguido hacer el Deploy de forma correcta un par de veces pero ahora me da un error y no se como solucionarlo he estado mirando por foros y hay mucha gente con el mismo problema pero no dan una solución clara. cuando hago el git push salta el siguiente error

    git push -u fortrabbit master
    Permission denied (publickey).
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights
    and the repository exists.

    He creado una nueva clave publica.
    He mirado en foros con ssh-add ssh-agent que son posibles soluciones que dan algunos desarrolladores pero no consigo resolver el problema.

    A ver si podrías echarme una mano!!
    mil gracias nuevamente.

  • Víctor Colomo

    Muchas gracias por tus videos nos son de gran ayuda. Estoy con Laravel 5.2, me envia bien los datos a paypal, pero luego a la vuelta de paypal en getPaymentStatus me da este fallo:

    Class ‘Input’ not found

    Por favor, ¿alguien me puede decir como solucionarlo?

    Gracias.

    Un saludo

    • Nikon

      Laravel 5.2 no tiene el alias Input pero tienes 2 maneras de usarlo:
      en la cabecera añades
      use IlluminateSupportFacadesInput;
      o añades manualmente el alias a configapp.php
      “‘Input’ => IlluminateSupportFacadesInput::class,”

  • caritadepoker.es

    Hola Oved,
    Tengo unas dudas con el método de pago con paypal, he creado una app y ahora que quiero recibir pagos por Internet, he creado una cuenta Business y ellos me proporcionan un un nombre de usuario API, una contraseña de usuario API y una firma.
    Aquí es donde esta mi duda pensaba que te proporcionarían una clave ‘client_id’=> y un ‘secret’=> para introducirlo en el paypal.php y funcionando pero no tengo forma de conseguirlas.
    Una ayuda por favor!!

    Un saludo gracias.

  • Alvaro Padilla

    Saludos, tengo el siguiente error al ejecutar el metodo postPayment : ReturnUrl is not a fully qualified URL.; y hago lo mismo que muestran en el vídeo. El problema esta en estas lineas de codigo:
    $redirect_urls = new RedirectUrls();
    $redirect_urls->setReturnUrl(URL::route(‘payment.status’))

    La url que retorna ra tura ‘payment.status’, no es valida. Tengo el codigo igual que el video. No se si sera algun erro por usar un host virtual.

  • Linda Mejia Laura

    Mister oved espero me pueda ayudar. He seguido con detenimiento todol el veideo del deploy pero me sale un error cuando ya trato de correr las migraciones de laravel (siguiente comando):

    DB_PASSWORD=”gKzvMnDt-=m-2CtsZC0BTs0n” php artisan migrate –database=mysql-tunnel

    el error me dice que “Database [mysql-tunnel] not configured”

    Obviamente me voy al archivo database.php y reviso que las conecciones esten correctas ( tanto mysql como mysql-tunnel ) las reviso una y otra vez y son correctas …….

    — el password tambien es correcto (adjunto imagen)

    —y tambien cuento con el TUNEL …. ABIERTO en paralelo …..

    PERO oved aun y haciendo paso a paso y teninedo todo lo anterior me sale el codigo descrito porfavor solicito de su valiosa ayuda ,. ESPERO ME pueda ayudar ya que realmente estoy muy cercana a finalizar con el deploy.. pero me he atorada ahi………………………….

    OTRA PREGUNTA……. el archivo .env se tiene que modificar lo siguiente??????

    que en lugar de file diga memcached????????

    CACHE_DRIVER=memcached
    SESSION_DRIVER=memcached
    QUEUE_DRIVER=sync

    NOTA ya intente correr las migraciones con el archivo .ENV tanto con file y memcached y me sigue saliendo el mismito error ………………..

    GRACIAS DE ANTEMANO Y YA ESPERO TAMBIEN OTROS TALLERES DIFERENTES..