Home  >  Article  >  Backend Development  >  Write cgi program under nginx server

Write cgi program under nginx server

WBOY
WBOYOriginal
2016-08-08 09:21:381287browse

I am using Ubuntu system

1. Install nginx server

http://nginx.org/download/nginx-1.9.2.tar.gz
tar -zvxf nginx-1.9.2.tar.gz
cd nginx
./configure
make && make install

Default installation path: /usr/local/nginx

nginx simple configuration: /usr/local/nginx/conf/nginx.conf

#user  nobody;
worker_processes  4;

error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;
    tcp_nopush      on;

    #keepalive_timeout  0;
    keepalive_timeout  90;

    #gzip  on;

    server {
        listen       192.168.88.134:8080; //修改成自己的ip地址跟端口
        server_name  192.168.88.134;

        #charset koi8-r;

        access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm index.php;
			#autoindex on;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
           root           html;
           fastcgi_pass   127.0.0.1:9999;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
           include        fastcgi_params;
        }
        location ~ \.cgi$ {
           root           html;
           fastcgi_pass   127.0.0.1:7000;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
           include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
}
Start nginx: /usr/local/nginx/sbin/nginx

Close nginx: kill `ps aux|grep nginx|sed -n '1p'| awk '{print $2}'`

2. Install spawn-fcgi

apt-get install apawn-fcgi
3. Install fast-cgi
wget http://www.fastcgi.com/dist/fcgi.tar.gz
tar -xvzf <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">fcgi.tar.gz</span>
此时不能编译安装
cd fcgi-2.4.1/include
打开fcgio.h 添加#include <stdio.h>
./configure
make && make install
Copy the compiled spawn-fcgi Go to the nginx directory
cp./src/spawn-fcgi/usr/local /nginx/sbin So .

0 / usr/libThe installation directory may not be the same for everyone, please search and copy and modify according to the installation directory 4. Write cgi program

#include <fcgi_stdio.h>
#include <iostream>
using namespace std;

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 C\n" );
	}
    return 0;
}
compilation:
g++ -o test.cgi test.cpp -L /usr/local/lib/ -lfcgi 
copies test.cgi to /usr/local/nginx/html/

Start the spqwn-fcgi program

spawn-fcgi -a 127.0.0.1 -p 7000 -u nobody -f ./test.cgi
in nginx.conf Add

location ~ \.cgi$ {
           root           html;
           fastcgi_pass   127.0.0.1:7000;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
           include        fastcgi_params;
        }
Open the browser and enter: http://192.168.88.134:8080/test.cgi

Print out: H ello world in CArticle reference:

http://wiki.ubuntu.org.cn/Nginx

http://blog.chinaunix.net/uid-30030431-id-4669581.html

http: //terry831010.blog.163.com/blog/static/6916117120126185428827/


Copyright Statement: This article is an original article by the blogger and may not be reproduced without the blogger's permission.

The above introduces the writing of cgi programs under nginx server, including aspects of content. I hope it will be helpful to friends who are interested in PHP tutorials.


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn