首页 > 解决方案 > 从 PHP 调用 Python 脚本不起作用

问题描述

我正在用 PHP 创建一个网页,如果按下按钮,PHP 脚本会使用shell_exec()命令执行 python 脚本。python 脚本使用 fpdf python 库创建一个 pdf 文件。当我从命令 shell 运行相同的命令时,它运行良好,但是当我尝试从 PHP 运行 python 脚本时,它什么也没给我。这是PHP代码:

<!doctype html>
<?php
$command = escapeshellcmd('/home/amogh/server/test.py');
$output = shell_exec($command);
echo $output;
?>

Python脚本:

#! /usr/bin/python
#print ('hello')
from fpdf import FPDF
fp =  open('downloads/boot.txt', 'r')
pdf = FPDF()
pdf.add_page()
pdf.set_font('Arial', '', 11)
line = fp.read() 
pdf.multi_cell(200, 5, line, 0, 1)
pdf.output('test.pdf', 'F')

另外,我正在使用lighttpd服务器。谁能告诉我我哪里出错了?

标签: phppythonpython-2.7ubuntu-16.04lighttpd

解决方案


我猜工作目录是错误的,您的脚本无法访问它需要的文件。

您可能想使用

shell_exec("/home/amogh/server/test.py 2>&1");

为了将 stderr 重定向到 stdout,因此 Python 的任何错误输出也将在$output变量中,以帮助您调试。


推荐阅读