配置apache服务器在特殊标签(如PHP)中运行Python

fdx2calv  于 2023-03-03  发布在  Apache
关注(0)|答案(2)|浏览(109)

有没有可能配置Apache Web服务器来使用执行Python,就像PHP一样?意思是,你可以在<?python3 ?>标签中执行Python代码,就像你可以在<?php ?>标签中执行PHP一样。我不是在问WSGI或CGI。
下面是Python3中的一个例子:

    • 魔术数字. py**:
<?python3
import math
number = math.sqrt(42)
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Magic number</title>
</head>
<body>
    <h1>The magic number is <?python3 print(number)?></h1>
</body>
</html>

PHP中的相同代码如下所示:

    • 魔术数字. py**:
<?php
$number = sqrt(42);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Magic number</title>
</head>
<body>
    <h1>The magic number is <?php echo $number; ?></h1>
</body>
</html>

如果这是可能的,我如何配置它在Apache中工作?
任何帮助都是感激的!

pprl5pva

pprl5pva1#

你可以创造你想要的行为,但我不确定这是一个完美的方式来解决你正在努力做的最终任务。
1.如何呈现你的php脚本。这将是你的入口点。我认为这是网页本身,这意味着你需要调用 shell 。例如。

<?php
$output = shell_exec("python embedded.py");
?>
<!DOCTYPE html>
<html lang="en">
<head>
....

1.现在上面将执行文件,它还不存在。要创建它,您需要调用php从字符串创建文件。下面是完整的代码段。

<?php
// Create file with Python source
$embedded = <<<EOF
import math
number = math.sqrt(42)
EOF;

// Save file somewhere
file_put_contents("embedded.py", $embedded);

// Execute shell on Server side
$output = shell_exec("python embedded.py");

?>
<!DOCTYPE html>
<html lang="en">
<head>
....
jdgnovmf

jdgnovmf2#

你可以使用Castalian,它使用cgi处理程序,允许你在<?cas … ?>中嵌入python代码。
可悲的是,它是为python2而设计的,我找不到python3的更新。如果有人知道,请编辑或评论。
另一种方式可能是PSP,参见this answer

相关问题