mod_rewrite htaccess enable a2enmod php apache .htaccess ubuntu mod-rewrite

php - htaccess - Obteniendo un error interno del servidor 500 en Laravel 5+ Ubuntu 14.04



mod_rewrite htaccess (24)

He instalado Laravel muchas veces en el sistema operativo Windows, pero nunca ocurrió este tipo de problema. Este servidor interno 500 generalmente ocurre cuando su módulo "mod_rewrite" no está encendido.

Sin embargo, en Ubuntu 14.04 este problema me está dando dolor de cabeza. He instalado rewrite_mod pero tampoco funciona. He dado acceso a todas mis carpetas y archivos dentro, es decir

/ var / www / html / laravel_project

Aún así no funciona. Cambió .htaccess también de original a esto.

+FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]

También tengo todas las extensiones necesarias para Laravel 5+. ¿Queda algo que no hice?


A veces hay un problema con la versión de PHP. Necesitamos cambiar la versión de php del servidor. Simplemente escriba debajo de la cadena en el archivo .htaccess :

AddHandler application/x-httpd-php5 .php


Acabo de ejecutar el siguiente comando:

php artisan passport:install

Estaba usando el pasaporte para ejecutar mi aplicación completamente basada en API y Vue.js. Laravel funcionó bien, pero cada vez que intentaba iniciar sesión a través de mi API recibía el error. Después de ejecutar el comando y actualizar client_id y client_secret en mis archivos Laravel y luego enviar las nuevas actualizaciones al servidor en vivo, el problema se resolvió. En mi modelo de usuario tengo un script de la siguiente manera:

