我有一个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