源文件下载地址:https://sourceforge.net/projects/tinyhttpd/
1.解压压缩文件 tar -zxvf tinyhttpd-0.1.0.tar.gz
2.进入文件目录 cd tinyhttpd-0.1.0
修改htdocs文件夹里面.cgi文件
因为cgi文件是用perl写的,我这里perl的位置是/usr/bin/perl
所以打开.cgi文件第一句改为 #!/usr/bin/perl -Tw
3.修改Makefile
将
httpd: httpd.c
gcc -W -Wall -lsocket -lpthread -o httpd httpd.c
修改为(去掉-lsocket):
httpd: httpd.c
gcc -W -Wall -o httpd httpd.c -lpthread
4.修改httpd.c
第33行改为 void *accept_request(void *);
第51行改为 void *accept_request(void* tclient)
第53行加上一句 int client = *(int *)tclient;
第77行改为 return NULL;
第129行加上 return NULL;
第438行改为 socklen_t namelen = sizeof(name);
第483行改为 socklen_t client_name_len = sizeof(client_name);
第497行改为 if (pthread_create(&newthread , NULL, accept_request, (void*)&client_sock) != 0)
5.在命令行输入 make
6.在命令行输入 ./httpd
得到:
[root@ying tinyhttpd-0.1.0]# ./httpd
httpd running on port 37603
7.在浏览器输入localhost:37603 即可,端口号是随机的所以根据运行的不同,自己进行修改
以上是我从下载到编译执行,自己测试成功的过程,期间参考多个资料。写的不好的欢迎指出。
现在再查找一下没有找到,如有发现参考别人的资料这里没有列出,请见谅,允许转载,请注明
参考:https://www.cnblogs.com/nengm1988/p/7816618.html
https://blog.csdn.net/cqu20093154/article/details/41025885