首页 > 解决方案 > Laravel 僵尸文件_put_contents 异常

问题描述

$ php artisan --version                                                
Laravel Framework 5.5.32

我客户的网站最近一直显示 ErrorException。不幸的是,他不知道它出现了多久。这是别人向他指出的。至少在 Firefox 中,错误不会显示。当人们查看源代码时,会附加一个额外的正文标签,其中包含所有“哎呀!” rigamarole,这可以在某些浏览器的底部看到。

例外本身是:

ErrorException: file_put_contents(): Only 0 of 184 bytes written, possibly out of free disk space in file /var/www/vhosts/prod2/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php on line 122

我的问题是这个磁盘空间错误没有明显的原因。

$ df -h                                                                
Filesystem      Size  Used Avail Use% Mounted on                                                             
/dev/simfs       20G   11G  9.9G  51% /                                                                      
devtmpfs        512M     0  512M   0% /dev                                                                   
tmpfs           512M     0  512M   0% /dev/shm                                                               
tmpfs           512M   14M  499M   3% /run                                                                   
tmpfs           5.0M     0  5.0M   0% /run/lock                                                              
tmpfs           512M     0  512M   0% /sys/fs/cgroup                                                         
none            512M     0  512M   0% /run/shm

$ df -i                                                                
Filesystem      Inodes IUsed   IFree IUse% Mounted on                                                        
/dev/simfs     2000000 12371 1987629    1% /                                                                 
devtmpfs        131072    53  131019    1% /dev                                                              
tmpfs           131072     1  131071    1% /dev/shm                                                          
tmpfs           131072   212  130860    1% /run                                                              
tmpfs           131072     8  131064    1% /run/lock                                                         
tmpfs           131072    10  131062    1% /sys/fs/cgroup                                                    
none            131072     1  131071    1% /run/shm
config/app.php
'env' => env('APP_ENV', 'production'),
'debug' => env('APP_DEBUG', false),

config/session.php
'driver' => env('SESSION_DRIVER', 'file'),
'files' => storage_path('framework/sessions'), 

没有 .env 文件。该站点没有用户/登录名。甚至不是管理员。

我已经三重检查了存储及其内容的所有权限。我已经删除了缓存、会话和视图目录中的所有内容。我已经重新启动了网络服务器。我正在换档重新加载浏览器。没有什么能让这个例外消失。

顺便说一句,我知道这是 Laravel 的一个非常旧的版本。我没有维护该站点的运行安排。客户要求我在此期间继续进行更新。但是,我想先了解这是怎么回事。

编辑:以下在 Kernel.php 中被注释掉

\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,

此外,我将会话驱动程序设置为“数组”并注释掉 config/auth.php 中的所有内容(以便它返回一个空数组)。

然后我清空了视图、会话和缓存存储目录。我仍然看到这个堆栈跟踪。

标签: phplaraveldiskspace

解决方案


推荐阅读