Heim > Artikel > Backend-Entwicklung > Schreiben Sie ein CGI-Programm unter dem Nginx-Server
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-fcgi3 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
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/ -lfcgiKopieren 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.cgiFü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.cgiAusdrucken: Hallo Welt in CArtikelreferenz: http://wiki.ubuntu.org.cn/Nginx