Apache+CGI+python
由于平时需要测试一些东西 所以想着利用apache的cgi来运行py文件,但是想法很简单,看教程也是很简单 没有想到我却折腾了一下午,所以在这里记录一下我的过程,希望共勉:
运行效果:
Step1:编辑apache的httpd.conf ,把LoadModule cgid_module modules/mod_cgid.so 模块的注释去掉
Step2 修改如下语句AddHandler cgi-script .cgi .py 没有直接添加
step3:找到如下部分 然后修改 这是apache自带
<IfModule alias_module>
ScriptAlias /cgi-bin/ "${ApacheHome}/cgi-bin/" //这个目录可以自定义
Alias /friendly/ "${BaseHome}/vhosts/common/friendly/"
</IfModule>
ScriptAlias /cgi-bin/ "${ApacheHome}/cgi-bin/" //这个目录可以自定义
Alias /friendly/ "${BaseHome}/vhosts/common/friendly/"
</IfModule>
没有也可以直接
ScriptAlias /cgi-bin/ "你的cgi目录"
step4:添加目录
<Directory "${ApacheHome}/cgi-bin">
#AllowOverride None
#Options None
# Options +ExecCGI
# Require all granted
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
#AllowOverride None
#Options None
# Options +ExecCGI
# Require all granted
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
然后重启apache
step5:编写test.py 内容如下:
print('<html>')
print('<h2>999</h2>')
print('</html>')
~
step6:放在step4添加的目录中,然后chmod 755 test.py 用浏览器访问就ok
!!!!!!!!!!!!!!!!!!!!!!!!!!!这里特别说明一下 我遇到的坑 调了一下午 最后发现是test.py中的错误
内容编写 必须有#!/usr/bin/python
还有必须要有打印空行:print
我把打印空行去掉了 没想到这么重要