Laravel Blanc Écran

mon site laravel fonctionnait auparavant, j'ai récemment mis à niveau vers Apache 2.4 et PHP 5.5.7.

maintenant je reçois un écran blanc vide quand je vais à laravel.mydomain.com, rien dans les journaux d'erreurs apache, les routes et autres. doit être fine qu'elle marchait avant.

.htaccess se charge alors que je reçois un 500 lorsque j'insère une ligne invalide dans /var/sites/laravel/public/.htaccess.

Voilà mon .htaccess:

$ cat /var/sites/laravel/public/.htaccess
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]

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

Voilà mon hôte virtuel directive:

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>

et 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
96
demandé sur Mico 2013-12-19 13:54:38

24 réponses

Apache

Ne cette réponse les décrire ou de les aider à votre situation? La mise à niveau vers Apache 2.4 s'accompagne de quelques changements dans la configuration D'Apache.

Laravel

vérifiez-vous les journaux de Laravel ou D'Apache?

depuis la mise à niveau vers Laravel 4.1, j'ai eu des" erreurs " d'écran blanc (WSOD) lorsque l'application ne pouvait pas écrire à L'emplacement du journal. J'ai toujours résolu ce problème en faisant le répertoire app / storage accessible en écriture par Apache (soit groupe Accessible en écriture à "www-data", "apache" ou World-writable - cela dépend de la configuration de votre serveur.

Utilisateur Du Serveur Web

sur les serveurs Ubuntu/Debian, votre PHP peut fonctionner comme utilisateur"www-data". Sur les serveurs CentOS/RedHat/Fedora, vous PHP peut être exécuté en tant qu'utilisateur "apache".

assurez-vous que vos fichiers sont la propriété de L'utilisateur qui exécute PHP:

# Debian/Ubuntu
$ sudo chown -R www-data /path/to/laravel/files

# CentOS/RedHat/Fedora
$ sudo chown -R apache /path/to/laravel/files

notez que vous ne pouvez pas être exécuté en tant qu'utilisateur www-data ou apache. Cela dépend de votre hébergement et de l'installation!

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
210
répondu fideloper 2017-11-30 18:36:03

une mise à jour de la réponse de fideloper pour Laravel 5 et sa nouvelle structure de fichiers est:

$ sudo chmod -R o+w storage/
63
répondu EddardOmeka 2015-02-07 15:48:42

les étapes suivantes ont résolu le problème d'écran blanc vierge sur mon Laravel 5.

  • allez dans votre dossier Laravel root
  • donne la permission d'écrire à bootstrap/cache et storage annuaires

sudo chmod -R 777 bootstrap / cache storage

  • renommer .env.example en .env
  • Generate touche d'application avec la commande suivante en terminal / commande-invite à partir de Laravel root:

php artisan clés:générer des

cela générera la clé de cryptage et mettra à jour la valeur de APP_KEY dans .env fichier

cela devrait résoudre le problème.

si le problème existe toujours, mettez à jour config/app.php avec la nouvelle clé générée à partir de ce qui précède commande artisan key generate:

'key' => env('APP_KEY', 'SomeRandomString'),

à

'key' => env('APP_KEY', 'KEY_GENERATED_FROM_ABOVE_COMMAND'),

20
répondu Mukesh Chapagain 2016-08-08 05:00:23

Essayez ceci, dans le public/index.php page

error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set("display_errors", 1);
18
répondu CG_DEV 2015-06-15 15:36:22

pour toute personne qui obtient page blanche même après avoir rendu le stockage accessible pour afficher des erreurs mettre ces deux lignes à la première ligne de public/index.php pour voir ce qui se passe au moins. pour moi, cette erreur est là :de la Classe PDO' ne trouve pas dans /var/www/***/config/database.php sur la ligne 16

error_reporting(E_ALL);
ini_set('display_errors', 1);
7
répondu HMG 2016-02-04 11:50:36

