美文网首页程序员
Nginx环境搭建以及如何使用C语言搭建Fastcgi

Nginx环境搭建以及如何使用C语言搭建Fastcgi

作者: 高数之父 | 来源:发表于2020-06-09 23:36 被阅读0次

    先下载安装软件。
    链接:https://share.weiyun.com/qVya0bSY 密码:hqajkt

    $ cd ~
    $ mkdir nginx
    $ cd nginx
    解压每个包
    $ tar xzvf nginx-1.13.7.tar.gz
    $  tar xzvf openssl-1.1.0g.tar.gz
    $ tar xzvf pcre-8.41.tar.gz
    $ tar xzvf zlib-1.2.11.tar.gz
    进入相应nginx目录  切记,将kogan换成自己的用户名。
    $ cd nginx-1.13.7
    ./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_addition_module --with-    http_ssl_module  --with-http_gzip_static_module  --with-http_secure_link_module --with-http_stub_status_module --with-stream --with-pcre=/home/kogan/nginx/pcre-8.41  --with-zlib=/home/kogan/nginx/zlib-1.2.11  --with-openssl=/home/kogan/nginx/openssl-1.1.0g
    $ make
    $ sudo make install
    启动nginx
    $ /usr/local/nginx/sbin/nginx
    

    再访问自己虚拟机或者云主机的IP。则可以看见界面了。


    image.png

    常用的nginx启动和关闭命令。

    启动
    ./nginx   默认使用/usr/local/nginx/conf/nginx.conf 文件
    ./nginx  -c  配置文件路径
    关闭
    . /nginx -s quit
    强制关闭
    ./nginx -s stop
    

    怎么写配置文件的教程日后再写。

    如何使用cgi
    (1)安装软件
    tar xfzv spawn-fcgi-1.6.4.tar.gz
    cd spawn-fcgi-1.6.4
    ./configure
    make
    make install
    cd src
    cp src/spawn-fcgi /usr/local/nginx/sbin

    tar xzfv fcgi.tar.gz
    cd fcgi-2.4.1-SNAP-0311112127
    ./configure
    vim include/fcgio.h
    在#include <iostream>下面添加
    #include <stdio.h>
    make
    make install
    cd /usr/local/nginx/sbin
    
    使用root用户执行以下命令或者给spawn-fcgi程序777权限,以便于用其他用户执行:
    ./spawn-fcgi -a 127.0.0.1  -p 9002  -f  /home/kogan/share/index (该路径替换成你自己的)
    出现spawn-fcgi: child spawned successfully: PID: 6447则代表成功。
    如果出现spawn-fcgi: child exited with: 127
    则采用这个方法:
    ln -s /usr/local/lib/libfcgi.so.0.0.0  /usr/lib/libfcgi.so.0
    

    创建配置conf文件

    在/usr/local/nginx/conf下创建demo.conf文件

    worker_processes 4;
    events {
    worker_connections 1024;   #最大连接数
    }
    http {
        server {
        listen 9000;
        location / {
        fastcgi_pass 127.0.0.1:9002;
        fastcgi_index index.cgi;
        fastcgi_param SCRIPT_FILENAME cgi$fastcgi_script_name; #输入 nginx -c 路径时的变量
        include ../conf/fastcgi_params;
        }
      }
    }
    

    说一下
    fastcgi_index 默认打开的cgi文件 根据上述配置直接访问IP:9000,那么默认就是打开 XXX:9000/index.cgi
    fastcgi_param SCRIPT_FILENAME cgi$fastcgi_script_name 打开的脚本文件
    使用 nginx -c conf/demo.conf conf/demo.conf就是fastcgi_script_name
    include fastcgi_params; 包含fastcgi_params的以demo.conf的相对路径。因为上面三个参数都在这个文件中。

    //开始写一个打印当前系统下所有用户的用户名的cgi程序。
    #include <stdio.h>
    #include <unistd.h>
    #include <fcgi_stdio.h>
    #include <sys/types.h>
    #include <string.h>
    #include <dirent.h>
    int main(int argc, char **argv)
    {  
      while(FCGI_Accept() >= 0)
      {
         printf("Content-type: text/html\r\n");
         printf("\r\n");
         printf("<title>my cgi</title>");
         printf("<h1> sad</h1>");
         printf("current user:\n");
     
        struct dirent *pDirInfo;
        DIR *pDir = opendir("/home");
      chdir("/home");
      if(argc < 2)
      {
          pDir = opendir(".");
      }
      else
      {
          pDir = opendir(argv[1]);
     }
      if(NULL == pDir)
      {  
        perror("Can't open dir!");
        return -1;
    }
      while( (pDirInfo = readdir(pDir)) != NULL )
      if(strcmp(pDirInfo->d_name, "..")  && strcmp(pDirInfo->d_name, "."))
          {  
            printf("%s\n",pDirInfo->d_name);
        }
      closedir(pDir);
    }
    
    return 0;
    }
    

    然后使用访问 XXXX:9000端口,即可看见网页。

    相关文章

      网友评论

        本文标题:Nginx环境搭建以及如何使用C语言搭建Fastcgi

        本文链接:https://www.haomeiwen.com/subject/hpuytktx.html