您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 小型web服务器—mongoose2.8使用教程
小型web服务器—mongoose2.8使用教程小型web服务器—mongoose2.8使用教程1、下载mongoose2.8软件,并安装.注意:在安装过程中不可以出现中文路径.2、找到软件的所在安装目录,并找到mongoose.conf文件,用记事本打开.3、看到如图:我们可以看到:rootF:\ios.这里指的路径是指被访问的文件.默认情况下mongoose-2.8是指向C盘的.但是我们可以修改路径为:F:\ios.修改完之后保存.4、修改好了之后需要重启服务:开始---所有程序---Mongoosewebserver---点击:Stopservice(右键“以管理员身份运行”)---Starservice(以管理员身份运行).5、在浏览器输入:(本机IP),可以看到:Mongoose源码剖析:IntroductionandInstallation要剖析Mongoose的源码,首先你得知道它的一些基本情况和特性、并去使用它。本文就是介绍Mongoose是个什么东西?及如何安装和使用?这里假设你知道什么web服务器软件、web服务器使用什么协议、怎么提供服务等,如果你还不知道建议首先阅读:《Mongoose源码剖析:外篇之web服务器》。本文主要内容如下:1、Mongoose介绍2、Mongoose的编译和使用3、Makefile的简单分析4、如何将Mongoose嵌入到应用程序中1、Mongoose介绍Mongoose开源项目的主页是。Mongoose是一个web服务器,通过提供一个web接口给它,它可以嵌入到现有的应用程序中去。Mongooseweb服务器的执行是自满足的,它不依赖于任何其他服务。如果你将它复制到任何目录并执行,它将将启动web服务并将当前目录作为主目录、端口号是8080。当然这些配置选项都可以通过配置文件mongoose.conf设置。Mongoose它的前身是shttpd,它完全开源和自由使用。它还具有如下特性:跨平台——Windows、MacOS、大多数UNIXCGI,SSL,SSI,Digest(MD5)authorization,resumeddownload,aliasesIP-basedACL,Windowsservice,GET,POST,HEAD,PUT,DELETEmethodsSmallfootprint:executablesizeis40kBonLinux2.6i386system,60kBonWindowssystem能够用简单和干净的API嵌入到应用程序中Languagesuportfor:C/C++(native)Python-sinceversion2.6(done)C#-sinceversion2.7(done)Ruby-sinceversion2.9(todo)Lua-sinceversion2.9(todo)2、Mongoose的编译和使用关于Mongoose上面应该已经介绍了它的主要特性。所谓耳听为虚,眼见为实,不过现在这个时代眼见也未必为实,正所谓实践见真知,下面还是来亲身体验下。Windows版本的Mongoose安装和使用,我就不介绍了,众所周知Windows下面的软件的安装基本都是傻瓜式的。下面我介绍的是linux下mongoose的编译和使用(我使用的linux是Ubuntu10.04)。首先去主页上面下载Mongoose的源码(mongoose-2.8.tgz)。将其解压可以看到如下的文件列表:图1、mongoose源码的文件列表其实我们主要用到的就是mongoose.h/c文件,像main.c文件只是用来测试用的。如果你想将mongoose嵌入到你的项目中,主需要用到mongoose.h/c就ok了!而且以后主要的剖析工作就是放在mongoose.h/c上。其中的Makefile文件是用于编译,生成可执行文件和库文件等。用makelinux命令就可以将源码编译为linux版本的mongoose,如下图所示:图2、linux下面Mongoose的编译和执行如上图,当我们输入make命令的时候,会提示你带相应环境的参数make(linux|bsd|solaris|mac|windows|mingw),这里我们选择linux。编译完之后,生成了两个文件:一个可执行文件mongoose、一个库文件_mongoose.so。你可以直接将_mongoose.so库文件拿到你的项目中去使用(当然是基于linux环境的项目,如果在Windows环境下是编译出相应的dll文件,去直接使用)。从上图可以看出,编译完之后我们运行了(./mongoose),看到Mongoose2.8startedonport(s)[8080],servingdirectory[/home/netsky/Downloads/mongoose]。即现在就启动了webserver,当前工作目录是/home/netsky/Downsloads/mongoose,端口号是8080。我们可以在浏览器中输入来访问web服务器(或者如果你跟我一样是在Ubuntu是运行在虚拟机中,你可以在外面的Windows系统中用浏览通过来访问),如下图所示:图3、访问mongoose开启的web服务我们查看mongoose打出来的log,如下图:图4、mongoose打印的log从log可以看出有两个client,一个是我刚才在linux里面通过浏览器打开web服务的根目录;另一个是我在Windows下面通过浏览器打开web服务的根目录。3、Makefile的简单分析下面我们简单分析一下Makefile文件,看我们执行makelinux的时候,编译了什么源文件,及编译的一些选项。从PROG=mongoose和LIB=_$(PROG).so可以知道编译生成的执行文件名和库的名字;从linux:$(CC)$(LINFLAGS)mongoose.c-shared-fPIC-fpic-s-o$(LIB)$(CC)$(LINFLAGS)mongoose.cmain.c-s-o$(PROG)我们知道,在linux下面编译用到了哪些源文件:编译库文件_mongoose.so时仅用到了mongoose.c文件,编译可执行文件时除了mongoose.c文件还用到了main.c。注意上面的变量$(LINFLAGS),即编译时的选项为:其中$(COPT)选项是我们make的时候跟的一些选项,下面列出这些选项及其意义:all:@echomake(linux|bsd|solaris|mac|windows|mingw)#PossibleCOPTvalues:(inbracketsareroughnumbersfor'gcc-O2'oni386)#-DHAVE_MD5-usesystemmd5library(-2kb)#-DNDEBUG-stripoffalldebugcode(-5kb)#-DDEBUG-builddebugversion(verynoisy)(+7kb)#-DNO_CGI-disableCGIsupport(-5kb)#-DNO_SSL-disableSSLfunctionality(-2kb)#-DCONFIG_FILE=\file\-use`file'asthedefaultconfigfile#-DNO_SSI-disableSSIsupport(-4kb)#-DHAVE_STRTOUI64-usesystemstrtoui64()functionforstrtoull()Makefile就简单的分析到这了,现在应该比较清楚可执行文件及库是怎么生成的了。(提示:Windows下面的编译,Makefile文件中也已经给出了,请查看Makefile文的后半部分。)4、如何将Mongoose嵌入到应用程序中目前Mongoose可以支持嵌入到C/C++、Python、C#,而且在下一个版本(2.9)将支持Ruby、Lua。但在这里我只介绍怎么样将Mongoose嵌入到C/C++中。其实将Mongoose嵌入到C/C++应用程序中很简单,因为Mongoose本来就是用C编写的,因此可以非常简单的将它嵌入到你的应用程序中。首先,拷贝mongoose.h/c到你的源码目录下然后,在你的应用程序中启动和配置mongoose。其实自带的main.c就是一个很好的例子,当我们编mongoose的可执行文件时就用到了它。你完全可以把main.c当做你的应用程序,完全一样,当然业务逻辑不同。(后面假设你的应用程序名为main.c,当然怎么命名随你喜欢!)最后,跟上面我们分析的Makefile中介绍到的如何在linux下编译Mongoose一样,你也是用下面的命令编译:ccmain.cmongoose.c–ldl-lpthread–otest关于编译选项-pthread:Mongoose中在程序中用到了pthread.h头文件中的函数时需要加这个选项。在编译的时候加上此选项会去链接libpthread.a或libpthread.so文件。关于如何编写类似main.c代码调用mongoose提供的接口,这个工作在本系列后面的文章中介绍。至此,将Mongoose嵌入到你的C/C++应用程序中的工作已经完成,现在你执行./test即可以应用你的应用程序,它调用到了mongoose提供的一些接口。通常上面的介绍,是不是觉得在应用程序嵌入Mongoose很简单呢!是的就是这么简单。
本文标题:小型web服务器—mongoose2.8使用教程
链接地址:https://www.777doc.com/doc-2538669 .html