zoukankan      html  css  js  c++  java
  • C语言之CGI编程(一)

    环境是ubuntu系统

    1.apache2的安装和启动

    安装命令:sudo apt-get install apache2

    启动 sudo /etc/init.d/apache2 start " 启动apache服务

    最后的参数stop start 和restart分别代表停止,开始和重启apache2服务

    测试一下有没有安装成功:在浏览器中输入localhost/index.html如果看到apache的页面,就表示这一步已经通过了,安装完后默认的端口号是80,修改端口号比较简单,

    在/etc/apache2 目录下的ports.conf。

    2.第一个简单的CGI程序

    CGI文件默认是放在/usr/lib/cgi-bin/目录下的,需要修改这个关联目录,可以参考修改Apache2配置文件的相关博客,这里为了简单,

    先不介绍,在以后的博客中陆续介绍。如果没有cgi-bin目录就在/usr/lib文件夹下建立一个这样的文件夹,这一步不需要修改apache的任何配置。

    可以用vim编辑器建立一个hello.c文件:

    #include <stdlib.h>
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
    	printf("Content-type:text/html
    
    ");
    	printf("hello world!
    ");
    	return 0;
    }
    

     需要注意的是第一个的末尾需要输出

    gcc -o hello.cgi hello.c

    生成hello.cgi可执行文件,用./hello.cgi,如果权限不对,需要用chmod命令修改文件的权限

    到这一步,还是不能执行hello.cgi

    3.运行第一个用C语言编写的cgi程序

    在浏览器中输入localhost/cgi-bin/hello.cgi

    如果不能出现hello world!字样,是需要进行一下操作:

    参考:http://www.cnblogs.com/hpcpp/p/6995513.html

    (1)“ cd /etc/apache2 ” 进入到apache2的目录里输入ls查看
    可以看到这两个文件夹 ” mods-enabled “ 和 ” mods-available 
    其中 ” mods-enabled “ 为常用的(也就是默认开启的), ” mods-available “为不常用的(也就是默认不开启)


    (2)cd /mods-available " 进入该目录,输入 "  ls *cgi*.*  " 查找带cgi的文件,可以找到 " cgid.conf ", "cgid.load ", " cgi.load ", " proxy_fcgi.load ", " proxy_scgi.load "

    其中 "proxy_fcgi.load ", " proxy_scgi.load " 我们暂不用,只需要前三个  " cgid.conf ", " cgid.load ", " cgi.load "  就可以了


    (3)接下来,使用 " ln -s *.* *.* " 将这三个文件软链接到 " mods-enabled " 目录下

    ln -s /etc/apache2/mods-available/cgid.conf /etc/apache2/mods-enabled/cgid.conf

    ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load

    ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

     (4)在浏览器中输入localhost/cgi-bin/hello.cgi

    如果修改了端口的,就在localhost:8080/cgi-bin/hello.cgi这样,加上 :端口号进行访问。

    如果发生了错误,要快速定位错误,需要查看日志文件,从而可以快速解决问题。日志文件位于/var/log/apache2/

    我第一次就遇到过一次500错误,查看日志,快速定位解决的。通过日志来查找错误,是很好的方法之一。

    详情可以参考:http://blog.sina.com.cn/s/blog_59d97a63010181me.html

  • 相关阅读:
    路由配置系统(URLconf)
    Django常见命令
    MVC框架和MTV框架
    Django基础
    服务器程序和应用程序
    自定义web框架
    HTTP协议对收发消息的格式要求
    web框架的本质
    python国内镜像源
    Scrapy框架安装失败解决办法
  • 原文地址:https://www.cnblogs.com/hpcpp/p/7003927.html
Copyright © 2011-2022 走看看