作为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')
测试成功
版权声明:本文为niklhy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。