首页 > 解决方案 > linux ubuntu 18.04 灯 php 和 python cgi

问题描述

操作系统 linux ubuntu 18.04 现在我已经安装了灯,可以无缝运行 php 代码。我正在运行的目录/var/www/html。但我想做的是运行 python cgi。我已经审查了几个来源,但我没有成功。

标签: phppythonubuntulamp

解决方案


我在以下方面取得了一些成功:

1)。安装 libapache2-mod-python

$ sudo apt install libapache2-mod-python 
$ sudo a2enmod python 

2)。将此添加到 /etc/apache2/sites-enabled/ 中的新文件中 - 将相关部分更改为适合您的任何内容

<VirtualHost *:80>
    # 
    ServerName yourpythonserver.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/py

    <Directory /var/www/py>
        AddHandler mod_python .py
        PythonHandler index
        PythonDebug On
        DirectoryIndex index.py
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

3)。正如您从上面的配置中看到的,这将提供定向到yourpythonserver.comfrom 的请求/var/www/py- 默认为 index.py

4)。使用以下内容创建文件/var/www/py/index.py

#!/usr/bin/env python3

from mod_python import apache


def handler(req): 
    ret = ""
    req.content_type = "text/html"
    req.write("<h1>Hello World!</h1>")
    return apache.OK

5)。最后,

sudo systemctl reload apache2 

这就是我开始变得模糊的地方,但也许那里的其他人可以帮助我们解决这个问题......我不确定为什么函数的名称需要是处理程序,我不确定如何获取 PHP 通常提供的东西,例如$_SERVER变量。但无论哪种方式,这都有效,并将使用 apache 提供 python 文件。


推荐阅读