1.Nginx

1.1.安装

  1. Nginx 的中文维基 http://wiki.codemongers.com/NginxChs 下载
    Nginx 0.6.26(开发版)(请下载最新版本号)
  2. tar zxvf nginx-0.6.26.tar.gz
  3. ./configure。注意了类似checking for *** ... not found项,可能是依赖包没有。则须要安装依赖包
  4. 缺少PCRE,yum install pcre安装。

    或者去:http://www.pcre.org/

  5. 假设缺少OpenSSL,yum install libssl-dev,或者去:http://www.openssl.org
  6. 假设缺少zlib,能够yum install zlib1g,或者http://www.zlib.net/
  7. make & make install
  8. 建议安装在/usr/local/nginx下

1.2 启动

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2.FastCGI开发库安装
2.1 安装fastcgi库
./configure

make

make install(须要root权限)

2.2 演示样例程序
#include <fcgi_stdio.h>
int main( int argc, char *argv[] )
{
while( FCGI_Accept() >= 0 )
{
FCGI_printf( "Status: 200 OK\r\n" );
FCGI_printf( "Content-Type: text/html\r\n\r\n" );
FCGI_printf( "Hello world in +++++++\n" );
}
return 0;
}

Makefile编译:
TARGET = 1.cgi
INSTALL_PATH = . LIBDIRS = -L/usr/local/lib LIBS += -lfcgi \ CC = gcc
CXX = g++ CXXFLAGES += -Wall -O2
LDFLAGS = -Wl,-R /usr/local/lib RM = rm -f
CP = cp -f SOURCES += first-cgi.cpp OBJECTS = $(SOURCES:.cpp=.o) .PHONY : all clean all:$(TARGET) $(TARGET):$(OBJECTS)
$(CXX) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(LIBDIRS) $(LIBS) $(OBJECTS):%.o:%.cpp
$(CXX) -c $(CXXFLAGES) $(INCLUDES) $< -o $@ clean:
-$(RM) $(TARGET) $(OBJECTS)


3.spawn-fcgi

先有必要有这样第一个认识:ngxin作为一个webserver,本身并不包括CGI的解释器。须要通过一个中间件【比如php-fpm】来执行CGI。他们之间的模式大致是:

      nginx   <--   socket   -->   php-fpm-------->php  

那么nginx既然要执行c写的CGI那么也应该有类似php-fpm的东西。

baidu, google了下。发现有一个spawn-fcgi的东西。原本是lighttp 内的fastcgi进程管理器

3.1 安装 spawn-fcgi


wget   http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
tar zxvf lighttpd-1.4.19.tar.gz
cd lighttpd-1.4.19
./configure
make




复制 编译好的spawn-fcgi到 nginx文件夹(须要root权限)。非常主要!!。。
cp ./src/spawn-fcgi /usr/local/nginx/sbin/

3.2 启动spawn-fcgi

#!/bin/bash
DESTDIR=.
HOST='127.0.0.1'
PORT='7000'
PROCESSNAME='1.cgi'
sudo killall -9 $PROCESSNAME
echo "=====killed====="
RESTART="sudo /usr/local/nginx/sbin/spawn-fcgi -a $HOST -p $PORT -f $DESTDIR/$PROCESSNAME -F 1"
echo $RESTART
$RESTART
echo "======done======"
ps -ef | grep $PROCESSNAME

4.配置nginx.conf




server {
listen 9990;
server_name localhost;
#access_log logs/host.access.log main;
location / {
rewrite ^/(.*)$ localhost;
root html;
index index.html index.htm;
}
location ~ (.*) {
fastcgi_pass 127.0.0.1:7000;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}

最后在浏览器中输入

192.168.1.120是我虚拟机的地址

最新文章

  1. 解决mysql插入数据时出现Incorrect string value: &#39;\xF0\x9F...&#39; for column &#39;name&#39; at row 1的异常
  2. git提交时支持文件名大小写的修改
  3. 不安装oracle客户端,用plsql连接oracle
  4. HDInsight 路径问题
  5. [转]Linux下的lds链接脚本详解
  6. 安装多个版本的unity
  7. zoj Abs Problem
  8. 戴尔笔记本win8.1+UEFI下安装Ubuntu14.04过程记录
  9. jQuery手风琴广告展示插件
  10. IOS 本地通知
  11. HDOJ(HDU) 1587 Flowers(水、、)
  12. hibernate连接数据库,进行操作的步骤
  13. redhat5安装phantomjs
  14. 从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路
  15. Python字符串操作之字符串分割与组合
  16. 潭州课堂25班:Ph201805201 MySQL第三课 (课堂笔记)
  17. 初学delphi
  18. Shiro学习笔记五(Shiro标签,及通配符)
  19. synchronized 和 lock 的区别
  20. C++ STL 的底层数据结构实现

热门文章

  1. 【VScode】使用VScode 来写markdown时序图
  2. centos7配置静态IP步骤
  3. mysql高效率随机获取n条数据写法
  4. Python之爬虫-中国大学排名
  5. 选项B中:int b[][3]={0,1,2,3}
  6. Linux最常用的基础命令 上篇
  7. hihocoder 1515 分数调查(树形dp)
  8. Unity 3D 使用TerrainCompose 调用RTP 报错:
  9. jQuery_DOM学习之------clone()
  10. 九度oj 题目1074:对称平方数