{"id":233,"date":"2011-11-17T01:56:52","date_gmt":"2011-11-17T01:56:52","guid":{"rendered":"http:\/\/brain.dailyon.net\/?p=233"},"modified":"2011-11-17T01:56:52","modified_gmt":"2011-11-17T01:56:52","slug":"web-server-mongoose","status":"publish","type":"post","link":"https:\/\/blog.goorigo.com\/?p=233","title":{"rendered":"Web Server : Mongoose"},"content":{"rendered":"<p><strong>Mongoose<\/strong>\ub77c\uace0 \uc544\uc2ed\ub2c8\uae4c?<\/p>\n<p>Mongoose\ub294 Windows\ub098 Unix\uc5d0\uc11c \uc791\ub3d9\ub418\ub294 \uc0ac\uc6a9\ud558\uae30 \uc26c\uc6b4 \uc6f9\uc11c\ubc84 \uc785\ub2c8\ub2e4. Mongoose\ub294 \uac04\ub2e8\ud558\uace0 \uae54\ub054\ud55c API\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc6f9 \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc790\ub4e4, \uc784\ubca0\ub514\ub4dc \uc2dc\uc2a4\ud15c \uac1c\ubc1c\uc790\ub4e4, \uadf8\ub9ac\uace0 \ud30c\uc77c \uacf5\uc720\ub97c \ube68\ub9ac \uad6c\ucd95\ud558\uace0 \uc2f6\uc740 \uc0ac\ub78c\ub4e4\uc774 \uc0ac\uc6a9\ud558\uc2dc\uba74 \uc88b\uc2b5\ub2c8\ub2e4. \uc124\uce58\ub3c4 \uac04\ub2e8\ud569\ub2c8\ub2e4.<\/p>\n<p>Mongoose\uc758 \uc774\uc804 \uc774\ub984\uc740 SHTTPD\uc600\ub358\uac83 \uac19\uc2b5\ub2c8\ub2e4. SHTTPD \uc758 \uc6f9\uc0ac\uc774\ud2b8\uc600\ub358 \u201c<a href=\"http:\/\/shttpd.sourceforge.net\/\" target=\"_blank\">http:\/\/shttpd.sourceforge.net\/<\/a>\u201c\uc5d0 \ub4e4\uc5b4\uac00\uba74 \u201c<a href=\"http:\/\/code.google.com\/p\/mongoose\/\" target=\"_blank\">http:\/\/code.google.com\/p\/mongoose\/<\/a>\u201c\ub85c \uc5f0\uacb0\uc774 \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>Mongoose\uc758 \ud2b9\uc9d5<\/strong><\/p>\n<ul>\n<li>Crossplatform ? works on Windows and most flavors of UNIX<\/li>\n<li>Optional configuration file<\/li>\n<li>CGI, SSL, SSI, Digest (MD5) authorization, resumed download, aliases<\/li>\n<li>IP-based ACL, Windows service, Keep-Alive, GET, POST, HEAD, PUT, DELETE methods<\/li>\n<li>Simple and clean embedded API. Source is in single .c file to make embedding easy<\/li>\n<li>With dynamic loading, embeddable in programs written in Visual Basic, Python, etc<\/li>\n<li>Small footprint: 35 Kb executable on Linux 2.6 i386 system<\/li>\n<\/ul>\n<p>CGI, SSL, SSI, Digest (MD5) \uc778\uc99d, \ub4f1\uc758 \uae30\ubcf8\uc801\uc778 \uc6f9\uc11c\ubc84 \uae30\ub2a5\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc7ac\ubbf8\ub09c \uac83\uc740 \uc784\ubca0\ub514\ub4dc\uc6a9\uc73c\ub85c \uc0ac\uc6a9\ub420 \uc218 \uc788\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc6f9\uc11c\ubc84 \uae30\ub2a5\uc744 \ub123\uc744 \uc218 \uc788\ub2e4\ub294?\uc774\uc57c\uae30\uac00 \ub418\ub294 \uac83\uc774\uc8e0.<\/p>\n<p>\uc544\ud30c\uce58\ub9cc\uc744 \uc0ac\uc6a9 \ud574 \ubcf8 \uc800\ub85c\uc11c\ub294 httpd.conf \ud30c\uc77c\uc744 \uc218\uc815\ud558\ub294 \uac83\uacfc \ube44\uc2b7\ud55c Mongoose\uc758 config \uc635\uc158\ub4e4\uc774 \uc27d\uac8c \ub2e4\uac00 \uc654\uace0 \uac04\ub2e8\ud55c \uc124\uba85\ubb38\uc73c\ub85c\ub3c4 \uc27d\uac8c \uc6f9\uc11c\ubc84 \uc778\uc99d\uc744 \uac78\uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.?\ub610, mongoose.exe \ud30c\uc77c\uc744 \ubcf5\uc0ac\ud574 \ud2b9\uc815 \ub514\ub799\ud1a0\ub9ac\uc5d0 \ub123\uace0 \uc2e4\ud589\uc2dc\ud0a4\uba74 \ub514\ub799\ud1a0\ub9ac\uc758 \ud30c\uc77c\ub4e4\uc744 \ubc14\ub85c \uacf5\uc720\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4. mongoose.exe \ud30c\uc77c\uc744 \uc2e4\ud589\ud558\uba74 dos \ucc3d\uc774 \ub739\ub2c8\ub2e4. \uadf8\ub9ac\uace0 http:\/\/yourpcip:8080 \uc744 \uc785\ub825\ud558\uba74 \uc880\uc804\uc5d0 \uacf5\uc720\ub41c \ub514\ub799\ud1a0\ub9ac\uc758 \ub0b4\uc6a9\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \uacf5\uc720\uac00 \ub05d\ub098\uba74 dos\ucc3d\uc744 \ub2eb\uc73c\uba74 \ub354\uc774\uc0c1 \uacf5\uc720\uac00 \ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. ^^ \ub354\uc774\uc0c1 \uc9dc\uc99d\ub098\ub294 \uc708\ub3c4\uc6b0\uc758 \ud30c\uc77c \uacf5\uc720\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub418\ub294\uac83\uc774\uc8e0.<\/p>\n<p><strong>\uc6f9\uc11c\ubc84 \uc2e4\ud589\/\uc885\ub8cc<\/strong><\/p>\n<p>\uc708\ub3c4\uc6b0\uc5d0\uc11c \uc124\uce58\ub77c\ub294 \uac83\ub3c4 \ub2e8\uc21c\ud788 \ud30c\uc77c\uc758 \ubcf5\uc0ac\uc77c \ubfd0 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\ub97c \uc218\uc815\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc708\ub3c4\uc6b0\uc5d0\uc11c\ub294 \uc11c\ube44\uc2a4 \ud615\ud0dc\ub85c \uc2e4\ud589\uc774 \ub418\uae30 \ub54c\ubb38\uc5d0 \uc11c\ube44\uc2a4 \uad00\ub9ac\uc5d0\uc11c stop\/start \ub97c \ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4. \uc124\uce58\uc2dc \uc791\uc131\ub418\ub294 \uc2dc\uc791 \uba54\ub274\uc5d0\ub3c4 \u201cStart service\u201d\ub098 \u201cStop service\u201d \uba54\ub274\uac00 \uc788\uc5b4 \uc774\uac83\uc744 \uc774\uc6a9\ud574\ub3c4 \ub429\ub2c8\ub2e4. \uc11c\ube44\uc2a4 \uad00\ub9ac\uc5d0 restart\uac00 \uc5c6\uc73c\ub2c8 \uc544\ub798\uc640 \uac19\uc774 \uac04\ub2e8\ud558\uac8c restart.bat \ud30c\uc77c\uc744 \ub9cc\ub4e4\uc5b4 \uc2e4\ud589\uc2dc\ud0ac \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>C:WINDOWSsystem32sc.exe stop \"Mongoose 2.3\"\nC:WINDOWSsystem32sc.exe start \"Mongoose 2.3\"<\/pre>\n<p><strong>ACL \uc635\uc158\uc744 \uc774\uc6a9\ud55c \uc811\uadfc \uc81c\uc5b4<\/strong><\/p>\n<p>ACL \uc635\uc158\uc744 \uc774\uc6a9\ud574 \uc811\uadfc \uac00\ub2a5\ud55c IP\ub97c \uc124\uc815\ud574 \uc904\uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. mongoose \uba54\ub274\uc5bc\uc5d0 \uc788\ub294 \uc608\uc81c\ub97c \ubcf4\uba74 \u201cmongoose -admin_uri \/ctl -protect \/ctl=\/tmp\/passwords.txt\u201d \ub77c\uace0 mongoose\ub97c \uc2e4\ud589\ud558\uba74 \u201c\/ctl\u201d\uc774\ub77c\ub294 \uc5b4\ub4dc\ubbfc URI\ub97c \uc124\uc815\ud558\uac8c \ub418\uace0 \u201c\/tmp\/passwords.txt\u201d \ud30c\uc77c\uc5d0 \ub4f1\ub85d\ub41c \uc720\uc800\ub4e4\ub9cc \uc811\uadfc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>\uc0ac\uc6a9 \uc911 \ubb38\uc81c\uc810<\/strong><\/p>\n<p>\ub2e8\uc810\uc73c\ub85c\ub294 \ud55c\uae00 \ub514\ub799\ud1a0\ub9ac\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uadf8\ub098\ub9c8 \ub2e4\ud589\uc778\uac83\uc740 \ud30c\uc77c \uc774\ub984\uc5d0 \ud55c\uae00\uc744 \uc4f0\ub294 \uac83\uc740 \uc0c1\uad00 \uc5c6\ub354\uad70\uc694. \ud30c\uc77c \uacf5\uc720\uc5d0 \uc788\uc5b4\uc11c \ud55c\uae00 \ub514\ub799\ud1a0\ub9ac \uc9c0\uc6d0\uc774 \uc54a\ub418\ub294 \uac83\uc740 \ud070 \ub2e8\uc810\uc778\uac83 \uac19\uc2b5\ub2c8\ub2e4. \uc624\ud508 \uc18c\uc2a4\uc774\ub2c8 \uc5b4\ub518\uac00\uc5d0 \uc77c\ubcf8\uc5b4 \uc9c0\uc6d0\uc774\ub098 \uc911\uad6d\uc5b4 \uc9c0\uc6d0 \ubc84\uc804\uc774 \uc788\uc73c\uc9c0\ub3c4 \ubaa8\ub974\ub2c8 \ucc3e\uc544 \ubd10\uc57c\uaca0\ub124\uc694.<\/p>\n<p><strong>PHP \uc5f0\uacb0\ud558\uae30<\/strong><\/p>\n<p>Mongoose\ub294 CGI \ubc29\uc2dd\uc73c\ub85c PHP\ub97c \uc0ac\uc6a9 \ud558\uac8c \ub429\ub2c8\ub2e4. \ub300\ubd80\ubd84 \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294 apache + php\uc758 \uacbd\uc6b0 \uc544\ud30c\uce58\uc758 \ubaa8\ub4c8 \ud615\uc2dd\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\ub77c Apache\uc640\ub294 \uc791\ub3d9 \ubc29\uc2dd\uc774 \ub2e4\ub985\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ub300\ubd80\ubd84\uc740 \uadf8\ub0e5 \uc0ac\uc6a9\ud574\ub3c4 \ubb34\ub9ac\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<p>php\ub97c \uc5f0\uacb0 \ud558\ub294 \ubc29\ubc95\uc5d0\uc11c \uac00\uc7a5 \uc26c\uc6b4 \ubc29\ubc95\uc740 mongoose.conf \ud30c\uc77c\uc5d0 \uc544\ub798\uc640 \uac19\uc774 php-cgi.exe \ud30c\uc77c\uc744 \ub4f1\ub85d\uc2dc\ucf1c \uc8fc\ub294 \uac81\ub2c8\ub2e4.<\/p>\n<pre>cgi_interp     C:php-5.2.8-Win32php-cgi.exe -c C:php-5.2.8-Win32php.ini-recommended<\/pre>\n<p>-c \uc635\uc158\uc740 php \ud658\uacbd \uc124\uc815 \ud30c\uc77c\uc758 \uc704\uce58\ub97c \uc9c0\uc815\ud574 \uc8fc\ub294 \uac83\uc785\ub2c8\ub2e4. Mongoose\ub294 CGI Script\ub85c perl\uacfc php\ub97c \uae30\ubcf8\uc73c\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc815\ud655\ud788 \uc774\uc57c\uae30 \ud558\uba74 cgi_ext \uc635\uc158\uc73c\ub85c CGI Script \ud655\uc7a5\uc790\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\ub294\ub370 \uae30\ubcf8\uac12\uc774 cgi, pl, php \uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c PHP?\uc758 \uacbd\uc6b0 cgi_interp \uc635\uc158\ub9cc \ub4f1\ub85d\ud558\uba74 \ubaa8\ub4e0 php \ud30c\uc77c\uc774 \uc815\uc0c1 \uc791\ub3d9\ud558\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<p>mongoose.conf \ud30c\uc77c\uc744 \uc218\uc815\ud588\uc73c\uba74 \ud56d\uc0c1 \uc11c\ube44\uc2a4\ub97c \uc7ac\uc2dc\uc791 \ud574\uc918\uc57c \ud569\ub2c8\ub2e4. \uc774\uac74 \uc544\ud30c\uce58 restart\uc640 \uac19\uc740 \uc758\ubbf8\uc785\ub2c8\ub2e4.<\/p>\n<p>\uac04\ub2e8\ud558\uac8c \u201cphpinfo();\u201d\ub97c \uc2e4\ud589\ud558\ub294 \ud30c\uc77c\uc744 \ub9cc\ub4e4\uc5b4 \uc800\uc7a5\ud558\uace0 \ube0c\ub77c\uc6b0\uc800\ub85c \ud655\uc778\ud558\uba74 php \uc815\ubcf4\uac00 \ud45c\uc2dc\ub418\ub294 \uac83\uc744 \ubcf4\uc2e4 \uc218 \uc788\uc744\uac81\ub2c8\ub2e4. \uc774\uc81c CGI \ubc29\uc2dd\uc73c\ub85c \uc791\ub3d9\ud558\ub294 PHP \uc5f0\uacb0\uc774 \uc644\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>CGI Script\uc5d0 \ub300\ud574 \uc7ac\ubbf8\uc788\ub294 \uc124\uc815 \ubc29\ubc95\uc911\uc5d0\uc11c \ud30c\uc77c\uc758 \uccab\ubc88\uc9f8 \ub77c\uc778\uc5d0 #!c:fullpathtocgi_interpreter \uc640?\uac19\uc774 cgi_interpreter \ub97c \uc9c0\uc815\ud574 \uc8fc\ub294 \ubc29\uc2dd\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \ub2e4\ub978 CGI Interpreter\ub85c CGI Script\ub97c \uc2e4\ud589\ud558\uac8c\ub3c4 \ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<p><strong>Dokuwiki \uc124\uce58 \ud6c4 \uc2e4\ud589<\/strong><\/p>\n<p>dokuwiki\ub97c \uc124\uce58\ud574 \uc0ac\uc6a9\ud574 \ubcf8 \uacb0\uacfc CGI \ubc29\uc2dd\uc774\ub77c \ucd08\uae30 \uc2e4\ud589\uc2dc \uc57d\uac04 \ub290\ub9b0\uac83 \uac19\uc740 \ub290\ub08c\uc744 \ubc1b\uc558\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc124\uce58\ud55c PC\uac00 \uc880 \uaf2c\uc9c4\uac83\uc744 \uac10\uc548\ud55c\ub2e4\uba74 \uc131\ub2a5\uc774 \uc88b\uc740 PC\uc5d0\uc11c\ub294 \uad38\ucc2e\uc744\uac83 \uac19\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc0ac\uc6a9 \ubaa9\uc801\uc774 \uac15\ub825\ud55c \uc6f9\uc11c\ubc84\uc5d0\uc11c \ub3cc\ub9ac\ub294 \uc6f9\uc11c\ube44\uc2a4\uac00 \uc544\ub2c8\ub77c \uc778\ud2b8\ub77c\ub137\uc73c\ub85c\ub098 \uc0ac\uc6a9\ud560 \ubaa9\uc801\uc73c\ub85c \uc120\ud0dd\ud558\ub294 \uac83\uc774\uae30 \ub54c\ubb38\uc5d0 \ucda9\ubd84\ud788 \ub9cc\uc871\ud560\ub9cc \ud569\ub2c8\ub2e4. \uac00\uc7a5 \ub9d8\uc5d0 \ub4dc\ub294 \uac83\uc740 \uc708\ub3c4\uc6b0 \uc791\uc5c5 \uad00\ub9ac\uc790\uc5d0 \ud45c\uc2dc\ub418\ub294 mongoose.exe\uc758 \u201c4,312 KB\u201d \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc785\ub2c8\ub2e4. \uc6f9\uc11c\ubc84 \ud558\ub098\uc5d0 4MB \uc815\ub3c4\uba74 \uc544\uc8fc \ub9e4\ub825\uc801\uc785\ub2c8\ub2e4. \uc2e4\ud589 \uc18d\ub3c4\ub3c4 \uc0c1\ub2f9\ud788 \ube60\ub978\uac83 \uac19\uc2b5\ub2c8\ub2e4..<\/p>\n<p><strong>\uacb0\ub860<\/strong><\/p>\n<p>\uac04\ub2e8\ud558\uac8c \uc6f9\uc11c\ubc84\ub97c \uc0ac\uc6a9\ud558\uae38 \uc6d0\ud55c\ub2e4\uba74 \uc544\ud30c\uce58 \ubcf4\ub2e4\ub294 Mongoose\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\uc744 \uac83 \uac19\ub2e4. \ubb34\uac81\uace0 \ubcf5\uc7a1\ud558\uace0 \uae30\ub2a5\ub3c4 \ub9ce\uace0 \ud30c\uc77c\ub3c4 \ub9ce\uc740 Apache \ubcf4\ub2e4\ub294 \uac04\ub2e8\ud55c Mongoose\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc6f9\uc11c\ubc84\ub97c \ub3cc\ub9ac\ub294 \uac83\uc774 \ud6e8\uc52c\ub354 \uacbd\uc81c\uc801\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mongoose\ub77c\uace0 \uc544\uc2ed\ub2c8\uae4c? Mongoose\ub294 Windows\ub098 Unix\uc5d0\uc11c \uc791\ub3d9\ub418\ub294 \uc0ac\uc6a9\ud558\uae30 \uc26c\uc6b4 \uc6f9\uc11c\ubc84 \uc785\ub2c8\ub2e4. Mongoose\ub294 \uac04\ub2e8\ud558\uace0 \uae54\ub054\ud55c API\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc6f9 \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc790\ub4e4, \uc784\ubca0\ub514\ub4dc \uc2dc\uc2a4\ud15c \uac1c\ubc1c\uc790\ub4e4, \uadf8\ub9ac\uace0 \ud30c\uc77c \uacf5\uc720\ub97c \ube68\ub9ac \uad6c\ucd95\ud558\uace0 \uc2f6\uc740 \uc0ac\ub78c\ub4e4\uc774 \uc0ac\uc6a9\ud558\uc2dc\uba74 \uc88b\uc2b5\ub2c8\ub2e4.&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/233"}],"collection":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=233"}],"version-history":[{"count":0,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/233\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}