Laravel空白的白色屏幕

我的laravel网站之前工作,我最近升级到Apache 2.4和PHP 5.5.7。

现在,当我去laravel.mydomain.com时,我得到一个白色的空白屏幕,没有任何在Apache错误日志,路线等应该罚款,因为它以前的工作。

.htaccess正在加载,因为我插入一个无效的行到/var/sites/laravel/public/.htaccess 500。

下面是我的.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] 

下面是我的虚拟主机指令:

 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> 

和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 2.4来了一些Apacheconfiguration的变化。

Laravel

你在检查Laravel的日志还是Apache的日志?

自升级到Laravel 4.1后,当应用程序无法写入日志位置时,出现白屏“错误”(WSOD)。 我总是通过将app / storage目录设置为可写的方式来解决这个问题(无论是可写入“www-data”还是全局可写),这取决于您的服务器设置。

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 

对Laravel 5和其新的文件结构的更新fideloper的答案是:

 $ sudo chmod -R o+w storage/ 

以下步骤解决了Laravel 5上的空白屏幕问题。

  • 转到您的Laravel根文件夹
  • 给写入权限bootstrap/cachestorage目录

sudo chmod -R 777 bootstrap / cache storage

  • .env.example重命名为.env
  • 在Laravel root的terminal/命令提示符下使用以下命令生成应用程序密钥:

PHP的工匠密钥:生成

这将生成encryption密钥并在.env文件中更新APP_KEY的值

这应该解决这个问题。

如果问题仍然存在,那么使用上述artisan key generate命令生成的新密钥更新config/app.php

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

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

试试这个,在public / index.php页面

 error_reporting(E_ALL); ini_set('error_reporting', E_ALL); ini_set("display_errors", 1); 

当我刚接触Linux时,我通常在我的Laravel项目中发现这个错误。 白色错误意味着错误,可能会有一些权限问题或错误。

你只需要遵循两个步骤,就像冠军一样工作:)

(1)给予许可。 从项目的根目录运行这些命令

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

(2)如果你克隆了这个项目,或者从github中拉出来然后运行

 composer install 

(3)正确configuration你的.env文件,你的项目将工作。

对于任何谁获得空白页,即使在存储后显示错误访问,把这两行在public / index.php的第一行,看看至less发生了什么。 对我来说,这个错误是在那里:类“PDO”没有find/var/www/***/config/database.php在16行

 error_reporting(E_ALL); ini_set('display_errors', 1); 

我在CentOS服务器上遇到了类似的问题。 使用php artisan serv并通过本地机器上的端口8000访问它工作正常,但无法让我的远程机器加载一个特定的视图。 我可以返回string,并加载一些意见。 在我终于意识到这是一个SELinux问题之前,把我的尾巴追上了一段时间。 我只是把它从执行设置为宽容,它的工作。 希望能帮助那些可能遇到同样问题的人。

 setenforce permissive 

我有一些问题来设置它在一个stream浪汉机器。 什么真的对我来说是执行一个:

chmod -R o+w app/storage/

从stream浪机内。

参考: https : //laracasts.com/lessons/vagrant-and-laravel

另一件可能导致WSOD的东西缺less'return'关键字,如下所示:

return View::make('yourview');

而不是

View::make('yourview');

有时候是因为laravel 5.1需要PHP> = 5.5.9。 更新PHP将解决这个问题。

与相同的行为的其他问题是使用Laravel 3与PHP 5.5.x. 你必须改变一些laravel函数的名字“yield(),因为在php 5.5中是一个保留字

如果忘记把下面的代码放到handle函数的末尾,原因可能是Middleware

 return $next($request); 

奇怪的是,在我的情况下,我不得不清除laravel的caching来解决这个问题。

当我第一次启动laravel + Ubuntu 14.04时,我也遇到同样的错误我只是右键单击引导和存储文件夹>>>属性>>>权限>>其他访问>>>更改为“创build和删除文件”更改对封闭文件的许可

谢谢

从Laravel论坛得到了这个,但是如果你最近升级了Laravel版本和PHP版本并且正在运行nginx,确保你已经改变了你的nginxconfiguration文件来反映新的PHP版本。 例如:

在你的nginx站点configuration文件(这里是/ etc / nginx / sites-available)中,改变

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

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

这个更改适用于我的本地主机Ubuntu服务器14.xx设置

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

还对网站提供的httpd设置Apache2设置进行了更改

添加设置:

 Options +Indexes +FollowSymLinks +MultiViews Require all granted 

在我的情况下,重新启动Apache解决了这个问题。 对于Ubuntu / Debian:

 sudo service apache2 restart