在Windows服务器上使用PHP运行Python脚本

在Windows服务器上使用PHP运行Python脚本,php,python,batch-file,windows-server-2012-r2,Php,Python,Batch File,Windows Server 2012 R2,解决方案:我的Python文件崩溃了,没有输出,我可以通过try/来诊断这个问题,只是打印了错误消息。哎呀 我有一个Windows 2012R2 IIS服务器,用于显示GitHub repo中存在的网站。在将页面从repo中拉下来之后,我需要使用Python脚本来处理它们,到目前为止,这是一项计划任务,每天发生两次。用户希望能够通过单击站点管理面板中的按钮来运行更新/处理文件的批处理文件。为此,我创建了一个PHP页面,该页面应该执行计划任务使用的同一批处理文件。我遇到的问题是,当批处理运行时,g

解决方案:我的Python文件崩溃了,没有输出,我可以通过try/来诊断这个问题,只是打印了错误消息。哎呀

我有一个Windows 2012R2 IIS服务器,用于显示GitHub repo中存在的网站。在将页面从repo中拉下来之后,我需要使用Python脚本来处理它们,到目前为止,这是一项计划任务,每天发生两次。用户希望能够通过单击站点管理面板中的按钮来运行更新/处理文件的批处理文件。为此,我创建了一个PHP页面,该页面应该执行计划任务使用的同一批处理文件。我遇到的问题是,当批处理运行时,git命令执行得很好,但是Python脚本没有运行

我已经尝试使用exec()、system()和shell_exec()运行批处理文件。我还尝试从运行批处理文件的powershell脚本运行批处理文件。我猜PHP没有运行Python文件所需的权限。这就是为什么我还尝试通过shell_exec将管理员凭据传递给powershell。所有这些都失败了

下面是查看批处理文件的外观

cd C:\inetpub\wwwroot
git fetch --all
git reset --hard master
git pull https://username:password@github.com/user/repo_name
cd C:\inetpub
C:\Python37\python C:\inetpub\api_replace.py
这就是我目前在PHP文件中的内容


我还尝试通过exec()、system()和shell_exec()直接运行Python文件


git拉取的结果会显示在页面上,但是Python文件中的print语句都不会显示。必要的文件处理也没有发生。

解决方案:我的Python文件崩溃,没有输出,我可以通过尝试/打印错误消息来诊断。哎呀

要在PHP中运行Python脚本,您可以使用shell_exec,正如我提到的一个答案所示,我已经尝试过了(实际上是从您链接的确切答案中)。此外,这是一个Windows服务器。如果您确实找到了解决问题的方法,请考虑将其作为自答,以使其他人可以在将来使用它。