我遵循了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。
找到解决此错误的解决方案..
答案 0 :(得分:1)
使用sudo
时,该命令会打开文件夹/dev/tty
进行读写,如果失败则输出该错误。
如果文件夹被删除,重新启动计算机就足以让文件夹恢复原状。系统在启动期间重新创建/ dev中的所有设备。
另外,请确保权限正确无误:
chmod 666 /dev/tty