martes, 31 de octubre de 2017

Laravel: cambio de nombre de la carpeta "public" a "public_html"

     Desde hace un año he estado trabajando con Laravel. Mi misión en la empresa, entre otras cosas, es/era actualizar de la versión 3.5 a la versión 5.2 (ahora 5.4) de ese framework. Más desarrollar nuevas vistas, modelos, controladores, etc...

     El caso es que a nivel personal, para aprender bastante más, desarrollé una web con un ex-compañero de estudios similar a una red social. Para el desarrollo usamos bitbucket.org para el intercambio de código. Para el hosting de la web uso normalmente Hostinger.com. Pero usa un nombre diferente para la carpeta public; su nombre aquí es public_html. Por lo que para hacer bien el desplegado y actualización del proyecto mediante GIT desde BitBucket lo correcto es cambiar el nombre de la carpeta public.

     Son simplemente 3 acciones:

     1º Cambiamos el nombre de la propia carpeta de public a public_html.

     2º Cambio de "public" a "public_html" en el contenido del archivo de la raíz de Laravel server.php
         if ($uri !== '/' && file_exists(__DIR__.'/public_html'.$uri)) {

         . . .
         require_once __DIR__.'/public_html/index.php';

    3º En el archivo vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php:
        Comentar linea:
        //chdir($this->laravel->publicPath());

        Insertar nueva linea:
        chdir('public_html');


     Y esto sería todo. Espero que sea útil este pequeñísimo manual. Si os interesa algo en especial sobre Laravel me lo podéis comentar e intentaré hacer el manual.

     Saludos
       @PacoValverdeCom
       @eltiopacote
Listado de artículos: https://pacovalverde.es/indice

3 comentarios:

  1. hola buena tarde, acabo de terminar mi proyecto laravel y sub'i mis archivos a hosting y me percate que yo no cuento con la carpeta public en mi hosting, asi que prosegui a utilizar la carpeta httdocs, ahí almacene los archivos public y en el mismo httpdocs cree una carpeta para almacenar los archivos restantes y configurar el index de public para que me llamase a boostrap a esa carpeta, y todo bien el detalle es al momento de subir los archivos en e administrador y guardar en la base de datos, ya que no se guardan los archivos y no que no se como hacer para que se guarden en httpdocs/copiadoras, que es la carpeta donde almaceno las imagenes
    ya le intenté poner httpdocs_path en filesystem pero no funciona.
    saludos.

    ResponderEliminar
    Respuestas
    1. Buenas, perdona por contestar tan tarde, no había visto el mensaje. Pero respondiendo a tu duda... no sé cual es la carpeta (nombre de carpeta) que debería tener "public" o "public_html" en tu servidor. Pero por lo que has comentado podría ser "httdocs". Si es así, dónde en mi artículo pone "public_html" tú deberías poner "httdocs" y con eso debería bastar.
      Por otro lado, creo que lo mejor es que se lo comentes directamente a la empresa de tu hosting, para que te indiquen que nombre debería tener la carpeta de Laravel "public". Cuéntame cómo te ha ido.
      Saludos y muchas gracias.

      Eliminar
  2. Gracias si funciona, deben considerar el nombre de la carpeta 'public' al momento de establecer los cambios. Por defecto Laravel crea la carpeta public.

    ResponderEliminar