crear acces directe de storage

Created at: 2022-08-07 06:37:36 | Updated at: 2024-12-07 11:28:28

Quan executes php artisan storage:link, aquest comandament crea un enllaç simbòlic entre public/storage i storage/app/public. Aquest error indica que l'enllaç simbòlic ja existeix, per tant no el pot tornar a crear.

Solució:


1. Entendre el Problema

En un entorn de desenvolupament local, normalment faries servir el comandament següent per crear un enllaç simbòlic del directori storage/app/public al directori public/storage:

php artisan storage:link

Això crea un enllaç simbòlic perquè els fitxers emmagatzemats a storage/app/public siguin accessibles públicament a través de public/storage.

2. Problema en Hosting Compartit

En molts entorns de hosting compartit, és possible que no puguis crear enllaços simbòlics amb el comandament php artisan storage:link a causa de les limitacions del servidor (per exemple, deshabilitació d'enllaços simbòlics per seguretat).

3. Solució Manual en Hosting Compartit

Pas 1: Copia el Contingut Manualment

Com que pot ser que no puguis crear enllaços simbòlics, la solució consisteix a copiar manualment el contingut del directori storage/app/public al directori public/storage.

Pas 2: Configura el Directori Correctament

És important que cada vegada que afegeixes o modifiques fitxers a storage/app/public, repliquis aquests canvis manualment a public/storage.

4. Automatitzar amb un Script

Si prefereixes no fer-ho manualment cada vegada, pots crear un simple script PHP o utilitzar un script en el teu servidor que faci la còpia de fitxers automàticament.

Exemple de script en PHP per copiar fitxers:

<?php

$source = __DIR__.'/../storage/app/public';
$destination = __DIR__.'/storage';

function copyFiles($source, $destination)
{
    $directory = opendir($source);
    @mkdir($destination);

    while ($file = readdir($directory)) {
        if ($file != '.' && $file != '..') {
            if (is_dir($source . '/' . $file)) {
                copyFiles($source . '/' . $file, $destination . '/' . $file);
            } else {
                copy($source . '/' . $file, $destination . '/' . $file);
            }
        }
    }
    closedir($directory);
}

copyFiles($source, $destination);

Instruccions:

5. Consideracions

Conclusió

Amb aquests passos, podràs crear un accés directe al directori storage en un hosting compartit, fins i tot si no pots utilitzar enllaços simbòlics. La solució manual és senzilla però efectiva, i pots automatitzar el procés si cal.

No valid image directory found or the category is not valid for the gallery.

Back to Posts
crear acces directe de storage

Title

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.