mac配置CGI运行程序以及自己踩得坑

CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。mac自带apache server和CGI运行程序,本文将使用自带的apache server和CGI运行程序。

mac 启动apache server: 

sudo apachectl start/restart #启动

sudo apachectl stop #停止

默认CGI不可用,需要进行相应修改。

1. 打开httpd.conf文件,需要root权限,

打开文件: sudo nano /etc/apache2/httpd.conf

找到

LoadModule cgi_module libexec/apache2/mod_cgi.so并取消注释。

2. 取消AddHandler cgi-script .cgi这一行的注释,并且在后面增加.py,表示可以访问.py结尾的python脚本文件,也可以增加.pl等等,表示可以执行各种类型的脚本。

3. 给CGI-Executables文件夹添加执行权限

mac配置CGI运行程序以及自己踩得坑_第1张图片

4. 配置完成后,我们创建一个python cgi脚本

!/usr/bin/env python

# -*- coding: UTF-8 -*-

print "Content-type:text/html"

print                               # 空行,告诉服务器结束头部

print ''

print ''

print ''

print 'Hello Word - 我的第一个 CGI 程序!'

print ''

print ''

print '

Hello Word!

' print '' print ''

5. 文件创建好后需要添加可执行权限 ,同样需要root权限用户。

sudo chomd +x hello.py

6. 重启appachectl服务

sudo apachectl restart

7. 打开浏览器,输入url:http://localhost/cgi-bin/hello.py,居然报错了,我们去查看server log。

命令: sudo nano /var/log/apache2/error_log

8. 经过检查,我们之前python脚本出了错误,注意第一行要改成自己电脑上python

解释器的path。在我的电脑上是 !/usr/bin/python

9. 改正过后,重启appachectl服务

sudo apachectl restart

10. 打开浏览器,输入url:http://localhost/cgi-bin/hello.py

11. 效果如下图所示:
 

mac配置CGI运行程序以及自己踩得坑_第2张图片

写在后面:

如果第七步直接成功,可跳过8,9两步。(自己踩到了这个坑,主要是log报的错让我以为是server配置出了问题,实际上是脚本出错)

参考博客:

https://www.jianshu.com/p/af256e91ad51

 

 

 

你可能感兴趣的:(服务器)