从Codeigniter执行Python文件


Executing a Python file from Codeigniter

我在从Codeigniter控制器的函数执行Python文件时遇到了一些问题。

~/application/controllers/Lights.hp:

header("Access-Control-Allow-Origin: *");
class Lights extends CI_Controller {
    public function __construct() {
        parent::__construct ();
        $this->load->helper ( array ('url', 'form') );
    }
    public function turnOn() {
        system('sudo python test.py > /dev/null 2>/dev/null &');
    }
}

但是当我尝试执行系统调用时,比如:

system("sudo gpio mode 15 out");

这非常有效。

python二进制和script提供完整路径,即:

system('/full/path/to/python /full/path/to/test.py > /dev/null 2>/dev/null &');

如果python二进制文件已经在apache用户的PATH上(apache/www-user),则可以忽略完整路径。

是的,我有这样的问题,感谢Pedro Lobito的回答。需要一个完整的路径来从根文件夹中的CI调用python文件。

system('sudo -u root -S python /var/www/4led/turnon1.py');

*sudo-u root-S是一个使用root权限的命令,不需要root密码:D