我上传了一个图像文件并将其从临时文件夹复制到/var/www/内的文件夹。然后,尝试通过 php 执行 python 命令,其中 exec() 命令采用以下格式。
exec('python file.py $_FILES["file"]["name"]');
甚至执行以下操作也不起作用,
exec('python file.py' + $_FILES["file"]["name"]);
在 python 方面,我尝试读取文件名并对其进行一些处理并保存图像。
source = cv2.imread(sys.argv[1])
#some processing
cv2.imwrite("upload/result.png", resultimage)
注意:上传的图像在上传后显示为 www-data 组所有。我已将我的用户添加到 www-data 组,并执行了以下操作。
sudo chown -R tilaprimera:www-data upload
sudo chmod -R g+s upload
这里的upload是我存储上传图像的文件夹。我也使 python 脚本可执行,
sudo chmod +x script.py
而且 script.py 也完美运行
./script.py
为什么 python 脚本不通过 php 执行?
最佳答案
在Python脚本文件中,目录更改的完成方式为
os.chdir('/var/www/upload')
在 php 端,我给出了要运行的 python 脚本的完整路径
exec('python /var/www/upload/script.py ' . $_FILES["file"]["name"]);
这样,问题就解决了。
关于php - 尝试通过php执行python命令但权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24304142/