quand J'étais nouveau sous Linux.J'ai souvent trouvé cette erreur avec mon projet Laravel. White errors signifie erreur, il peut y avoir un problème de permission ou une erreur.

vous avez juste à suivre deux étapes, et va travailler comme champ:)

(1) Donnez la permission. Exécutez ces commandes à partir du répertoire racine de votre projet

(a) sudo chmod 777 -R storage
(b) sudo chmod bootstrap/cache

(2) Si vous avez cloné le projet ou tiré de github alors exécuter

composer install

(3) Configurer votre .env fichier correctement, et votre projet de travaux.

5
répondu Vikash 2016-01-14 18:17:43

je me débattais avec un problème similaire sur un serveur CentOS. L'utilisation de php artisan serv et l'accès par le port 8000 sur la machine locale ont bien fonctionné, mais n'ont pas pu obtenir mes machines distantes pour charger une vue particulière. Je pouvais rendre les cordes très bien, et quelques vues se chargeaient. J'ai poursuivi mes recherches sur les permissions pendant un moment avant de finalement réaliser que c'était un problème de SELinux. Je l'ai mis de force à permissive et ça a marché. L'espoir qui aide quelqu'un d'autre là-bas qui pourrait rencontrer la même question.

setenforce permissive
4
répondu Kamkat86 2016-03-24 15:12:56

j'ai quelques problèmes pour le configurer dans une machine vagabonde. Ce qui fonctionne vraiment pour moi a été Exécuter a:

chmod -R o+w app/storage/

de l'intérieur de la machine vagabonde.

référence: https://laracasts.com/lessons/vagrant-and-laravel

1
répondu gvsrepins 2014-03-21 13:04:35

une autre chose qui pourrait causer le WSOD manque le mot-clé 'return', comme dans:

return View::make('yourview');

par opposition à

View::make('yourview');

1
répondu emragins 2014-09-07 17:43:15

parfois c'est parce que laravel 5.1 require PHP >= 5.5.9. Mettre à jour php résoudra le problème.

1
répondu Kevin 2015-07-06 04:01:45

autre problème avec le même comportement est D'utiliser Laravel 3 avec PHP 5.5.x. Vous devez changer le nom de la fonction laravel " yield () parce que c'est un mot réservé dans php 5.5

0
répondu Hernan 2014-01-09 09:45:29

la raison peut être Middleware si vous oubliez de mettre le code suivant à la fin de handle fonction

return $next($request);
0
répondu Farid Movsumov 2015-10-24 14:22:07

étrange pour moi, mais dans mon cas j'ai dû vider la cache du laravel pour résoudre le problème.

0
répondu antongorodezkiy 2016-10-07 17:22:14

j'ai également eu la même erreur lorsque je commence la première fois sur laravel + Ubuntu 14.04 J'ai juste à droite, cliquez sur bootstrap et le stockage du dossier >>> propriétés >>>autorisation>> Accès >>> changer pour "Créer et supprimer des fichiers" autorisation de Modification de fichiers joints

Merci

0
répondu user1846871 2017-03-06 04:08:22

a obtenu ceci des forums Laravel, mais si vous avez récemment mis à jour les versions Laravel et PHP et que vous utilisez nginx, assurez-vous que vous avez changé votre fichier de configuration Nginx pour refléter la nouvelle version PHP. Par exemple:

dans votre fichier de configuration du site nginx (ici: /etc/nginx/sites-disponible), modifier

fastcgi_pass unix:/var/run/php5-fpm.sock;

à

fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;

0
répondu Ben Wilson 2017-03-24 17:40:15

j'ai le même problème. Je change déjà le dossier chmod pour le dossier de stockage. remplir les paramètres de base de données .env, mais n'a pas réglé le problème. J'ai utilisé Laravel 5.5 et J'ai utilisé PHP 5.6, pour le corriger je suis allé à (cpanel->PHP Selector) et j'ai changé en PHP 7.1 et le problème est fait.

