一 第一步安装 apache2
sudo apt install apache2
检查是否安装成功
二
在浏览器地址栏输入http://localhost,查看Apache服务器默认网页是否运行正常,网页图如下:
三 更改目录
只需要对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保存
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测试,此时显示的是自定义目录下的文件,如下图。
到此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
提供的宝贵经验