Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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脚本的SSH_Php_Python_Shell_Ssh - Fatal编程技术网

PHP后端代码触发的python脚本的SSH

PHP后端代码触发的python脚本的SSH,php,python,shell,ssh,Php,Python,Shell,Ssh,我正在尝试从php调用python脚本(使用xamp)。 python脚本在内部调用shell脚本,shell脚本具有ssh和scp命令。 在使用exec执行PHP后端代码时,我在xamp日志文件中观察到以下错误。 python脚本可以通过命令行正常工作 Could not create directory '/sbin/.ssh'.^M Failed to add the host to the list of known hosts (/sbin/.ssh/known_ho

我正在尝试从php调用python脚本(使用xamp)。
python脚本在内部调用shell脚本,shell脚本具有ssh和scp命令。
在使用exec执行PHP后端代码时,我在xamp日志文件中观察到以下错误。
python脚本可以通过命令行正常工作

Could not create directory '/sbin/.ssh'.^M
Failed to add the host to the list of known hosts          (/sbin/.ssh/known_hosts).^M
Permission denied, please try again.^M
Permission denied, please try again.^M
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).^M
Could not create directory '/sbin/.ssh'.^M
Host key verification failed.^M

据推测,PHP调用python脚本时,与手动运行python脚本时不同的用户正在运行python脚本,而手动运行python脚本时,没有适当的权限执行脚本试图执行的任何操作。因此,为了使脚本成功运行,您需要调整脚本将要尝试执行的各种操作的权限/用户组

看看这个问题可能是一个很好的起点:


一旦您确定了实际运行脚本的用户,您可以尝试以该用户的身份运行脚本,然后在出现问题时进行修复。

如果没有看到Python脚本,我无法确定,但这可能与php用户调用脚本时的工作目录有关。您应该在代码中使用绝对路径,或者使用

os.chdir(<path>)
os.chdir()

以确保使用正确的工作目录。注意如果你这样做,您可能会遇到另一个答案中提到的权限错误,因为.ssh及其文件通常只能由其所在目录的用户访问。

我已尝试修改httpd.conf文件,并将apache用户更改为root用户。此外,我还尝试将apache用户添加到sudoers文件中。因为安全性不是我主要关心的问题现在。但这也不行@mrcheshire