所以我在我的VPS(Ubuntu 14.04.5)上安装了shhavel的facerec(https://github.com/shhavel/facerec),当我在putty中使用它时,它工作得非常好:

facerec list
jenniferlawrence
emmawatson

但是,在PHP中,使用exec()函数时,唯一有效的命令是facerec-help,所有其他命令都会产生类似于以下的错误:
facerec列表2>&1
Traceback (most recent call last):
File "/usr/local/bin/facerec", line 359, in
sys.exit(__main__())
File "/usr/local/bin/facerec", line 356, in __main__
return args.func(args)
File "/usr/local/bin/facerec", line 159, in list
for subject in os.listdir(subjects_directory):
OSError: [Errno 2] No such file or directory: './subjects'

PHP脚本:
exec('facerec list 2>&1', $output);
foreach($output as $string) {
    echo $string."<br>";
}

如何解决这个问题?

最佳答案

发现问题:
“subjects”文件夹位于/root/中,PHP脚本无权访问该文件夹
可能的解决方案:
将PHP设置中的open_basedir更改为none(请参见此处:open_basedir restriction in effect. File(/) is not within the allowed path(s):
将shhavel/facerec安装为正确用户(而不是根用户)
将subjects文件夹移到不同的位置并相应地更改facerec python脚本

10-08 02:03