es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo vincular almacenamiento público sin acceso SSH o trabajos cron?

Necesito implementar una aplicación Laravel que utiliza la carpeta storage como almacenamiento público, pero no tengo acceso SSH. Estoy tratando de encontrar un sustituto para:

php artisan storage:link

Encontré este hilo: Generando un enlace al poner esta ruta en el archivo web.php:

Route::get('generate', function() {
    \Illuminate\Support\Facades\Artisan::call('storage:link');
    echo 'ok';
});

Pero no resolvió el problema. ¿Lo estoy haciendo mal? ¿Cómo enlazo el almacenamiento público?

Edit: El servidor de mala calidad en el que estoy tratando de implementar no ofrece trabajos programados cron.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Si no tienes acceso SSH, aún puedes enlazar la carpeta de almacenamiento público en Laravel siguiendo los siguientes pasos:

    1. Crea una nueva carpeta llamada public_html en el directorio de tu proyecto Laravel.
    2. Mueve todos los archivos y carpetas de la carpeta public a la carpeta public_html.
    3. Edita el archivo index.php en la carpeta public_html y cambia la línea require __DIR__.'/../bootstrap/autoload.php'; a require __DIR__.'/../tu_carpeta_de_proyecto/bootstrap/autoload.php';.
    4. También en index.php, cambia la línea $app = require_once __DIR__.'/../bootstrap/app.php'; a $app = require_once __DIR__.'/../tu_carpeta_de_proyecto/bootstrap/app.php';.
    5. En tu proyecto Laravel, crea un nuevo archivo routes/web.php si aún no existe.
    6. Agrega el siguiente código a routes/web.php:
    Route::get('/linkstorage', function () {
        Artisan::call('storage:link');
    });
    
    1. Guarda el archivo y visita la URL de tu sitio seguida de /linkstorage. Por ejemplo, `http://tusitio.com/linkstorage`.
    2. Si ves ok, la carpeta de almacenamiento público ha sido enlazada correctamente.

    Este método funciona creando una nueva carpeta llamada public_html y moviendo todos los contenidos de la carpeta public a ella. Luego, el archivo index.php se modifica en consecuencia. Finalmente, se crea una nueva ruta en routes/web.php para llamar al comando storage:link cuando se visite `http://tusitio.com/linkstorage`.

Comments are closed.