ubuntu14.04 apache2 CGI 入门实战

2024-05-26 00:32

本文主要是介绍ubuntu14.04 apache2 CGI 入门实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

apache2服务器配置:

修改/etc/apache2下的apache2.conf文件:

<Directory /var/www/cgi-bin>Options  +ExecCGIAllowOverride NoneRequire all grantedAddHandler cgi-script .py
</Directory>
另外在文件最后添加 ServerName 127.0.0.1:80

修改/etc/apache2/sites-enabled下的ooo-default文件:

在/etc/apache2/mods-enabled目录下的mime.load文件下添加:

LoadModule cgi_module modules/mod_cgi.so

以上是配置过程,接下来是写html和cgi脚本:

(1)使用python脚本展示一个网页

/var/www/html/page1.html

 <html><h1>Test Page 1</h1><form name="input" action="/cgi-bin/myscript-1.py" method="get"><input type="submit" value="Submit"></form></html>
/var/www/cgi-bin/myscript-1.py

#!/usr/bin/python
print"Content-Type: text/html"
print""
print"<html>"
print"<h2>CGI Script Output</h2>"
print"<p>This page was generated by a Python CGI script.</p>"
print"</html>"
对此文件赋予可执行的权限
sudo chmod o+x myscript-1.py
操作过程:

(2)读取并显示用户输入的数据,并将结果显示在网页上

通过创建一个含有三个输入域和一个提交按钮的网页/var/www/html/page2.html开始

    <html><h1>Test Page 2</h1><form name="input" action="/cgi-bin/myscript-2.py" method="get">First Name: <input type="text" name="firstName"><br>Last Name: <input type="text" name="lastName"><br>Position: <input type="text" name="position"><br><input type="submit" value="Submit"> </form></html>
当"Submit"按钮点击,/var/www/cgi-bin/myscript-2.py脚本被执行(通过action参数指定)。/var/www//html/page2.html显示在web浏览器中的图片如下所示(注意,三个输入域已经被填写好了):

    #!/usr/bin/pythonimport cgiform = cgi.FieldStorage()print "Content-Type: text/html"print ""print "<html>"print "<h2>CGI Script Output</h2>"print "<p>"print "The user entered data are:<br>"print "<b>First Name:</b> " + form["firstName"].value + "<br>"print "<b>Last Name:</b> " + form["lastName"].value + "<br>"print "<b>Position:</b> " + form["position"].value + "<br>"print "</p>"print "</html>"
import cgi语句用来确保能够处理用户通过web输入表单输入的数据。web输入表单被封装在一个表单对象中,叫做cgi.FieldStorage对象。一旦开始输出,"Content-Type: text/html"是必需的,因为web服务器需要知道接受自CGI脚本的输出格式。用户输入的数据在包含form["firstName"].value,form["lastName"].value,和 form["position"].value的语句中可以得到。那些中括号中的名称和 /var/www/html/page2.html文本输入域中定义的名称参数一致。

操作过程:



这篇关于ubuntu14.04 apache2 CGI 入门实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1003055

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

springboot项目redis缓存异常实战案例详解(提供解决方案)

《springboot项目redis缓存异常实战案例详解(提供解决方案)》redis基本上是高并发场景上会用到的一个高性能的key-value数据库,属于nosql类型,一般用作于缓存,一般是结合数据... 目录缓存异常实践案例缓存穿透问题缓存击穿问题(其中也解决了穿透问题)完整代码缓存异常实践案例Red

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

基于C#实现MQTT通信实战

《基于C#实现MQTT通信实战》MQTT消息队列遥测传输,在物联网领域应用的很广泛,它是基于Publish/Subscribe模式,具有简单易用,支持QoS,传输效率高的特点,下面我们就来看看C#实现... 目录1、连接主机2、订阅消息3、发布消息MQTT(Message Queueing Telemetr