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/cache
和storage
目录
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