Python3 CGI

  1. 已经安装:XAMPP \ python3.7
  2. 以下修改内容均在xampp里的Apache配置文件:httpd.conf

 

1.设置我们的py文档的存储路径,以便Python解释器能够找到它(也就是设置访问权限)

下面把.py文件放在cgi-bin里

<Directory "D:/softsave/xamp/cgi-bin">
    AllowOverride None
    Options Indexes FollowSymLinks ExecCGI
    Require all granted
    Require host ip
</Directory>

2.去掉注释


 

3.在cgi-bin里的index.py内容为:

(记得第一行的地址要改成自己的python.exe地址)

#!D:/python/python.exe
# -*- coding: utf-8 -*-
print("Content-type:text/html\n\n")
print                               # 空行,告诉服务器结束头部
print('<html>')
print('<head>')
print('<meta charset="utf-8">')
print('<title>Hello Word!</title>')
print('</head>')
print('<body>')
print('<h2>Hello Word!</h2>')
print('</body>')
print('</html>')

4.运行apache

 

5. 访问链接:

http://localhost/cgi-bin/index.py

成功!

 

以下为问题记录:作者孤傲的小狼

 接下来再说说我遇到报错坑:(大部分是在服务器启动的坑)

一、报错:Errors reported here must be corrected before the service can be started.

这句话的意思其实是:如果在这句话出现的时候,有错误的报告出来,那应该先解决这个错误。如果没有出现报错,就可以无视这句话,所以大家在看到这句话的时候,不必惊慌,没事

二、

报错:Errors reported here must be corrected before the service can be started.
(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。  : AH00072: make_sock: could not bind to address [::]:443
(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。  : AH00072: make_sock: could not bind to address 0.0.0.0:443
AH00451: no listening sockets available, shutting down

AH00015: Unable to open logs

通常看到这类错误,无疑,就是端口冲突

其实却是是端口冲突了,不过这回事443端口冲突,这是Apache里面的一些服务程序用的端口,意思是我们电脑上443端口已经被占用了,一般解决端口占用问题,有两种解决方法。

1、关掉占用端口的程序

先找到占用端口号的程序PID:netstat -ano|findstr “端口号”

再杀死进程:taskkill /pid {pid}

2、更改配置文件中端口配置,就443端口冲突我们来解决。

找到如下文件目录下:Apache24\conf\extra

更改以下两个文件:httpd-ahssl.conf和httpd-ssl.conf,有443的地方改掉,比如改为442。

还有一种低级错误,会造成端口冲突情况,那就是,重复启动该程序。

三、报错:You don't have permission to access /cgi-bin/hello.py on this server.

这种一般是配置文件出了问题,在设置访问权限的地方配错了,根据以上步骤2即可

 

四、报错:AH01215: Can't find a default Python.\r: D:/Apache24/cgi-bin/hello.py

报错意思是,没有找到默认的Python编译器,然后我就去看看py文件的路径有没有错,我发现没有错,然后我以为它默认通过系统path下去寻找,但是到系统环境变量里去看,也没错,那我就纳闷了,这不是有编译器吗。

然后才发现,确实是没找到解释器,因为我的python代码有错,print("")方法(千万别跟我一样大意了),需要加括号(),另外“\n\n”少了,这点要注意。

而上面的错误,就是通过查看日志文件得到的信息。Apache/logs/error.log。所以,建议大家,在调错时,要运用好日志文件,这是个很好的东西!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一身正气z

打赏随心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值