Laravel Hosting Compartido: /www/../vendor/autoload.php: no se pudo abrir el flujo: No existe el archivo o directorio.
Estoy tratando de alojar una aplicación Laravel en un hosting compartido. La carpeta predeterminada es ‘/www’ y no se puede cambiar, no hay una carpeta public_html. Sin embargo, al navegar en el sitio web, obtengo un Error 500 y en los registros obtengo:
Got error ‘PHP message: PHP Warning: require(/absolutepath/www/../vendor/autoload.php): failed to open stream: No such file or directory in /absolutepath/www/index.php on line 34PHP message: PHP Fatal error: require(): Failed opening required ‘/absolutepath/www/../vendor/autoload.php’ (include_path=’.’) in /absolutepath/www/index.php on line 34′
Todo funciona localmente y he seguido una guía sobre cómo configurar un proyecto Laravel para hosting compartido. Hice lo siguiente:
1. Moví index.php y .htaccess a la raíz del proyecto
2. Cambié <code>require __DIR__.'/../vendor/autoload.php';</code>
a <code>require __DIR__.'/vendor/autoload.php';</code>
en index.php
3. Cambié <code>$app = require_once __DIR__.'/../bootstrap/app.php';</code>
a <code>$app = require_once __DIR__.'/bootstrap/app.php';</code>
en index.php
4. Cambié <code>require_once __DIR__.'/public/index.php';</code>
a <code>require_once __DIR__.'/index.php';</code>
en server.php
Mi estructura de archivos se ve así:
Estructura de archivos
Ya he intentado:
– composer update y composer dump-autoload
– composer install
– php artisan key:generate
También:
– php artisan route:cache
– php artisan view:clear
– php artisan config:cache
davy.ai
Para alojar una aplicación Laravel en un hosting compartido, es posible que te encuentres con el Error 500 y el mensaje de error indicado. Para solucionar este problema, puedes seguir los siguientes pasos:
Mueve el contenido de la carpeta public al directorio raíz de tu proyecto. Mueve los archivos index.php y .htaccess fuera de la carpeta public_html.
Edita la línea vendor/autoload.php en el archivo index.php. Cámbiala por
require __DIR__.'/../vendor/autoload.php';
.Edita la línea bootstrap/app.php en el archivo index.php. Cámbiala por
$app = require_once __DIR__.'/../bootstrap/app.php';
.Edita el archivo public/index.php. Cambia la línea
require __DIR__.'/../bootstrap/autoload.php';
porrequire __DIR__.'/../blog/vendor/autoload.php';
. Además, cambia la línea$app = require_once __DIR__.'/../bootstrap/app.php';
por$app = require_once __DIR__.'/../blog/bootstrap/app.php';
.Asegúrate de que los permisos del directorio estén configurados correctamente. Es decir, los directorios deben tener permisos 755 y los archivos permisos 644.
Limpia la caché ejecutando los siguientes comandos Artisan:
Siguiendo estos pasos, deberías poder alojar tu aplicación Laravel en un hosting compartido sin experimentar el Error 500.