从清漆中清除缓存时,Laravel'sudo:Artisan :: call上的'tty'错误

时间:2017-01-26 04:14:30

标签: linux laravel ssh sudo tty

我遵循了Git repo

一切都很好。

我可以从SSH发出php artisan varnish:flush

但是当我尝试从脚本中刷新缓存时,我收到错误

sudo:没有tty存在且没有指定askpass程序

这就是我在routes.php中添加的方式

Route::get('/flush', function() {
    Artisan::call('varnish:flush');
});

我也试过

Route::get('/flush', function() {
    (new Spatie\Varnish\Varnish())->flush();
});

这就是错误看起来的完整程度。

ProcessFailedException in Varnish.php line 64:
The command "sudo varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 'ban req.http.host ~ (^www.host.com$)'" failed.

Exit Code: 1(General error)

Working directory: /home/admin/web/host.com/public_html

Output:
================


Error Output:
================
sudo: no tty present and no askpass program specified

我正在使用Vesta CP Over VPS。

找到解决此错误的解决方案..

1 个答案:

答案 0 :(得分:1)

使用sudo时,该命令会打开文件夹/dev/tty进行读写,如果失败则输出该错误。

如果文件夹被删除,重新启动计算机就足以让文件夹恢复原状。系统在启动期间重新创建/ dev中的所有设备。

另外,请确保权限正确无误:

chmod 666 /dev/tty