国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

minihttp安裝配置ssl和c語言實現(xiàn)cgi

2024-06-28 13:26:46
字體:
供稿:網(wǎng)友
minihttp安裝配置ssl和c語言實現(xiàn)cgi

//參考了大牛們的方法,結(jié)合自己的環(huán)境做了修改,主要是講:minihttp安裝配置ssl和c語言實現(xiàn)cgi接收字符串并且保存//先說明環(huán)境,我用的是centos6.5 ,前面因需要已經(jīng)安裝過openssl和openssl-devel了,這里沒有做openssl的安裝說明。

1. 所需安裝包tar zxf mini_httpd-1.19.tar.gz cgic206.tar.gz 還有 openssl和openssl-devel的安裝包

cd mini_httpd-1.19 //我在安裝的時候這里不修改會報錯誤,說是原來的getline和系統(tǒng)的函數(shù)有沖突 vim htpasswd.c +52 getline 改為 my_getline vim htpasswd.c +192 getline 改為 my_getline2. make3. make install4. 建立存放網(wǎng)頁和cgi的目錄:  mkdir /root/mini/

  mkdir /root/mini/wwwroot

  mkdir /root/mini/wwwroot/cgi-bin5. 創(chuàng)建一個配置文件 touch /root/mini/mini_httpd.pid touch /root/mini/wwwroot/mini_httpd.log vim /root/mini/mini_httpd.conf 添加以下內(nèi)容 port=8080  dir=/root/mini/wwwroot  cgipat=cgi-bin/*  user=nobody  pidfile=/root/mini/mini_httpd.pid  logfile=/root/mini/wwwroot/mini_httpd.log6. 把網(wǎng)頁放在wwwroot目錄下; touch /root/mini/wwwroot/index.html echo mymini_httpd >/root/mini/wwwroot/index.html7. 啟動mini_httpd: /usr/local/sbin/mini_httpd -C /root/mini/mini_httpd.conf8. 測試是否成功,在客戶端瀏覽器中訪問mini_httpd服務(wù)器,在瀏覽器地址欄中輸入: ip地址:8080

  顯示出 mymini_httpd就是成功了

===============================================================

下面是配置SSL的步驟:1.配置ssl

進(jìn)入到mini_httpd的目錄:

cd mini_httpd-1.19

編輯Makefile 去掉17-20行的注釋 SSL_TREE = /usr/local/ssl SSL_DEFS = -DUSE_SSL SSL_INC = -I${SSL_TREE}/include SSL_LIBS = -L${SSL_TREE}/lib -lssl -lcrypto 修改67-69行365改為3650 cert: mini_httpd.pem mini_httpd.pem: mini_httpd.cnf openssl req -new -x509 -days 3650 -nodes2. make make install 如果出錯,再次編譯需要 make clean3. 生成ssl證書 make cert cp ./mini_httpd.pem /etc/4. 修改mini_httpd.conf配置文件,沒有就自己新建一個,下面是我的mini_httpd.conf內(nèi)容: #mini_httpd configuration file data_dir=/root/mini/wwwroot/ #太關(guān)鍵了,前面沒有加,結(jié)果就是在程序中寫不進(jìn)去內(nèi)容。 user=root port=443 host=0.0.0.0 cgipat=cgi-bin/*.cgi logfile=/var/log/mini_httpd pidfile=/var/run/mini_httpd.pid charset=GB2312 ssl certfile=/etc/mini_httpd.pem

啟動mini_http

/usr/local/sbin/mini_httpd -C ./mini_httpd.conf5. 安裝cgic206.tar.gz tar zxf cgic206.tar.gz cd cgic206 make 生成的是測試的.cgi程序

下面是自己編寫一個.cgi程序vim test.c源代碼:#include <stdio.h>#include "cgic.h" #include <string.h> #include <stdlib.h> #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>

extern char *cgiQueryString;

int file_w(char *filename, char *buf){int size, fd; fd = open (filename, O_CREAT | O_RDWR | O_TRUNC, 0664);size = write (fd, buf, strlen(buf));if (size < 0){ return -1; } close (fd);return 0;}

int cgiMain() {int res;res = file_w ("/root/tang.log", cgiQueryString);if (res == -1) { perror ("file_w");} #if 1

  //將要發(fā)送的內(nèi)容回顯在網(wǎng)頁cgiHeaderContentType("text/html");fPRintf(cgiOut, "<HTML><HEAD>/n");fprintf(cgiOut, "<TITLE>My CGIC</TITLE></HEAD>/n");fprintf(cgiOut, "<BODY>");fprintf(cgiOut, "<H1>%s</H1>",cgiQueryString);fprintf(cgiOut, "</BODY>/n");fprintf(cgiOut, "</HTML>/n");#endifreturn 0;}

修改Makefile,做修改前記得備份cp Makefile Makefilebakvim Makefilevim命令行模式下,替換cgictest::%s/cgictest/test/g

編輯完成后保存退出

 make

產(chǎn)生一個test.cgi的文件,拷貝到/root/mini/wwwroot/cgi-bin/目錄下

測試

  在地址欄里面輸入:https://ip地址:8080/cgi-bin/test.cgi?測試內(nèi)容

  回車,記得別忘了test.cgi后面的問號(?),我在測試的時候測試內(nèi)容前面沒有加問號結(jié)果測試不出來

  結(jié)束minihttpd,退出的時候老是退不干凈,需要手動的殺死,還沒有找到原因,如果哪位大哥知道了麻煩告訴一聲,現(xiàn)在用的這種方法殺死進(jìn)程的:

  //查詢進(jìn)程號

  ps -ef | grep mini_httpd  kill -9 進(jìn)程號

參考:http://joyquitelarge.blog.163.com/blog/static/179062171201241165644255/http://www.CUOXin.com/liuyangriver/archive/2012/10/31/2748576.htmlhttp://deepfuture.CUOxin.com/blog/1435339


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 八宿县| 运城市| 德令哈市| 麻阳| 墨脱县| 大新县| 巴马| 镇江市| 和田市| 汉源县| 云霄县| 台湾省| 土默特右旗| 营山县| 施甸县| 图们市| 东辽县| 山阳县| 枞阳县| 凉山| 景洪市| 石泉县| 嫩江县| 隆子县| 庆阳市| 涿鹿县| 休宁县| 诸暨市| 三穗县| 托里县| 安岳县| 杨浦区| 湘潭市| 泌阳县| 洱源县| 长乐市| 六枝特区| 迭部县| 英山县| 黄陵县| 莲花县|