php - 命令在 putty 中工作正常但在 PHP 中不使用 exec()

标签 php linux ubuntu terminal

所以我在我的 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 - 命令在 putty 中工作正常但在 PHP 中不使用 exec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43760694/

相关文章:

php - MySQL 过滤器 JSON_CONTAINS 数组中的任何值

php - 如何使用 PDO 跨两个数据库运行查询

linux - cURL 中的变量

linux - 脚本/bin/bash 扩充太长并且 grep 部分在查找中不起作用

c - bash -i >&/dev/tcp/127.0.0.1/1234 0>&1

php - 了解 sendmail 配置

ubuntu - 将 .txt 文件拆分为单独的文件,名称来自一列,内容来自另一列?

PHP 读取控制台输出

php - 无法执行简单的 Hello World PHP 扩展

java - flying-saucer-pdf 表 'name' 在 ubuntu 上不存在异常