源文件下载地址: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
得到&#
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
得到&#