php - que - laravel getting started
Laravel pantalla blanca en blanco (19)
Mi sitio laravel estaba funcionando antes, recientemente actualicé a Apache 2.4 y PHP 5.5.7.
Ahora recibo una pantalla blanca en blanco cuando voy a laravel.mydomain.com, nada en los registros de errores de apache, rutas y etc. debería estar bien, ya que funcionó antes.
.htaccess se carga a medida que obtengo un 500 cuando inserto una línea no válida en /var/sites/laravel/public/.htaccess.
Aquí está mi .htaccess:
$ cat /var/sites/laravel/public/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Aquí está mi directiva de host virtual:
DocumentRoot "/var/sites/laravel/public"
ServerName laravel.mydomain.com
<Directory "/var/sites/laravel/public">
AllowOverride All
allow from all
Options +Indexes
Require all granted
</Directory>
Y apachectl -S
$ /usr/local/apache2/bin/apachectl -S
VirtualHost configuration:
*:* is a NameVirtualHost
default server mydomain.com (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
port * namevhost mydomain.com (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
port * namevhost laravel.mydomain.com (/usr/local/apache2/conf/extra/httpd- vhosts.conf:34)
ServerRoot: "/usr/local/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/usr/local/apache2/logs/error_log"
Mutex rewrite-map: using_defaults
Mutex default: dir="/usr/local/apache2/logs/" mechanism=default
PidFile: "/usr/local/apache2/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="daemon" id=1 not_used
Group: name="daemon" id=1 not_used
apache
¿ Esta respuesta describe o ayuda su situación? La actualización a Apache 2.4 incluye algunos cambios en la configuración de Apache.
Laravel
¿Estás revisando los registros de Laravel o los registros de Apache?
Desde que actualicé a Laravel 4.1, tuve "errores" en la pantalla blanca (WSOD) cuando la aplicación no pudo escribir en la ubicación del registro. Siempre he resuelto esto haciendo que el directorio de aplicaciones / almacenamiento sea editable por Apache (ya sea que el grupo se pueda escribir en "www-data", "apache" o "world-writable"), eso depende de la configuración de tu servidor.
Usuario del servidor web
En los servidores Ubuntu / Debian, su PHP puede estar ejecutándose como usuario "www-data". En los servidores CentOS / RedHat / Fedora, PHP puede estar ejecutándose como usuario "apache".
Asegúrese de que sus archivos sean propiedad del usuario que ejecuta PHP:
# Debian/Ubuntu
$ sudo chown -R www-data /path/to/laravel/files
# CentOS/RedHat/Fedora
$ sudo chown -R apache /path/to/laravel/files
Tenga en cuenta que es posible que no se esté ejecutando como usuario www-data o apache. ¡Depende de tu hosting y configuración!
Laravel 4
# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w app/storage
# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w app/storage
Laravel 5
# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w storage
# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w storage
#####
# The bootstrap/cache directory may need writing to also
##
# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w bootstrap/cache
# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w bootstrap/cache
A veces es porque laravel 5.1 requiere PHP> = 5.5.9. Actualizar php resolverá el problema.
Cuando era nuevo en Linux. Por lo general, encontré este error con mi Proyecto Laravel. Errores blancos significa error. Puede tener algún problema de permiso o error.
Solo tienes que seguir dos pasos, y trabajarás como campeón :)
(1) Da el permiso. Ejecute estos comandos desde el directorio raíz de su proyecto
(a) sudo chmod 777 -R storage
(b) sudo chmod bootstrap/cache
(2) Si clonaste el proyecto o lo sacaste de github, ejecuta
composer install
(3) Configure su archivo .env correctamente y su proyecto funcionará.
En casos normales, los errores deben registrarse a menos que
El script no puede escribir en el archivo de registro
- comprobar su camino
- permisos
O se produjo un error en los registros del servidor de la aplicación de control de nivel superior, como Appache || Nginx
O son los límites de recursos Al igual que la configuración PHP ini
memory_limit
max_input_time
max_execution_time
O el límite del sistema operativo, etc.
En mi caso, reiniciar apache solucionó el problema. para Ubuntu / Debian:
sudo service apache2 restart
Estaba luchando con un problema similar en un servidor de CentOS. Usar php artesanal serv y acceder a él a través del puerto 8000 en la máquina local funcionó bien, pero no pude hacer que mis máquinas remotas cargaran una vista en particular. Podría devolver cadenas muy bien, y algunas vistas se estaban cargando. Perseguí mi cola en los permisos por un tiempo antes de que finalmente me diera cuenta de que era un problema de SELinux. Simplemente lo configuré de forzado a permisivo y funcionó. Espero que ayude a alguien más que pueda estar enfrentando el mismo problema.
setenforce permissive
Esto cambia los trabajos para mi configuración de servidor localhost Ubuntu 14.xx
# Apply all permission to the laravel 5.x site folders
$ sudo chmod -R 777 mysite
También realizó cambios en el sitio httpd disponible configurando la configuración de Apache2
Agregar configuraciones:
Options +Indexes +FollowSymLinks +MultiViews
Require all granted
Extraño para mí, pero en mi caso tuve que borrar el caché de laberinto para resolver el problema.
La razón puede ser Middleware
si olvida poner el siguiente código al final de la función de handle
return $next($request);
Los siguientes pasos resolvieron el problema de la pantalla en blanco en blanco en mi Laravel 5.
- Ve a la carpeta raíz de Laravel
- Dar permiso de escritura a
storage
directoriosbootstrap/cache
y destorage
sudo chmod -R 777 almacenamiento de arranque / caché
- Cambie el nombre de
.env.example
a.env
- Genere la clave de la aplicación con el siguiente comando en terminal / símbolo del sistema desde la raíz de Laravel:
clave php artesanal: generar
Esto generará la clave de cifrado y actualizará el valor de APP_KEY
en el archivo .env
Esto deberia resolver el problema.
Si el problema persiste, actualice config/app.php
con la nueva clave generada a partir del comando de clave de clave artesanal anterior:
''key'' => env(''APP_KEY'', ''SomeRandomString''),
a
''key'' => env(''APP_KEY'', ''KEY_GENERATED_FROM_ABOVE_COMMAND''),
Obtuve esto de los foros de Laravel, pero si actualizó recientemente las versiones de Laravel Y las versiones de PHP Y está ejecutando nginx, asegúrese de haber cambiado su archivo de configuración de nginx para reflejar la nueva versión de PHP. Por ejemplo:
En su archivo de configuración de sitio nginx (aquí: / etc / nginx / sites-available), cambie
fastcgi_pass unix:/var/run/php5-fpm.sock;
a
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
Otra cosa que puede causar el WSOD es que falta la palabra clave ''return'', como en:
return View::make(''yourview'');
Opuesto a
View::make(''yourview'');
Otro problema con el mismo comportamiento es utilizar Laravel 3 con PHP 5.5.x. Debes cambiar el nombre de la función laravel "yield () porque es una palabra reservada en php 5.5
Pruebe esto, en la página public / index.php
error_reporting(E_ALL);
ini_set(''error_reporting'', E_ALL);
ini_set("display_errors", 1);
También estaba recibiendo el mismo error cuando comencé por primera vez en laravel + Ubuntu 14.04. Simplemente hago clic derecho en bootstrap y carpeta de almacenamiento >>> propiedades >>> permiso >> Otros acceso >>> cámbialo a "Crear y eliminar archivos" Cambiar permiso para archivos adjuntos
Gracias
Tengo algunos problemas para configurarlo en una máquina Vagrant. Lo que realmente funciona para mí fue ejecutar un:
chmod -R o+w app/storage/
desde adentro de la máquina Vagrant.
Referencia: https://laracasts.com/lessons/vagrant-and-laravel
Tengo el mismo problema. Ya cambio la carpeta chmod para la carpeta de Almacenamiento. complete la configuración de la base de datos en .env, pero no solucionó el problema. Usé Laravel 5.5 y utilicé PHP 5.6, para solucionarlo fui a (cpanel-> PHP Selector) y cambié a PHP 7.1 y el problema está hecho.
Una actualización de la respuesta de fideloper para Laravel 5 y su nueva estructura de archivos es:
$ sudo chmod -R o+w storage/
para cualquiera que obtenga una página en blanco incluso después de hacer accesible el almacenamiento para mostrar errores, ponga estas dos líneas en las primeras líneas de public / index.php para ver al menos lo que está sucediendo. para mí este error estaba allí: la clase ''PDO'' no se encuentra en /var/www/***/config/database.php en la línea 16
error_reporting(E_ALL);
ini_set(''display_errors'', 1);