ubuntu+ apache2+cgi配置(自己摸索了两天)解决(空白页,forbiden, internal server error )赠于python初学者

一 第一步安装 apache2

sudo apt install apache2

检查是否安装成功

在浏览器地址栏输入http://localhost,查看Apache服务器默认网页是否运行正常,网页图如下:

ubuntu+ apache2+cgi配置(自己摸索了两天)解决(空白页,forbiden, internal server error )赠于python初学者
三 更改目录
只需要对apache2在/etc/apache2和/etc/apache2/sites-available下的两个配置文件apache2.conf和000-default.conf两个配置进行修改就行了。
这里附上我的更改方法,
输入

sudo nautilus

1打开文件/etc/apache2/apache2.conf

<Directory />
	Options FollowSymLinks
	AllowOverride All
	Require all denied
</Directory>

<Directory /usr/share>
	AllowOverride All
	Require all granted
</Directory>

<Directory /var/www/cgi-bin>
	Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
	Allow from all
	AddHandler cgi-script .cgi .py .sh
</Directory>

#<Directory /srv/>
#	Options Indexes FollowSymLinks
#	AllowOverride All
#	Require all granted
#</Directory>

其中AllowOverride Noll全部更改为AllowOverride All
<Directory /var/www/>更改为<Directory /var/www/cgi-bin>
并添加上AddHandler cgi-script .cgi .py .sh这句话。
更改完别忘了点击save保存
ubuntu+ apache2+cgi配置(自己摸索了两天)解决(空白页,forbiden, internal server error )赠于python初学者
2打开文件/etc/apache2/sites-available/000-default.conf
找到”DocumentRoot /var/www/html” 这个参数,把其中的/var/www/html同样修改为自己想自定义的目录。
3 修改完配置后需要重启Apache服务。

sudo /etc/init.d/apache2 restart

4 在浏览器地址栏输入服务器IP测试,此时显示的是自定义目录下的文件,如下图。
ubuntu+ apache2+cgi配置(自己摸索了两天)解决(空白页,forbiden, internal server error )赠于python初学者
到此apache2已经配置完了

二 配置cgi
在/etc/apache2/conf-enabled/serve-cgi-bin.conf文件中将如下字样的两行修改(用管理员权限修改),其中的/usr/lib/cgi-bin都改为你自己想测试的cgi脚本所在目录:

<IfModule mod_alias.c>
	<IfModule mod_cgi.c>
		Define ENABLE_USR_LIB_CGI_BIN
	</IfModule>

	<IfModule mod_cgid.c>
		Define ENABLE_USR_LIB_CGI_BIN
	</IfModule>

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

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

至此已经配置完了,接下来进行测试
首先需要确定你python当前的版本,如果是3.0以前的,则
文件格式如下
新建脚本hello.py

#! /usr/bin/python
print 'Content-Type: text/html'
print ''
print '<html>'
print '<h2>CGI Script Output</h2>'
print '<p>This page was generated by a Python CGI script.</p>'
print '<p>Hello, baby!</p>'
print '</html>'

千万要注意#! /usr/bin/python这行代码不能丢,
否则会出现
internal server error错误

如果你的版本是3.0以后的
则用以下文件进行测试
新建脚本hello.py

#!/usr/bin/python3

print ("Content-type:text/html")
print ()                             # 空行,告诉服务器结束头部
print ('<html>')
print ('<head>')
print ('<meta charset="utf-8">')
print ('<title>Hello Word </title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word! </h2>')
print ('</body>')
print ('</html>')

如果你出现空白页面
是因为你程序里边有中文不兼容所导致,
在此感谢博主 https://blog.csdn.net/sunshineddMMZ/article/details/79628366
提供的宝贵经验

上一篇:xamppv3.2.1 在本地Windows上配置多域名、多ip段,无需修改host,windows本地多虚拟主机的正确设置教程127.0.0.9/127.0.0.8


下一篇:wampserver64 apache2.4版本局域网互相访问总结