环境:
主机:Win10,Chrome浏览器
虚拟机:VMware , CentOS 7,网络连接方式为NAT,没有虚拟映射端口
1,代码部署
将整个代码包利用FileZilla传输到Linux下root文件夹下,主要文件为makefile
http.c:主要代码文件
makefile:编译文件,在文件夹下使用make完成gcc编译
htdocs:网页显示文件
要进到htdocs文件夹下,将文件权限进行更改
chmod 777 *.cgi
chmod 666 index.html
安装cgi
yum install perl-CGI
然后使用以下命令查看cgi路径
whicl perl
然后修改color.cgi文件(在网页文件夹)里的路径成上面显示的路径
vim color.cgi
2,代码编译
在Tinyhttp文件夹下使用make进行编译,生成httpd后
遇到问题:
1),编译报警告
报4个警告,指针类型不同什么的,可以忽略
2),只能linux下firefox浏览器能访问,主机Chrome访问失败
解决方法:
关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
安装依赖包
yum install httpd
yum -y install iptables-services
3),编译时报错未定义
原本的tinyhttp是基于另一个环境下编写的,针对linux有一部分代码需要进行注释和更改
4),未找到httpd命令
不能直接httpd运行,需要./httpd
3,程序运行
在Linux终端上运行httpd程序 ./httpd ,终端会显示port端口号
然后主机上访问 虚拟机ip地址:端口号
如Linux虚拟机ip为 192.168.1.1,程序运行后显示端口号为4000
则在主机Chrome浏览器网址输入 192.168.1.1:4000
就会出现网页
在框中输入 red yellow等颜色,点提交后就能显示对应的color.cgi