Ubuntu 20.04 配置 Apache 和 CGI

it2023-06-26  74

作为ubuntu系统的新手,最近在配置系统环境真的头发都掉光了。

由于需要用到python在服务器上的cgi功能,但linux系统的配置也实在是太麻烦了(相对windows),在网上找了很多个教学说明,但不是找不到文件,就是服务器500错误,真的是快崩溃了。

真的是每个人的情况都会有不同,下面的是我最后的解决方法:

安装apache2 首先,我的apache2是采用终端命令行安装 sudo apt-get inatall apache2

修改apache的serve-cgi-bin.conf文件

文件目录:/etc/apache2/conf-enabled/serve-cgi-bin.conf

<IfDefine ENABLE_USR_LIB_CGI_BIN> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory> </IfDefine>

改为

<IfDefine ENABLE_USR_LIB_CGI_BIN> ScriptAlias /cgi-bin/ /var/www/pytest/cgi-bin/ <Directory "/var/www/pytest/cgi-bin"> AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted AddHandler cgi-script .cgi .pl .py .sh </Directory> </IfDefine>

这里有几个地方需要修改,我之前就 ScriptAlias /cgi-bin/ /var/www/pytest/cgi-bin/ <Directory “/var/www/pytest/cgi-bin”> AllowOverride All           //我之前没留意到这个设置,这个默认是None的 AddHandler cgi-script .cgi .pl .py .sh   //新增

设置cgi.load的软链接 在终端运行: sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

设置完成,测试程序

#!/usr/bin/env python3 print('Content-type: text/html') print() #这句非常重要,没有空行将会出现500错误,我之前就漏了 print('hello, this is python')

测试成功

最新回复(0)