faq.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>GoAhead FAQ</title>
  5. <!-- Copyright Embedthis Software. All Rights Reserved. -->
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <meta charset="utf-8" />
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  10. <meta name="description" content="Simple, fast, secure embedded web server" />
  11. <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700|Open+Sans:300italic,400,300,700'
  12. rel='stylesheet' type='text/css'>
  13. <link href='https://fonts.googleapis.com/css?family=Julius+Sans+One' rel='stylesheet' type='text/css'>
  14. <link href="../images/favicon.ico" rel="shortcut icon" />
  15. <link href="../lib/semantic-ui/semantic.min.css" rel="stylesheet" type="text/css" />
  16. <link href="../css/all.min.css" rel="stylesheet" type="text/css" />
  17. <link href="../css/api.min.css" rel="stylesheet" type="text/css" />
  18. </head>
  19. <body class="show-sidebar">
  20. <div class="sidebar">
  21. <div class="ui large left vertical inverted labeled menu">
  22. <div class="item">
  23. <a href="../" class="logo">GoAhead Docs</a>
  24. </div>
  25. <div class="item">
  26. <a href="../">
  27. <b>General</b>
  28. </a>
  29. <div class="menu">
  30. <a class="item" href="../">GoAhead Overview</a>
  31. <a class="item" href="../users/features.html">GoAhead Features</a>
  32. <a class="item" href="https://embedthis.com/goahead/download.html">Download</a>
  33. <a class="item" href="../licensing/">Licensing</a>
  34. </div>
  35. </div>
  36. <div class="item">
  37. <a href="../start/">
  38. <b>Getting Started</b>
  39. </a>
  40. <div class="menu">
  41. <a class="item" href="../start/quick.html">Quick Start</a>
  42. <a class="item" href="../start/installing.html">Installing GoAhead</a>
  43. <a class="item" href="../start/running.html">Running GoAhead</a>
  44. <a class="item" href="../start/releaseNotes.html">Release Notes</a>
  45. <a class="item" href="../start/faq.html">GoAhead FAQ</a>
  46. <a class="item" href="../start/source.html">Building from Source</a>
  47. </div>
  48. </div>
  49. <div class="item">
  50. <a href="../users/"><b>User's Guide</b></a>
  51. <div class="menu">
  52. <a class="item" href="../users/ports.html">Ports and Binding</a>
  53. <a class="item" href="../users/routing.html">Routing Requests</a>
  54. <a class="item" href="../users/handlers.html">Request Handlers</a>
  55. <a class="item" href="../users/js.html">Embedded Javascript</a>
  56. <a class="item" href="../users/jst.html">Javascript Templates</a>
  57. <a class="item" href="../users/goactions.html">GoActions</a>
  58. <a class="item" href="../users/cgi.html">CGI Programs</a>
  59. <a class="item" href="../users/authentication.html">User Authentication</a>
  60. <a class="item" href="../users/logFiles.html">Log Files</a>
  61. <a class="item" href="../users/ssl.html">Secure Sockets (SSL)</a>
  62. <a class="item" href="../users/security.html">Security Considerations</a>
  63. <a class="item" href="../users/man.html">Man Pages</a>
  64. </div>
  65. </div>
  66. <div class="item">
  67. <a href="../developers/">Developer's Guide</a>
  68. <div class="menu">
  69. <a class="item" href="../developers/embedding.html">Embedding GoAhead</a>
  70. <a class="item" href="../developers/handlers.html">Creating GoAhead Handlers</a>
  71. <a class="item" href="../developers/authstore.html">Creating Password Verifiers</a>
  72. <a class="item" href="../developers/migrating.html">Migrating to GoAhead 3</a>
  73. <a class="item" href="../developers/rom.html">Serving Pages from ROM</a>
  74. </div>
  75. </div>
  76. <div class="item">
  77. <a href="../ref/">Reference Guide</a>
  78. <div class="menu">
  79. <a class="item" href="../ref/compatibility.html">Compatibility</a>
  80. <a class="item" href="../ref/native.html">API Library</a>
  81. <a class="item" href="../ref/architecture.html">GoAhead Architecture</a>
  82. <a class="item" href="../standards/http.html">HTTP References</a>
  83. </div>
  84. </div>
  85. <div class="item">
  86. <a href="../developers/project.html">Project Resources</a>
  87. <div class="menu">
  88. <a class="item" href="http://goo.gl/IGbiio">Official GoAhead News</a>
  89. <a class="item" href="https://embedthis.com/goahead/">GoAhead Web Site</a>
  90. <a class="item" href="https://github.com/embedthis/goahead">Source Code Repository</a>
  91. <a class="item" href="https://github.com/embedthis/goahead/issues/99">GoAhead Security Alerts</a>
  92. <a class="item" href="https://github.com/embedthis/goahead/issues">Project Issue Database</a>
  93. <a class="item" href="https://github.com/embedthis/goahead/releases">Change Log</a>
  94. <a class="item" href="https://github.com/embedthis/goahead/milestones">Roadmap</a>
  95. <a class="item" href="https://embedthis.com/developers/contributors.html">Contributors Agreement</a>
  96. </div>
  97. </div>
  98. <div class="item">
  99. <b>Links</b>
  100. <div class="menu">
  101. <a class="item" href="https://embedthis.com/">Embedthis Web Site</a>
  102. <a class="item" href="https://embedthis.com/blog/">Embedthis Blog</a>
  103. <a class="item" href="http://twitter.com/embedthat">Twitter</a>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="ui inverted masthead">
  109. <div class="ui fixed inverted menu">
  110. <div class="ui sidebar-launch button">
  111. <i class="icon list layout"></i>
  112. </div>
  113. <div class="right menu">
  114. <a class="item" href="https://embedthis.com/">Embedthis</a>
  115. <a class="item" href="https://embedthis.com/goahead/">GoAhead Site</a>
  116. <span class="desktop-only">
  117. <a class="item" href="http://goo.gl/9bL9rM">GoAhead News</a>
  118. <a class="item" href="https://github.com/embedthis/goahead">Repository</a>
  119. <a class="item" href="https://embedthis.com/blog/">Blog</a>
  120. <a class="item" href="https://twitter.com/embedthat">Twitter</a>
  121. </span>
  122. </div>
  123. </div>
  124. <div class="ui breadcrumb">
  125. <a class="section" href="../">Home</a>
  126. <div class="divider">/</div>
  127. <a class="section" href="../start/">
  128. Getting Started
  129. </a>
  130. <div class="divider">/</div>
  131. <a class="active section" href="faq.html">GoAhead FAQ</a>
  132. </div>
  133. <iframe class="version desktop-only" src="../version.html"></iframe>
  134. </div>
  135. <div class="content">
  136. <h1>GoAhead&trade; FAQ</h1>
  137. <p>If you don't find the answers you need here, please consult the <a href="../developers/project.html">Project Resources</a>
  138. and perhaps submit an issue/bug request on the <a href="https://github.com/embedthis/goahead/issues">GitHub repository</a>.</p>
  139. <a id="questions"></a>
  140. <div class="questions">
  141. <h3>General Questions</h3>
  142. <ul>
  143. <li><a href="#history">Why is Embedthis Software supporting and distributing the GoAhead WebServer?</a></li>
  144. <li><a href="#compare">How does the GoAhead WebServer compare with Appweb?</a></li>
  145. <li><a href="#runTimeModules">Can I disable features to minimize memory footprint at run-time?</a></li>
  146. <li><a href="#upload">How can I upload large files?</a></li>
  147. </ul>
  148. <h3>Building Questions</h3>
  149. <ul>
  150. <li><a href="#disableFeatures">When I build the source, can I disable features at compile
  151. time?</a></li>
  152. </ul>
  153. <h3>Diagnostic Questions</h3>
  154. <ul>
  155. <li><a href="#trace">How can I trouble-shoot with trace?</a></li>
  156. </ul>
  157. <h3>Embedded Questions</h3>
  158. <ul>
  159. <li><a href="#minimalFootprint">How small can I make GoAhead?</a></li>
  160. <li><a href="#cross">How can I cross compile?</a></li>
  161. </ul>
  162. <a id="answers"></a>
  163. <div class="answers">
  164. <h2>Answers</h2>
  165. <p class="question"><a id="history"></a>Why is Embedthis Software supporting and distributing
  166. the GoAhead WebServer?</p>
  167. <div class="answer">
  168. The GoAhead WebServer was originally written by Michael O'Brien, CEO of Embedthis and it remains a very
  169. popular to this day. With the acquisition of GoAhead by Oracle, Oracle asked Embedthis to support existing
  170. GoAhead WebServer customers and to offer commercial licenses for the GoAhead WebServer.
  171. </div>
  172. <a id="compare"></a>
  173. <p class="question">How does the GoAhead WebServer compare with Appweb?</p>
  174. <div class="answer">
  175. <p>The GoAhead WebServer is a simple, compact web server that has been widely ported to many embedded
  176. operating systems. Appweb is faster and more powerful &mdash; but requires more memory. If you need a very
  177. simple, low end web server and have little memory available, the GoAhead WebServer is ideal. If you need
  178. higher performance and extended security, then Appweb is the right choice.</p>
  179. </div>
  180. <a id="runTimeModules"></a>
  181. <p class="question">Can I disable features to minimize memory footprint at run-time?</p>
  182. <div class="answer">
  183. <p>Yes. GoAhead has build-time configuration settings to select required features and minimize
  184. memory footprint. See <a href="source.html">Building from Source</a> for details of
  185. the configuration options.</p>
  186. </div>
  187. <p class="question"><a id="upload"></a>How can I upload large files?</p>
  188. <div class="answer">
  189. <p>You need to increase the LimitRequestBody limit in the goahead.conf file. This imposes a maximum
  190. upload file size. Some samples have a MAX_FILE_SIZE input field in the HTML form. This however, is
  191. just a hint to the browser, and is only processed by some browsers.</p>
  192. </div>
  193. <p class="question"><a id="disableFeatures"></a>When I build from the source, can I
  194. disable features at compile time?</p>
  195. <div class="answer">
  196. <p>Yes. When GoAhead is built from source, a single bld.h header controls exactly what features and
  197. modules are built into the server. For example, if you don't require SSL support,
  198. and you wish to minimize memory footprint, you can run:</p>
  199. <code>./configure --without ssl</code>
  200. </div><a id="trace"></a>
  201. <p class="question">How can I trouble-shoot with trace?</p>
  202. <div class="answer">
  203. <p>Run goahead or winGoAhead with the logging switch "-l". The logging switch takes the following
  204. parameters:</p>
  205. <code>goahead -l logName[:logLevel][.maxSize]</code>
  206. <p>Where logLevel is a number between 0 and 9. Zero is the least verbose. To debug HTTP requests, a
  207. level of 6 provides the detail of all the request / response exchanges. MaxSize is the maximum size of
  208. the log file in MB. When the maximum size is exceeded, the log file will be rotated to logName.old and
  209. a new log file will be started.</p>
  210. </div>
  211. <p class="question"><a id="minimalFootprint"></a>How small can I make GoAhead?</p>
  212. <div class="answer">
  213. <p>GoAhead 3 has about 115K of code. For a minimal footprint on GoAhead, use:</p>
  214. <code>./configure --without all --set cgi=false --set javascript=false</code>
  215. <p>This will disable most features including CGI and Javascript but still provide a running web server.
  216. <p>Things to consider when building small:</p>
  217. <ul>
  218. <li>Disable all possible features. In particular, disable the CGI and Javascript handlers</li>
  219. <li>Don't build DEBUG. Use: <em>./configure -release</em></li>
  220. <li>Use a small C-Library such as uClibc on embedded Linux systems</li>
  221. </ul>
  222. </div>
  223. <p class="question"><a id="cross"></a>How can I cross compile?</p>
  224. <div class="answer">
  225. <p>The GoAhead configure command has switches to specify the <b>build</b> system and the target system
  226. that will <b>host</b> GoAhead. For example:</p>
  227. <code>./configure --platform vxworks-arm</code>
  228. <p>When cross compiling, you also need to tell configure about your cross-compilation tool chain. This
  229. means the names of your compiler, library archiver, and other utilities and flags. The configure program
  230. listens to the settings of the AR, CC, NM, RANLIB, STRIP, CFLAGS, IFLAGS and LDFLAGS environment
  231. variables and will pass their values into the build system. These will be used to define the
  232. cross-compilation tool chain. You can also specify an alternate build tool chain by using the same
  233. variables but with a BUILD_ prefix. For example:</p>
  234. <code>DIR=/path/to/cross-tools ; \
  235. AR=$DIR/bin/ar.exe \
  236. CC=$DIR/bin/cc.exe \
  237. LD=$DIR/bin/cc.exe \
  238. NM=$DIR/nm.exe \
  239. RANLIB=$DIR/ranlib.exe \
  240. STRIP=$DIR/strip.exe \
  241. CFLAGS="-I$DIR/include \
  242. ./configure --debug --platform linux-arm</code>
  243. <p>For more details, please read:
  244. <a href="https://embedthis.com/makeme/doc/users/cross.html">Cross-Compiling</a> in the MakeMe
  245. online documentation.</p>
  246. </div>
  247. </div>
  248. <h2>Need more help?</h2>
  249. <p>If you have any further questions, please consult the <a href="../developers/project.html">Project Resources</a>
  250. and perhaps submit an issue/bug request on the <a href="https://github.com/embedthis/goahead/issues">GitHub repository</a>.</p>
  251. </div>
  252. <div class="terms ui basic center aligned segment">
  253. <p>&copy; Embedthis Software, 2003-2015. All rights reserved.</p>
  254. </div>
  255. <script src="../lib/jquery/jquery.min.js"></script>
  256. <script src="../lib/semantic-ui/semantic.min.js"></script>
  257. <script src="../scripts/sidebar.min.js"></script>
  258. </body>
  259. </html>