1

Estoy intentando subir mi proyecto de laravel a un vps, obviamente pensareis que soy imbécil preguntando como configurar apache para desplegar la app, pero me sale HTTP_ERROR 500 y ya no se me ocurre nada mas que hacer, he de decir que anteriormente he conseguido desplegar otro proyecto en este mismo hosting.

He comprado un vps de ubuntu 14.04 limpio, he instalado LAMP y he configurado apache en sites-available, para generar un archivo.conf.

Lo raro es que aun deshabilitando el sites-available/000-default, copiando el fichero y cambiando la ruta por el proyecto de laravel( recien instalado en /var/www/proyecto/public) no hay manera de que coja la configuración

He activado el modulo rewrite y he puesto el nombre del host en /etc/hosts

y sigue sin funcionar.

Alguna sugerencia por favor?¿ Edito: He copiado la configuracion de mi fichero de configuracion de apache de otro servidor donde tengo desplegado un proyecto de laravel, e incluso e subido ese proyecto a este vps, y no he conseguido que funcione, he incluso reinstalado todo desde 0, pego el contenido del archivo de configuracion de apache:

<VirtualHost *:80>

    ServerName vps585365.ovh.net

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/api/public

    <Directory /var/www/api/public>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
     </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

     <IfModule mod_dir.c>
        DirectoryIndex index.php index.pl index.cgi index.html index.xhtml $
    </IfModule>

Alguien podria resumirme que archivos de apache o laravel hay que tocar o modificar para que todo funcione correctamente, porque yo creo que me estoy olvidando algo...

Existe alguna diferencia entre debian y ubuntu? Con respecto a la configuracion de apache en el servidor. Edito2: index.php de mi proyecto:

<?php

require __DIR__.'/../bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/app.php';

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

laravel.log:

    [2018-09-24 15:06:52] production.ERROR: Symfony\Component\Console\Exception\CommandNotFoundException: Command "composer" is not defined. in /var/www/apigranja/vendor/symfony/console/Application.php:515
Stack trace:
#0 /var/www/apigranja/vendor/symfony/console/Application.php(183): Symfony\Component\Console\Application->find('composer')
#1 /var/www/apigranja/vendor/symfony/console/Application.php(117): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output$
#2 /var/www/apigranja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(107): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Sym$
#3 /var/www/apigranja/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 {main}

Muchas gracias anticipado.

Saludos.

19
  • ¿No escribe nada en el registro de laravel? Commented el 20 sept. 2018 a las 12:03
  • 1
    verifica el .htaccess de laravel probablemente tengas que instalar algun modulo adicional a apache, incluso si esta desarollado en PHP7 tienes que volver a hacer la instalacion de PHP Commented el 20 sept. 2018 a las 12:27
  • No, en el registro de laravel no escribe nada, porque parece que no llega a alcanzar al index.php, y el htaccess lo tengo exactamnete igual que mi otro proyecto. Aunque ahora me muestra el index con las carpetas de mi proyecto y html en el navegador, cuando accedo a public de mi proyecto entiendo que es cuando existe algun problema en laravel ya que me sale http error 500, al menos me lo muestra jeje
    – Peisou
    Commented el 20 sept. 2018 a las 12:59
  • 1
    ¿Cómo has desplegado en el servidor a nivel de carpetas? Es decir, si /var/www/htdocs es la carpeta que sirve apache, ¿dónde has puesto tú el proyecto Laravel y la carpeta public? ¿Has copiado o movido la carpeta public o has hecho un enlace simbólico? ¿el archivo index.php de public apunta a los archivos correctamente? Commented el 21 sept. 2018 a las 11:13
  • 1
    Dice que no encuentra el comando Composer pero tu dices en algún comentario que sí que lo tienes instalado. ¿Puede ser un problema de permisos del usuario de Apache y la instalación de Composer? Commented el 24 sept. 2018 a las 16:25

1 respuesta 1

1

Era culpa de composer, en apache la configuración estaba perfecta. Para empezar, tenia el archivo .env mal escrito con lo cual no me guardaba los registros de log y no sabia que problema habia:

APP_LOG_LEVEL=debug !!!!!!!!

Gracias a eso consegui descubrir que estaba fallando composer con lo cual intento instalarlo y llegamos al siguiente fallo; necesitaba php 7.2 con lo cual instale las dependencias necesarias:

apt-get -y install unzip zip nginx php7.2 php7.2-mysql php7.2-fpm php7.2-mbstring php7.2-xml php7.2-curl

Para seguir reinstale todo composer de manera global siguiendo estos comandos:

apt update && apt upgrade
apt install php-mcrypt php-gd php-mbstring hhvm phpunit
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

Creamos o clonamos un proyecto:

git clone https://github.com/laravel/laravel.git

Instalamos composer si es clonado: composer install

Damos permisos: chown www-data: -R * && chown www-data: -R .*

Generamos la clave y renombramos el .env:

mv .env.example .env
php artisan key:generate

copiamos la clave en config/app.php

'key' => env('APP_KEY', 
'base64:7fO0S9TxZu8M2NwBWVEQsjPGRi+D1t6Ws8i0Y2yW/vE='),
'cipher' => 'AES-256-CBC',

Y ya teniendo claro como usar el virtual host de apache deberia mostrar la pagina,

1
  • Gracias a todos por vuestra ayuda, aunque parezca una tonteria, el brainstorm creo que es la mejor forma de darse cuenta de las cosas, ademas de contar los problemas que tienes para darte cuenta de tus propios fallos. Que haria sin esta comunidad <3
    – Peisou
    Commented el 25 sept. 2018 a las 7:49

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.