1.homebrew安装apache
brew tap homebrew/apache //更新下仓库
2.执行安装
brew tap homebrew/httpd24
brew install httpd24
3.打开apache
apachectl start
4.在浏览器输入
localhost:8080
如果得到 It’works,说明apache运行成功
brew安装的apache默认端口是8080,mac自带的apache默认端口是80
5.修改httpd配置
(1)将166-171 修改 取消注释
<IfModule !mpm_prefork_module>
LoadModule cgid_module lib/httpd/modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
LoadModule cgi_module lib/httpd/modules/mod_cgi.so
</IfModule>
364行
428行
439、440
如果注释了下面两句,就取消注释
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
ScriptAlias /cgi-bin/ "/usr/local/var/www/cgi-bin/"
AddHandler cgi-script .cgi .sh .pl .py
6.将编辑好的cgi.py 文件放入 /usr/local/var/www/cgi-bin/
cgi.py的内容:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-08-20 15:41:29
# @Author : Timtian (tzf_008@126.com)
# @Link : https://blog.csdn.net/timtian008
# @Version : $Id$
import os
print ("Content-type:text/html")
print ('') # 空行,告诉服务器结束头部
print ('<html>')
print ('<head>')
print ('<meta charset="utf-8">')
print ('<title>Hello World - 我的第一个 CGI 程序!</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello World! 我是来自菜鸟教程的第一CGI程序</h2>')
print ('</body>')
print ('</html>')
7.授权执 chmod 777 /usr/local/var/www/cgi-bin/cgi.py 上配置后重启apache:
sudo apachectl restart
8.浏览器打开
http://localhost:8080/cgi-bin/cgi.py
9.成功的显示结果
注意:
1.404 not fount
可能是DocumentRoot没有设置对,或者ScriptAlias /cgi-bin/ 没设置对,或者没有对应的文件
2.403 forbidden
我遇到这个问题是因为 /cgi-bin/ 不在 DocumentRoot的子目录下。
还有一个可能是 没有给 /cgi-bin/还有里面的脚本执行权限
3.500 Internal Server Error
是脚本输出的格式不符合http1.1协议格式
小编就因为 书写错误掉入坑中