PHP exec使用命令行子进程调用python脚本

时间:2017-07-17 03:48:22

标签: php python apache cgi

我希望对PHP和Web服务器有更多了解的人可以帮助我。我有一个HTML页面,它接收并上传zip文件,然后调用PHP页面作为表单操作。 PHP然后在我的Apache cgi-bin中调用两个python脚本。第一个python脚本运行没有问题,只需将上传的文件解压缩到子目录中。第二个python脚本包括对命令行工具的子进程调用,以对解压缩的文件执行某些操作。但是,我发现使用PHP中的exec()作为第二个python脚本与子进程不起作用。如果我从命令行运行python脚本,它工作正常。但是,如果我从PHP exec函数调用它,它什么都不做。

PHP的片段:

    $tmp1 = exec("C:\\ms4w\\Python\\python C:\\ms4w\\Apache\\cgi-bin\\unzip_shp.py $without_extension");
    echo $tmp1;
    echo "<br>";        
    $tmp2 = exec("C:\\ms4w\\Python\\python C:\\ms4w\\Apache\\cgi-bin\\convert_to_geojson.py $without_extension", $output);
    echo $output

python的片段:

    command = "C:\\ms4w\\tools\\gdal-ogr\\ogr2ogr.exe -f \"GeoJSON\" "+sys.argv[1]+".geojson "+sys.argv[1]+".shp" #os.system(command)
    subprocess.check_call(command)
    print(command)

python中的print命令将其返回给PHP:

    C:\ms4w\tools\gdal-ogr\ogr2ogr.exe -f "GeoJSON" C:\ms4w\Apache\htdocs\uploads\parks_escambia.geojson C:\ms4w\Apache\htdocs\uploads\parks_escambia.shp

另外,我在Windows操作系统上运行这一切作为localhost开发服务器。使用python版本2.7。任何提示都非常感谢。

谢谢,德里克

0 个答案:

没有答案
相关问题