php - linux ubuntu 18.04 灯 php 和 python cgi
问题描述
操作系统 linux ubuntu 18.04 现在我已经安装了灯,可以无缝运行 php 代码。我正在运行的目录/var/www/html。但我想做的是运行 python cgi。我已经审查了几个来源,但我没有成功。
解决方案
我在以下方面取得了一些成功:
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.com
from 的请求/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 文件。
推荐阅读
- mongodb - 在查找(聚合)mongodb中使用where
- php - 尝试清除 Symfony 4 应用程序缓存时出现“无法自动装配服务”异常
- phpstorm - 如果插入大括号“{”,如何在 PhpStorm/WebStorm 中禁用自动换行符
- java - 如何使用 PowerMockito 为私有 void m1(Dto dto){ } 编写测试用例
- python - 获取 XML 文件中元素之外的注释位置 - Python
- java - 如何解决 OnClick 方法单击问题,它不起作用
- unit-testing - Kotlin 异步回调单元测试
- windows - 从 Windows 调度程序运行时 python.exe 闪烁并关闭
- fortran - 分配后字符数组组件的长度错误
- java - Spring Security - 编码密码看起来不像 BCrypt