Python:CGI本地配置方法 Mac Apache

CGI本地配置 Mac,记录一下,网上的看了好多,不怎么好理解,通俗易懂的走个流程吧。

Mac环境下 Apache是支持CGI的,本人理解的意思就是说:平时我们打开Python文件,在浏览器上显示的是py文件内容,通过配置,就可以让py文件在Apache上运行,然后我们访问的时候就是程序的反馈信息。

开始配置流程:

1.找到要修改的文件(在find中,直接command+shift+G,然后粘贴路径,查找,就找到要修改的文件了)

/etc/apache2/httpd.conf   

2.修改httpd.conf,我是直接用sublime text修改的,直接将文件拖到sublime中,如下图所示:

(1)command+F 搜索mod_cgi.so,然后将前面的#删除

LoadModule cgi_module libexec/apache2/mod_cgi.so

(2)command+F 搜索AddHandler,然后将这一行,用下面这行替换

AddHandler cgi-script .cgi .pl .py .sh

(3)command+F 搜索ScriptAlias,然后添加下面一行(一般这个默认都是注释的,我们直接添加一句,也可以把他删除了)

ScriptAlias   /Documents/  /Library/WebServer/Documents/ 

添加后就是下面这样了,注意最下面第二行就是我添加的

<IfModule alias_module>
    #
    # Redirect: Allows you to tell clients about documents that used to 
    # exist in your server's namespace, but do not anymore. The client 
    # will make a new request for the document at its new location.
    # Example:
    # Redirect permanent /foo http://www.example.com/bar

    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.

    #
    # ScriptAlias: This controls which directories contain server scripts. 
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the target directory are treated as applications and
    # run by the server when requested rather than as documents sent to the
    # client.  The same rules about trailing "/" apply to ScriptAlias
    # directives as to Alias.
    #ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"
    ScriptAlias   /Documents/  /Library/WebServer/Documents/  
</IfModule>

(4)在刚才搜索的下面有个CGI的Directory需要修改

#<Directory "/Library/WebServer/CGI-Executables">
  #  AllowOverride None
   # Options None
   # Require all granted
#</Directory>

就是这个字典,我把他直接注释了,然后用下面这个字典替换。

<Directory "/Library/WebServer/Documents">  
    AllowOverride None  
    Options +ExecCGI  
    Order allow,deny  
    Allow from all  
</Directory>  

修改完毕,保存。

4.重启Apache

sudo /usr/sbin/apachectl restart    

5.在下面路径下写一个用来运行的test.py文件

/Library/WebServer/Documents
import cgi


def main():
    print "Content-type: text/html\n"
    print "你的东西配置好了,开始py"


main()

6.(注意)给test.py授权

chmod 777 
/Library/WebServer/Documents/test.py

7.搞定了,这时候在浏览器打开:

http://localhost/test.py

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术交流群809340374

史上最全Java面试266题:算法+缓存+TCP+JVM+搜索+分布式+数据库

以上是总结出的最全Java面试题目,以下是最新总结出的BAT面试java必考题目和答案。

2370
来自专栏xingoo, 一个梦想做发明家的程序员

TDDL与Spring Boot集成Version报错——跟踪与解决

先说背景:公司采用diamond+tddl,这套技术来做web管理。本人处于好奇率先体验了下spring-boot,于是就有了spring-boot+tddl...

3229
来自专栏开源优测

RFC1945 超文本传输协议--HTTP/1.0 之一

1122
来自专栏Keegan小钢

Android项目重构之路:架构篇

去年10月底换到了新公司,做移动研发组的负责人,刚开始接手android项目时,发现该项目真的是一团糟。首先是其架构,是按功能模块进行划分的,本来按模块划分也挺...

1394
来自专栏Java技术栈

史上最全阿里 Java 面试题总结

以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题。

6513
来自专栏java架构师

BAT美团滴滴java面试大纲(带答案版)之三:多线程synchronized

继续面试大纲系列文章。   从这一篇开始,我们进入ava编程中的一个重要领域---多线程!多线程就像武学中对的吸星大法,理解透了用好了可以得道成仙,俯瞰芸芸众生...

30310
来自专栏编舟记

Clojure component 设计哲学

Component 是一个微型的 Clojure 框架用于管理那些包含运行时状态的软件组件的生命周期和依赖。

940
来自专栏腾讯IVWEB团队的专栏

在 NodeJS 中玩转 Protocol Buffer

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。

1.4K0
来自专栏禁心尽力

多线程编程:多线程并发制单的开发记录【一】

进程和线程: 下图是在来自知乎用户的解释,个人感觉狠到位 ?        进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资...

2067
来自专栏吴裕超

Protocol Buffers 在前端项目中的使用

公司后端使用的是go语言,想尝试用pb和前端进行交互,于是便有了这一次尝试,共计花了一星期时间,网上能查到的文档几乎都看了一遍,但大多都是教在node环境下如何...

5004

扫码关注云+社区

领取腾讯云代金券