public function generateToken($request) { $http = new /GuzzleHttp/Client(); $response = $http->post(URL::to(''/'').''/oauth/token'', [ ''form_params'' => [ ''grant_type'' => ''password'', ''client_id'' => ''6'', ''client_secret'' => ''x3yhgWVqF8sSaMev4JI3yvsVxfbgkfRJmqzlpiMQ'', ''username'' => $this->email, ''password'' => $request->input(''password''), ''scope'' => '''', ], ]); // Lets get an array instead of a stdObject so that we can return without errors $response = json_decode($response->getBody(), true); return oq_api_notify([ ''auth'' => $response, // API ACCESS TOKEN ''user'' => $this->load([''settings''])->toArray(), ], 201); }

Acabo de actualizar client_id y client_secret solo y luego los guardé. Dado que el comando de pasaporte le da dos claves de cliente:

1) Cliente de acceso personal (client_id y client_secret)

2) Cliente de concesión de contraseña (client_id y client_secret)

Utilicé el cliente de concesión de contraseña. Espera que esto ayude a alguien por ahí :)


Asegúrate de que la carpeta de almacenamiento con escritura anterior (chmod o + w) funcione para mí como un encanto.


Cree el archivo .env y también ejecute:

sudo chmod 755 -R laravel chmod -R o+w laravel/storage

Esto funcionó para mí después de hacer un proyecto git.

Después de crear el archivo .env y generar la clave, ejecute el siguiente código:

php artisan key:generate


De acuerdo con los registros:

[06-Feb-2016 22:38:48 Europe/Berlin] PHP Warning: require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:38:48 Europe/Berlin] PHP Fatal error: require(): Failed opening required ''/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php'' (include_path=''.:/Applications/MAMP/bin/php/php7.0.0/lib/php'') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:43:37 Europe/Berlin] PHP Warning: require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:43:37 Europe/Berlin] PHP Fatal error: require(): Failed opening required ''/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php'' (include_path=''.:/Applications/MAMP/bin/php/php7.0.0/lib/php'') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17

Hay algunos errores al abrir archivos en la carpeta / vendor.

Al instalar y actualizar a través del compositor, finalmente pude resolver el problema.

sudo composer install sudo composer update


Después de instalar ejecutar debajo del comando

php artisan cache:clear php artisan config:clear

aquí "laravel" es el nombre del directorio donde se instaló laravel


Ejecute estos dos comandos en el directorio donde está instalado Laravel:

sudo chmod 755 -R DIRECTORY_NAME chmod -R o+w DIRECTORY_NAME/storage

Luego borre el caché y descargue la carga automática:

php artisan cache:clear composer dump-autoload


Ejecute estos dos comandos en la raíz de laravel

encontrar * -tipo d -print0 | xargs -0 chmod 0755 # para directorios

encontrar . -tipo f -print0 | xargs -0 chmod 0644 # para archivos


Intenta comprobar si tienes .env archivo .env .

Principalmente, esto puede causar algo así. Intente crear un archivo, luego copie todo desde .env.example , péguelo en el archivo creado y .env nombre .env . o jsut simplemente cambie el nombre del archivo .env a .env y ejecute php artisan key:generate


Leí todos los comentarios y sugerencias. 500 - CÓDIGO DE ERROR HTTP representa un error interno del servidor.

Razones para este error:

  • Principalmente debido a problemas de permisos
  • Variables de entorno no encontradas o archivo .env no encontrado en su directorio raíz
  • Problema de extensiones PHP
  • Problema de base de datos

Reparar:

  • Establezca los permisos correctos:
    • Ejecute estos comandos (Ubuntu / Debian)

find /path/to/your/root/dir/ -type f -exec chmod 644 {} /; find /path/to/your/root/dir/ -type d -exec chmod 755 {} /; chown -R www-data:www-data /path/to/your/root/dir/ chgrp -R www-data storage bootstrap/cache chmod -R ug+rwx storage bootstrap/cache

  • Si el archivo .env no existe, cree uno touch .env y pegue las variables de entorno y luego ejecute

php artisan key:generate php artisan cache:clear php artisan config:clear composer dump-autoload

  • Verifique su archivo php.ini y elimine el comentario de las extensiones que necesita (en algunos casos debe instalar la extensión ejecutando este comando apt-get install php7.2-[extension-name]
  • Verifique las credenciales y valores de su base de datos en el archivo .env . Y otorgue permisos al usuario de la base de datos para esa base de datos.

Estos son algunos problemas comunes que probablemente enfrentará al implementar su aplicación laravel y cuando comience a recibir todos estos comandos, le sugiero que cree un script que le ahorrará tiempo.


Lo arreglé con este comando:

rm -rf app/storage/logs/laravel.logs chmod -R 777 app/storage, php artisan cache:clear, php artisan dump-autoload OR composer dump-autoload

Que reiniciar un servidor, XAMPP o otro y eso debería estar funcionando.


Me enfrenté a este problema y lo solucioné actualizando mi versión de php en apache hasta 5.6.x


Me he enfrentado a este problema muchas veces. Pruebe uno de estos pasos, me ayudó mucho. Quizás también te ayude.

  1. En primer lugar, verifique los permisos de su archivo.
  2. Para arreglar los permisos de archivos sudo chmod 755 -R your_project
  3. Luego chmod -R o + w your_project / storage para escribir el archivo en la carpeta de almacenamiento.
  4. php artisan cache: clear
    compositor dump-autoload
  5. clave artesanal php: generar
  6. Luego verifique los requisitos del servidor según el requisito de laravel.
  7. Muchas veces recibiste este error debido a la versión php . Intente cambiar su versión de php en cpanel.
  8. Luego configure su archivo .htaccess correctamente

Me he enfrentado a un error similar. Revisé el inicio de sesión /var/log/apache2/error.log y encontré una excepción UnexpectedValueException

Cambié el propietario a mi usuario apache de la carpeta de almacenamiento en el directorio del proyecto.

sudo chown -R www-data:www-data ./storage

En mi caso, el propietario del proceso apache2 es www-data , así que cambie esto al suyo, esto se puede encontrar en el archivo de configuración apache2. Espero que esto te sea útil.


Para aquellos de ustedes que como yo todavía recibimos errores después de probar todas las otras respuestas:

Verifique la versión de los usos de php apache, la última versión solo funciona con php7.1. Entonces tienes que:

sudo a2dismod php[yourversion] sudo a2enmod php7.1 sudo systemctl restart apache2

espero que esto ayude


Por no tener derecho a escribir el directorio del registro.
almacenamiento chmod 755 -R


Primero permita todos los permisos para su carpeta de proyecto (digamos que se llama laravel), para la subcarpeta de almacenamiento y su subcarpeta de registros y para la subcarpeta de proveedores (laravel / storage, laravel / storage / logs y laravel / vendor).

Luego verifique si tiene un archivo .env; de lo contrario, puede ejecutar:

$ mv .env.example .env

cambiar el nombre de su .env.ejemplo incorporado al .env necesario.

De lo contrario, active el modo de depuración: abra .env y configure

APP_DEBUG=true

y abra laravel / config / app.php y cambie

''debug'' => env(''APP_DEBUG'', false),

a

''debug'' => env(''APP_DEBUG'', true),

para que pueda averiguar cuál es la razón de su error.


Que otra solución a este problema:

Instale los paquetes necesarios ejecutando el comando compositor desde la raíz del proyecto:

sudo composer install

ACTUALIZAR:

  • No debe ejecutar este comando en un servidor de producción, pero algunos problemas con el compositor pueden resolverse con esto en entornos locales.

EDITAR:


Solo cambie el permiso de la carpeta web a través de este comando:

sudo chmod 755 -R your_folder


Tenía instalado PHP 7.0 y PHP 7.1 y estaba usando PHP 7.1 en la línea de comandos y PHP 7.0 estaba habilitado en Apache, ese desorden puede traer problemas cuando está usando Laravel Framework y localhost Apache2 con laravel.

Revise su archivo de compositor primero para ver su versión de PHP.

"php": "^7.1.3", "laravel/framework": "5.6.*",

Verifique su versión actual de php en la línea de comando

php -v

Verifique su versión actual de php habilitada en Apache, lo hice usando el navegador.

http://localhost

Si no es lo mismo, deshabilite la versión actual y habilite la más nueva.

sudo a2dismod php7.2 sudo a2enmod php7.1 sudo service apache2 restart

Después de eso, cambie los permisos de la carpeta

sudo chmod 755 -R blog

para carpeta de almacenamiento

chmod -R o+w blog/storage


Tengo un problema similar con un host compartido. Estaba teniendo 500 error. Acabo de arreglar comprobando la versión de Laravel y la versión de PHP. El error se debió a que Laravel 5.6 no se ejecuta en PHP 7.0.x. Una vez que sé esto, simplemente reconfigure el proyecto a Laravel 5.5 que es compatible con PHP 7.0.x, ahora todo está bien. Otra razón por la que tengo problemas a veces es que el FTP me daña archivos y tengo que cargar el proyecto más de una vez. Espero que esta ayuda en el futuro no haya encontrado tanta información sobre este tema.


Un problema frecuente al usar git:

Laravel''s .gitignore ignores the .env file which when missing generates this error

Lo resolvió agregando manualmente un archivo .env en el servidor o cargándolo a través de FTP


si está en un servidor en vivo intente esto

<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> Options +FollowSymLinks RewriteEngine On RewriteBase / # 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]

entonces también asegúrese de que la versión de php en su composer.json sea la misma que la de su servidor.

Verifique su versión de php en su terminal usando php -v


Finalmente superó el problema

  • El problema no era el archivo .htaccess ni el index.php. El problema estaba en acceder a los archivos y requerir permisos.

Para resolver el problema, ejecuté los siguientes comandos a través de la terminal.

sudo chmod -R 755 laravel_blog

y luego escriba a continuación para permitir que laravel escriba el archivo en la carpeta de almacenamiento

chmod -R o+w laravel_blog/storage

Estos dos comandos resolvieron el problema.