Heim  >  Artikel  >  Backend-Entwicklung  >  Schreiben Sie ein CGI-Programm unter dem Nginx-Server

Schreiben Sie ein CGI-Programm unter dem Nginx-Server

WBOY
WBOYOriginal
2016-08-08 09:21:381331Durchsuche

Ich verwende das Ubuntu-System

1. Nginx-Server installieren

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

Standardinstallationspfad: /usr/local/nginx

Einfache Nginx-Konfiguration: /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;
        #}
    }
}
Starten Sie nginx:/usr/local/nginx/sbin/nginx

Nginx schließen: kill `ps aux|grep nginx|sed -n '1p'|

2. Installieren Sie spawn-fcgi

apt-get install apawn-fcgi
3 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
Kopieren Sie das kompilierte spawn-fcgi in das Nginx-Verzeichnis
cp./src /spawn-fcgi/usr/lokal/nginx/sbin/

cp/usr/local/lib/ libfcgi.also.0 /usr/lib

Das von allen installierte Verzeichnis ist möglicherweise nicht dasselbe , bitte machen Sie es selbst. Suchen und kopieren und ändern Sie entsprechend dem Installationsverzeichnis

4. Schreiben Sie ein CGI-Programm

#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;
}
Kompilieren:

g++ -o test.cgi test.cpp -L /usr/local/lib/ -lfcgi 
Kopieren Sie test.cgi nach /usr/local/nginx/html/

Starten Sie das spqwn-fcgi-Programm

spawn-fcgi -a 127.0.0.1 -p 7000 -u nobody -f ./test.cgi
Fügen Sie
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;
        }
Öffnen Sie den Browser und geben Sie ein: http://192.168.88.134:8080/test.cgi

Ausdrucken: Hallo Welt in C

Artikelreferenz:

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


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


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





Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.

Das Obige stellt das Schreiben von CGI-Programmen unter dem Nginx-Server vor, einschließlich inhaltlicher Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn