1、安装环境Ubuntu16.04
2、安装lighttpd
apt install lighttpd
3、安装fastcgi
下载源码:fastcgi-2.4.1-SNAP-0910052249.tar.bz2
解压:tar -xjvf fastcgi-2.4.1-SNAP-0910052249.tar.bz2
进入源码:cd fastcgi-2.4.1-SNAP-0910052249
修改fcgi-2.4.1-SNAP-0910052249/libfcgi/fcgiapp.c,在里面加一句#include <stdio.h>。否则编译报错。
配置:./config
编译:make
安装:make install
将编译出的动态库加入环境变量:vim /etc/ld.so.conf
在下面加入一行:/usr/local/lib
使环境变量生效:ldconfig
4、编写C语言程序
vim test.c

#include <stdlib.h>
#include <string.h>
#include <syslog.h>
#include <alloca.h>
#include <fcgiapp.h>
#define LISTENSOCK_FILENO 0
#define LISTENSOCK_FLAGS 0
int main(int argc, char **argv)
{int err = FCGX_Init(); /* call before Accept in multithreaded apps */if (err){return 1;}FCGX_Request cgi;err = FCGX_InitRequest(&cgi, LISTENSOCK_FILENO, LISTENSOCK_FLAGS);if (err){return 2;}while (1){err = FCGX_Accept_r(&cgi);if (err){break;}char **envp;int size = 200;char *result = (char *)alloca(size);strcpy(result, "Status: 200 OK\r\nContent-Type: text/html\r\n\r\n");strcat(result, "<html><h1>TestCGI!</h1></html>\r\n");FCGX_PutStr(result, strlen(result), cgi.out);}return 0;
}

编写makefile:vim Makefile

all:gcc test.c -o test.fastcgi -lfcgi

编译C语言程序:make
5、编写index.html

<html>
<head><title>first cgi page</title>
</head><body><p>hahaha...</p>
</body>
</html>

6、修改配置
创建/var/www/html目录,将上一步编写的index.html拷贝到该目录下。
创建/var/www/html/cgi-bin目录,将之前编写的test.fastcgi程序拷贝到该目录。

修改lighttpd配置:vim /etc/lighttpd/lighttpd.conf

server.modules = ("mod_access","mod_alias","mod_compress","mod_redirect","mod_rewrite","mod_fastcgi"    #新增fastcgi模块
)server.document-root        = "/var/www/html" #网页主目录
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
#server.username             = "www-data"
#server.groupname            = "www-data"
server.port                 = 80index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )# default listening port for IPv6 falls back to the IPv4 port
## Use ipv6 if available
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

vim /etc/lighttpd/conf-available/10-fastcgi.conf

# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
server.modules += ( "mod_fastcgi" )
fastcgi.server = ("/test" => (("socket" => "/var/www/html/test.socket","bin-path" => "/var/www/html/cgi-bin/test.fastcgi","check-local" => "disable"))
)

7、启动lighttpd服务
service lighttpd start
可以通过lsof -i:80查看服务是否启动成功

lighttpd使能fastcgi模块lighty-enable-mod

重新加载配置文件/etc/init.d/lighttpd force-reload
8、测试
浏览器登录127.0.0.1

浏览器登录127.0.0.1/test

lighttpd+fastcgi+C语言程序相关推荐

  1. Lighttpd+fastcgi+C语言

    lighttpd+fastcgi+C语言                                                        一.简述 记--lighttpd+fastcgi ...

  2. c语言程序设教材计 乌云高娃,C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt...

    C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt 主要内容 课程概述 为什么选择C语言作为入门课程? C语言 ...

  3. 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx

    PAGE / NUMPAGES 一.单选题 1.下面叙述中正确的是: (A) 在C语言程序中,main()函数必须放在程序的开始位置 (B) 在C语言程序中,要调用的函数必须在main()函数中定义 ...

  4. 周信东c语言实验二实验报告,周信东主编最新版C语言程序设计基础实验一实验报告.doc...

    周信东主编最新版C语言程序设计基础实验一实验报告.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我 ...

  5. linux中编译C语言程序

    1.首先安装gcc编辑器 yum install gcc* -y 2.编写C语言程序 [root@test ~]# vim aa.c #include<stdio.h> int main( ...

  6. java打印四行等腰三角形_(c语言程序案例.doc

    (c语言程序案例 上机注意: 1.请大家在VC6.0中建立工程,编写代码,编译(compile),链接(build),运行(execute program)后,输入题目中的例子输入,在输出与题目中的例 ...

  7. c语言程序与设计苏小红,c语言程序设计苏小红

    <实验教学示范中心建设教材·国家精品课程主讲教材:C语言程序设计(第2版)>是一本兼具趣味性和实用性的C语言程序设计教材.全书由13章组成,内容包括:为什么要学C语言,C数据类型,简单的算 ...

  8. c语言储存10的500,c语言程序基础练习题500道

    1.以下四个选项集的非c语言中介语选项为(a): A) define B) gect C) include D) while IF char scanf go Type printf case pow ...

  9. c语言程序做四则运算还要余数,大整数四则运算 高质量C语言程序.doc

    大整数四则运算 高质量C语言程序 设计题目: 大整数的四则运算 1. 功能简介:编写出实现大整数之间相加,相减,相乘,相除的程序,并输出计算结构. 课程设计要求:采用模块化程序设计 源程序中应有足够的 ...

最新文章

  1. 戴尔官网全网抄底价! 企业级高性能机Vostro仅¥1,999!更有额外福利等你来领!...
  2. centos 6.5升级openssl
  3. 利用bladex+avue实现一对多的关系
  4. Infinispan版本已映射到最低Java版本
  5. 【Pytorch神经网络实战案例】09 使用卷积提取图片的轮廓信息(手动模拟Sobel算子)
  6. Java学习之IDEA2020安装
  7. 雪豹玩家必备网站推荐:
  8. c#关于try catch finally的使用,判断日期格式是否正确
  9. 【训练计划】--2019-04
  10. STM32F411移植FreeRtos教程
  11. 微信云支付的扫码支付
  12. Android跨进程通信--AIDL原理解析
  13. 上传照片(身份证照片正反面)
  14. 千呼万唤始出来-YYC松鼠聚合系统搭建教程,理论上可对接一切API
  15. ue 查看 html,网页查看源文件 默认用UltraEdit或记事本打开 修改办法
  16. Linux扩容swap分区
  17. 阿里云账号注册流程方法(图文教程)
  18. 微信公众号01: ase实现access_token的存储和被动刷新
  19. MySQL使用HQL语句实现按中文拼音排序
  20. Mixly for Mac米思齐安装过程遇到的问题(已解决)

热门文章

  1. 太阳能手机充电器毕设,51代码,附正文
  2. 谈谈老罗的锤子手机rom发布会
  3. 制作多重启动光盘——启动易(EasyBoo…
  4. Windows Terminal 自定义主题配色
  5. 手把手教你:如何让围棋人工智能Leela Zero陪你“人机大战”
  6. SteamVR---替换手部模型
  7. 2015上机二 国际象棋跳马5*5
  8. 吃鱼还是吃肉,国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。 现在你要根据小宝宝的身高体重,给出补充营养
  9. android 步行距离,Android 高德地图 步行 路线规划
  10. 基于springboot外委员工后台管理系统毕业设计源码101157