Drupal 8/9如何允许特定的子文件夹执行python脚本



我有一个Drupal 9.x站点运行在web根目录(public_html/(中。我需要运行一些python脚本(目前在public_html/python/中(,并在Drupal Twitch模板中调用的iframe中显示输出。python文件的权限是755,但当我加载调用iframe的页面时,它会显示python代码,而不是执行脚本和显示输出。

如何豁免drupal文件树中的特定自定义子文件夹以允许(python(文件执行?

如果我在子文件夹(public_html/drupal9/..(中运行Drupal,并引用Drupal-webroot文件夹(public_html/python/script.py(下的python脚本,那么一切都很好。

您应该使用php-exechttps://www.php.net/manual/en/function.exec.php

我建议你,把python脚本放在另一个目录中

例如,创建一个名为/home/pythonScripts 的目录

$ mkdir /home/pythonScripts
$ touch /home/pythonScripts/hola.py
$ echo "print ("Python")" > hola.py
$ chmod +x /home/pythonScripts/hola.py

(当然,您将使用自己的python脚本(

用验证python在哪里

$ which python
/usr/bin/python

当然,你可以用运行这个程序

$ python /home/pythonScripts/hola.py
Python

或者(它是相同的(

$ /usr/bin/python /home/pythonScripts/hola.py
Python

在您的模块中,PHP代码!!

<?php
....
$binPython="/usr/bin/python";
$pathPythonScripts="/home/pythonScripts/";
// name of the script
$script="hola.py";
$result = exec($binPython." ".$pathPythonScripts.$script);

当然,您可以添加验证等。

然后你可以使用$result在树枝模板中使用

问候

Leonardo

最新更新