有电脑就能做网站,赶紧行动起来吧

文章更新于:2020-03-05
本文默认你安装过 python 和 配置过 web 环境了

注1:安装 python 参见: python 的安装使用和基本语法
注2:配置 web 环境参见: Windows&linux使用集成环境搭建 web 服务器
注3:linux 配置 CGI参见:linux 配置 python3 CGI
注4:更多 CGI 配置参见:python CGI 编程实践

一、修改配置文件

学了 python 以后光想耍两招儿?各位煤老板,来吧!用 python 写个网页程序,炫酷!

1、修改 ScriptAlias

 ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"

ScriptAlias指令使Apache允许执行一个特定目录中的CGI程序。当客户端请求此特定目录中的资源时,Apache假定其中所有的文件都是CGI程序并试图运行它。

说白了就是这行代码指定了你网站 CGI 程序的存放位置。


#1、那什么是 CGI 程序?

CGI 程序就是说这玩意不是简单的 HTML 静态页面,而是将请求发送给这个程序,然后由这个程序处理之后再返回响应信息给服务器,服务器在将返回值作为 HTML 返回。


#2、那各位煤老板看到这就要问了,那为什么需要这玩意?

因为这玩意处理能力比较强大,就比如说今天我们配置的 python-cgi 环境就是其中一种。


#3、那煤老板又有疑问了,那服务器怎么知道哪些需要这样处理?

好办,上面那一行代码就是处理这个问题的。

上面代码定义了一个 /cgi-bin/ 目录,

也就是说,访问 x.x.x.x/cgi-bin/ 后面的所有页面都当成 CGI 程序进行处理。

而且这个 /cgi-bin/ 后面实际指向 “${SRVROOT}/cgi-bin/” 目录。

比如访问 localhost/cgi-bin/hello.py 实际访问的是 localhost 主机下的 ${SRVROO}/cgi-bin/hello.py 文件。


#4、${SRVROOT} 是什么东西?

${SRVROOT} 是 Apache 的安装路径,用到这个地址的时候写这个变量就可以了。如下图,这个在配置文件中定义着。


段一图一修改scriptalias

2、补充知识点!重要!

注1:修改过ScriptAlias以后不需要其他处理,即可在该目录下运行CGI程序。

注2:不但是这样此目录下的所有文件都会被当做CGI程序处理,如果你放一个HTML文件进去,访问的时候是会出错的。

注3:那有没有折中的办法呢?有。在主配置文件中建立对应的目录,并AddHandler如下图所示,即可只处理该目录下 .py结尾的文件,而其他文件正常处理。

段一图二更改配置文件

二、写 CGI 程序

1、尝试用 python 写一个 CGI 程序

#1、在我们设置到的 cgi-bin 目录下建立一个 .py 的文件,并写入内容。

其中第一行用来指定此文件的解释器,也就是 python.exe 的位置。

第二行输出空行告诉服务器头部信息结束,下面的是正文。
段二图一写CGI程序
#2、浏览器尝试访问

段二图二访问正常
#3、注意解析器必须指定到 /python.exe ,第二行必须输出空行,不然会出现如下错误:

段二图三500错误

2、尝试将 cgi-bin/ 换成其他字符

#1、修改配置文件,比如我们将 cgi-bin 换成 python ,并指定路径到 c:\test

并在其目录下写一个 world.py 的CGI程序。

段二图四更改配置

#2、访问一下~ ok,shit!居然没权限了!!
段二图五没权限了
#3、原来是咱跑太远了,人家不认了。不过也好办,看

段二图六更改配置

#4、重启服务,重新访问一下

段二图七

三、Enjoy!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值