Problema con proyecto Laravel en shared hosting de OVH

LoBezNo

Tengo un proyecto montado en laravel y un hosting personal de ovh.
He subido el proyecto por ftp al hosting y al entrar al dominio recibo un error 500.

La estructura del hosting es esta:

Asi lo tengo despues de subir el proyecto (el contenido de la carpeta public lo he subido a la carpeta www)

He seteado los permisos de las carpetas a 775 y de los archivos a 664.

Este es mi archivo .htaccess de la carpeta public:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

Este es el archivo .env de la carpeta root:

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:kUQEHrtug5E+ZOI99vKg+BKkfU6rdzH9pUXhmbDYzsg=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack



DB_CONNECTION=mysql
DB_HOST=XXXXXXX.XXXXX.XXXX
DB_PORT=3306
DB_DATABASE=XXXXXXX
DB_USERNAME=XXXXXX
DB_PASSWORD=XXXXXXX

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=ssl0.ovh.net
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=XXXXXXXX
MAIL_ENCRYPTION=ssl

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

El problema es que en el panel de Ovh no veo que haya un acceso para poder mirar los logs de apache ni nada parecido :s

Ayer borre todo y lo volví a subir y apareció este fallo, antes de esto con una subida anterior todo funcionaba bien.

Tenéis alguna idea de que puede estar pasando?

Maat

sin mas datos solo puedo decir que apache por defecto lee de la carpeta de www (y por las imagenes parece que la has eliminado), mete tu proyecto ahí

1 respuesta
sh31k

Probablemente tengas el apuntador del shared hosting a la carpeta www/ como te dice #2

Crea una carpeta www y mete un index.html a ver si te lo lee

LoBezNo

Si si, si la tengo.
En esa carpeta es donde he metido el contenido de la carpeta public de laravel.

Es mas, si creo un archivo.html o sobreescribo el index.php de www me lo lee sin problemas. Cuando pongo el de laravel que tiene los requires a las dependencias es cuando peta

1 respuesta
Maat

#4 si tras probar no se soluciona y no tienes acceso a apache, puedes activar el modo debug de laravel y ver que escupe cuando accedes a la pagina para tener alguna pista

PD. no te olvides de desactivarlo luego

edit. revisa tambien que no tengas la configuración con virtual hosts de apache, eso podría hacer que no te este detectando tu proyecto cuando lo pones directamente en la raiz (www)

edit2. acabo de ver que tienes debug_true en el env, has revisado logs de laravel?

1 respuesta
toyakens

Por que no te haces unos pantallazos del contenido de la carpeta www y otro del del contenido del index.html (que este dentro del www)? Solo para confirmar que esta realmente ahi

madaleno

Hombre, desconozco como va Label pero a lo mejor no estaría de más que rellenaras el apartado de la base de datos, subieras la que tienes en local y eso...
Si quieres que la aplicación envíe correos también tienes que crear la cuenta de correo y rellenar el apartado en el archivo de configuración que has subido.
No estaría de más que revisaras el log general de errores que deberías de tener en el directorio anterior al público y el de la propia aplicación.

1 respuesta
LoBezNo

#5 Si, en el archivo .env tengo el debug activado.

El problema es que no llega a cargar laravel, por lo que tampoco me sale el debugger de este.

No me llega a crear ningún log en la carpeta storage/logs.. es como si no llegase a arrancar laravel

Mi carpeta www está así:

#7 Si, lo tengo rellenado, solo he enmascarado los datos reales.

Camp1

¿Has editado el index.php?

require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

Esas son las rutas por defecto, al estar en un hosting compartido tienes que ponerle la tuya tal que así:

require __DIR__.'/../tuapp/vendor/autoload.php';
$app = require_once __DIR__.'/../tuapp/bootstrap/app.php';

Prueba y nos dices

1 respuesta
LoBezNo

#9 Había pensado que el problema seria algo de rutas del index, pero la carpeta vendor si que está en un nivel superior directamente al de www, por lo que entiendo que no tengo que editarlo. Es mas, tengo todo tirado en el root del hosting, no tengo una carpeta con el nombre de mi app...

1 respuesta
Camp1

#10 y si le cambias en el .env APP_URL a la url del dominio ?

Usuarios habituales

  • Camp1
  • LoBezNo
  • madaleno
  • toyakens
  • Maat
  • sh31k