Laravel空白的白色屏幕

Mic*_*ico 108 php apache frameworks laravel laravel-4

我的laravel网站以前工作过,我最近升级到了Apache 2.4和PHP 5.5.7.

现在,我得到一个白色的空白屏幕,当我去laravel.mydomain.com,没有在Apache的错误日志,路线等应该不错,因为之前的工作.

当我向/var/sites/laravel/public/.htaccess插入无效行时,.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]
Run Code Online (Sandbox Code Playgroud)

继承我的虚拟主机指令:

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>
Run Code Online (Sandbox Code Playgroud)

和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
Run Code Online (Sandbox Code Playgroud)

fid*_*per 219

阿帕奇

这个答案是否描述或帮助您的情况?升级到Apache 2.4会带来Apache配置的一些变化.

Laravel

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

自升级到Laravel 4.1以来,当应用程序无法写入日志位置时,我遇到了白屏"错误"(WSOD).我总是通过使Apache可写入的应用程序/存储目录(可写入"www-data","apache"或世界可写的组)来解决这个问题,这取决于您的服务器设置.

Web服务器用户

在Ubuntu/Debian服务器上,您的PHP可能以"www-data"用户身份运行.在CentOS/RedHat/Fedora服务器上,PHP可能以"apache"用户身份运行.

确保您的文件归运行PHP的用户所有:

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

# CentOS/RedHat/Fedora
$ sudo chown -R apache /path/to/laravel/files
Run Code Online (Sandbox Code Playgroud)

请注意,您可能没有以用户www-data或apache身份运行.这取决于您的托管和设置!

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

  • 似乎这是一个许可问题.修改laravel目录使它工作. (9认同)
  • 存储文件夹的权限解决了我的问题.但是为什么laravel没有在浏览器上显示权限问题? (4认同)
  • 这也解决了我的问题....我永远不会发现这个问题.我同意如果显示某种错误信息而不是"白屏死机",那将是最好的. (4认同)
  • @fideloper这个答案真的救了我的一天.得到了WSOD,没有任何东西出现在日志中.chmodding app/storage处理它.我向你倾斜我的虚拟帽子! (3认同)

小智 64

对于Laidevel 5及其新文件结构的fideloper答案的更新是:

$ sudo chmod -R o+w storage/
Run Code Online (Sandbox Code Playgroud)


Muk*_*ain 24

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

  • 转到Laravel根文件夹
  • 授予bootstrap/cachestorage目录的写权限

sudo chmod -R 777 bootstrap/cache storage

  • 重命名.env.example.env
  • 使用以下命令在Laravel root的terminal/command-prompt中生成应用程序密钥:

php artisan key:generate

这将生成加密密钥和更新的值APP_KEY.env文件

这应该可以解决问题.

如果问题仍然存在,则config/app.php使用从上面的artisan key generate命令生成的新密钥进行更新:

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

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


CG_*_*DEV 23

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

error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set("display_errors", 1);
Run Code Online (Sandbox Code Playgroud)


Abd*_*leh 11

一般来说,如果Laravel向您显示没有错误的白页,那么首先要在.evn文件中查找错误,我的错误是。

问题出在 .env 文件中APP_NAME

只是我更换了

APP_NAME=My Project Name 
Run Code Online (Sandbox Code Playgroud)

APP_NAME="My Project Name"
Run Code Online (Sandbox Code Playgroud)


Has*_*lak 9

对于任何获得空白页面的人,即使在显示错误的存储空间之后,也可以将这两行放在public/index.php的第一行,看看至少发生了什么.对我来说这个错误是存在的:第16行的/var/www/***/config/database.php中找不到类'PDO'

error_reporting(E_ALL);
ini_set('display_errors', 1);
Run Code Online (Sandbox Code Playgroud)


小智 8

我还有一个选择为什么可能会出现空白页问题。如果您处于生产模式并且您通过 php artisan (config:cache) 缓存了配置文件,请尝试删除缓存文件执行:

php artisan config:clear
Run Code Online (Sandbox Code Playgroud)

或手动删除(bootstrap/cache/config.php)

  • 我尝试了其他所有方法,这是对我有用的最后一件事。 (2认同)

And*_*rew 7

运行此命令为我解决了它:

php artisan view:clear
Run Code Online (Sandbox Code Playgroud)

我猜一个空白的错误页面是某种缓存方式。必须清除缓存。


saa*_*aad 7

面对 Laravel 5.8 中的空白屏幕。给定 777 权限的存储和引导文件夹,一切似乎都很好。在

php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)

这说明了什么问题它是白色空间.ENV的应用程序名称的文件


Vik*_*ash 6

当我刚接触Linux时.我经常在Laravel Project中发现这个错误.白色错误表示错误,可能有一些权限问题或错误.

你只需要按照两个步骤,并将像冠军一样工作:)

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

(a) sudo chmod 777 -R storage
(b) sudo chmod bootstrap/cache
Run Code Online (Sandbox Code Playgroud)

(2)如果您克隆项目或从github拉出然后运行

composer install
Run Code Online (Sandbox Code Playgroud)

(3)正确配置.env文件,您的项目将正常工作.


use*_*454 6

我花了将近2个小时才解决这个问题。这些是在答案中找到的原因:

  • 删除 .env 文件中的空格
  • 重写.htaccess
  • chmod 777 存储/引导文件夹
  • 删除vendor文件夹并composer install再次运行
  • 重启apache/nginx服务器
  • php artisan view:clear
  • php artisan cache:clear
  • php artisan route:clear

我尝试了一切,但仍然不起作用。

原来 apache/nginx 服务器的默认端口不是 PORT 80。当你安装 webpack 时,它可能会因为 Skype 或系统服务的损坏而改变。因此,您必须使用apache/nginx 服务器的默认端口 85,而不是访问yoursite.teston 。localhostyoursite.test:85


小智 5

我在CentOS服务器上遇到了类似的问题。使用php artisan serv并通过本地计算机上的8000端口访问它可以正常工作,但无法让我的远程计算机加载特定视图。我可以很好地返回字符串,并且正在加载一些视图。在我终于意识到这是SELinux问题之前,我追了一下权限。我只是将其从强制设置为宽松,并且有效。希望对其他可能遇到相同问题的人有所帮助。

setenforce permissive
Run Code Online (Sandbox Code Playgroud)


qsk*_*ane 5

就我而言,我已经安装了laravel很多次,并且我确信已正确授予文件夹写入权限。

\n\n

就像上面的大多数答案一样:

\n\n
sudo chmod 777 -R storage bootstrap\n
Run Code Online (Sandbox Code Playgroud)\n\n

错误是我的nginx配置来自官方文档

\n\n

我只是在复制 \xef\xbc\x8ct 之后修改了域名,然后我得到了一个空白页。\n我尝试重新启动nginxphp-fpm但对我不起作用。

\n\n

最后我添加了这一行配置来解决问题。

\n\n
location ~ \\.php$ {\n\n    # same as documentation ...\n\n    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我希望我能帮助别人。

\n