0
répondu Abed Putra 2018-01-12 05:29:23

dans les cas normaux, les erreurs doivent être notées sauf si

Script ne peut pas écrire dans le fichier journal

  • vérifier son chemin
  • autorisations

Ou erreur s'est produite sur les plus élevées vérification du niveau d'application serveur de logs comme Appache || Nginx

ou ses limites de ressources Comme les paramètres d'ini De PHP

memory_limit
max_input_time
max_execution_time

ou limites OS et ainsi de suite

0
répondu Bdwey 2018-01-25 13:07:22

en plus des problèmes D'autorisation dans les problèmes de stockage et de cache et de version php, il pourrait y avoir d'autres raisons d'afficher une page vierge sans aucun message d'erreur.

par exemple, j'ai eu un message d'erreur redeclare sans aucun log et avec une page blanche vierge. Il y avait un conflit entre ma propre fonction d'AIDE et une fonction de fournisseur.

je suggère comme un point de départ , courir artisan commande. par exemple:

php artisan cache:clear

S'il y avait un problème, il sera invité dans le terminal et vous avez un indice et vous pouvez google pour la solution.

0
répondu Khalil Laleh 2018-07-07 19:43:57

l'Exécution de cette commande résolu pour moi:

php artisan view:clear

je suppose qu'une page d'erreur Vierge était quelque peu mise en cache. Dû effacer les caches.

0
répondu Andrew 2018-08-21 00:58:56

L'écran blanc se produit aussi quand votre application Laravel essaie d'afficher trop d'informations et les limites de PHP se déclenchent (par exemple en affichant des dizaines de milliers d'enregistrements de base de données sur une seule page). Le pire, c'est que vous ne verrez aucune erreur dans les logs de Laravel. Vous ne verrez probablement pas d'erreurs dans les journaux PHP FPM. Vous pourriez trouver des erreurs dans les journaux de votre serveur http, par exemple nginx lance quelque chose comme FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of XXX bytes exhausted .

extrémité courte: ajouter ->limit(1000)1000 est votre limite, sur votre objet de requête.

0
répondu f055 2018-08-22 21:04:16

dans mon cas , j'ai installé laravel plusieurs fois, et je suis sûr que la permission d'écriture du dossier a été correctement donnée.

Comme la plupart des réponses ci-dessus :

sudo chmod 777 -R storage bootstrap

l'erreur est que ma configuration nginx provient de la documentation officielle .

Je n'ai modifié le nom de domaine qu'après avoir copié le paquet, puis j'ai eu une page blanche. J'ai essayé redémarrer nginx et php-fpm , mais pas travailler pour moi.

enfin, j'ai ajouté cette configuration de ligne pour résoudre le problème.

location ~ \.php$ {

    # same as documentation ...

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

j'espère pouvoir aider les autres.

0
répondu qskane 2018-08-30 14:55:09

j'ai aussi une option de plus pourquoi la question de page blanche peut se produire. Si vous êtes en mode production et si vous avez mis en cache vos fichiers de configuration par php artisan( config: cache), essayez de supprimer le fichier cache en exécutant:

php artisan config:clear

ou le supprimer manuellement (bootstrap/cache/config.php)

0
répondu Boris Tetřev 2018-09-04 11:01:29

dans mon cas, redémarrer apache a résolu le problème. Pour Ubuntu / Debian:

sudo service apache2 restart
-2
répondu Khairulnizam Dahari 2015-02-08 00:04:42

cette modification fonctionne pour mon serveur Ubuntu localhost 14.XX réglage

# Apply all permission to the laravel 5.x site folders     
$ sudo chmod -R 777 mysite

a également fait des changements sur le site disponible httpd setting apache2 settings

ajouter les paramètres:

Options +Indexes +FollowSymLinks +MultiViews
Require all granted
-2
répondu syyu 2017-05-23 12:34:50