Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我正在尝试从PHP文件执行Python脚本_Php_Python_Api_Server_Digital Ocean - Fatal编程技术网

我正在尝试从PHP文件执行Python脚本

我正在尝试从PHP文件执行Python脚本,php,python,api,server,digital-ocean,Php,Python,Api,Server,Digital Ocean,我用PHP制作了一个API,它以post请求的形式接收一个input.csv文件,该文件保存在digital ocean服务器的根用户中。在这个文件的帮助下,我在PHP中使用exec命令运行一个python脚本,该脚本保存在同一digital ocean服务器中根用户的一个文件夹中。运行python脚本后,它将创建另一个名为output.csv的csv文件,该文件随后由API读取,并作为对digital ocean服务器上的hit请求的响应 但我面临的问题是,每当我试图使用邮递员或浏览器作为测试

我用PHP制作了一个API,它以post请求的形式接收一个input.csv文件,该文件保存在digital ocean服务器的根用户中。在这个文件的帮助下,我在PHP中使用exec命令运行一个python脚本,该脚本保存在同一digital ocean服务器中根用户的一个文件夹中。运行python脚本后,它将创建另一个名为output.csv的csv文件,该文件随后由API读取,并作为对digital ocean服务器上的hit请求的响应

但我面临的问题是,每当我试图使用邮递员或浏览器作为测试的post请求点击digital ocean服务器的URL时,我都看不到在服务器的根用户组中创建的output.csv文件。但是,我可以看到正在创建的input.csv文件在点击url时作为参数传递。我从分析中可以感觉到的原因是,我创建的php api无法运行python脚本,该脚本生成我感兴趣的output.csv文件的内容

还有一件事,当我从apache服务器点击url时,它来自www数据用户组,python文件所在的服务器来自根用户组。我写这篇文章只是想知道是否有任何与权限相关的问题

我使用exec命令来执行python脚本。下面给出了我的api代码,如有任何帮助,将不胜感激

<?php
        $input_file_content = base64_decode($_POST['file_contents']);
        print_r($input_file_content);
        $python_file = "/var/www/html/selenium/scrap.py";
        $input_file = dirname(__FILE__) . "/input.csv";
        $output_file ="/var/www/html/selenium/output2.csv";
        file_put_contents($input_file, $input_file_content);
        exec("whoami 2>&1", $output, $return_var);
        print_r($output);
        exec("sudo /root/anaconda2/envs/venv/bin/python " . $python_file);
                    echo "<final_string>";
        echo base64_encode(file_get_contents($output_file));
        echo "</final_string>";
     ?>


这是一篇重复的文章。请看这是一篇重复的文章。请看