Cómo crear un enlace simbólico en hosting con Laravel, cuando tenemos un hosting y no un servidor o VPS para realizar diferentes cambios con una terminal bash de Linux.

Muchos días de dolor de cabeza, al intentar enlazar el storage de la carpeta public de Laravel, para poder mostrar las imágenes, videos, etc. en mi hosting de toda la vida.

Si estás acostumbrado como nosotros hacer páginas webs con HTML, CSS y PHP, este dolor de cabeza no lo tienes, pero claro te pasas a utilizar Laravel y te encuentras que subes el proyecto, todo muy bien, todo muy bonito, pero te das cuenta de que las imágenes no las encuentra.

Índice de contenidos

¿Por qué pasa esto?

Es porque la carpeta donde se guardan las imágenes está en otro directorio, el storage un apartado que se ha creado mientras instalabas tu Laravel en tu server local. Como con la instalación de Laravel en local, ya crea un enlace simbólico, allí no tienes ningún dolor de cabeza. Acabas el proyecto y te planteas subirlo en tu hosting favorito, y finalmente vas a ver el resultado con tu URL de dominio y lo primero que observas, es que han desaparecido todas tus imágenes en la web no funcionan (NOT FOUND).

La solución

La solución es crear un script con tu editor de código favorito, como por ejemplo visual studio code con PHP, que le vais a llamar symbol.php. Una vez escrito lo guardáis en el escritorio mismo y lo subís en vuestro proyecto con el gestor de archivos de vuestro hosting o desde el Filezilla, en la carpeta public de Laravel, cuando lo tengáis listo, finalmente solo tenéis que ejecutar el script en la url en vuestro navegador con el dominio + /symbol.php y listo problema resuelto, vuestras imágenes ya vuelven a estar disponibles.

El código

<?php

$url = '../storage/app/public';
$enlace = 'storage';

symlink($url,$enlace);

echo readlink($enlace);

¡También te puede interesar!

Si estás buscando una forma de estar al tanto de las últimas tendencias tecnológicas, las tablets son definitivamente un campo en constante evolución que no querrás perder de vista.

Mejor el video