faq.html 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. {
  2. title: "GoAhead FAQ",
  3. crumbs: [
  4. { 'Getting Started': '../start/' },
  5. ],
  6. }
  7. <h1>GoAhead&trade; FAQ</h1>
  8. <p>If you don't find the answers you need here, please consult the <a href="../developers/project.html">Project Resources</a>
  9. and perhaps submit an issue/bug request on the <a href="https://github.com/embedthis/goahead/issues">GitHub repository</a>.</p>
  10. <a id="questions"></a>
  11. <div class="questions">
  12. <h3>General Questions</h3>
  13. <ul>
  14. <li><a href="#history">Why is Embedthis Software supporting and distributing the GoAhead WebServer?</a></li>
  15. <li><a href="#compare">How does the GoAhead WebServer compare with Appweb?</a></li>
  16. <li><a href="#runTimeModules">Can I disable features to minimize memory footprint at run-time?</a></li>
  17. <li><a href="#upload">How can I upload large files?</a></li>
  18. </ul>
  19. <h3>Building Questions</h3>
  20. <ul>
  21. <li><a href="#disableFeatures">When I build the source, can I disable features at compile
  22. time?</a></li>
  23. </ul>
  24. <h3>Diagnostic Questions</h3>
  25. <ul>
  26. <li><a href="#trace">How can I trouble-shoot with trace?</a></li>
  27. </ul>
  28. <h3>Embedded Questions</h3>
  29. <ul>
  30. <li><a href="#minimalFootprint">How small can I make GoAhead?</a></li>
  31. <li><a href="#cross">How can I cross compile?</a></li>
  32. </ul>
  33. <a id="answers"></a>
  34. <div class="answers">
  35. <h2>Answers</h2>
  36. <p class="question"><a id="history"></a>Why is Embedthis Software supporting and distributing
  37. the GoAhead WebServer?</p>
  38. <div class="answer">
  39. The GoAhead WebServer was originally written by Michael O'Brien, CEO of Embedthis and it remains a very
  40. popular to this day. With the acquisition of GoAhead by Oracle, Oracle asked Embedthis to support existing
  41. GoAhead WebServer customers and to offer commercial licenses for the GoAhead WebServer.
  42. </div>
  43. <a id="compare"></a>
  44. <p class="question">How does the GoAhead WebServer compare with Appweb?</p>
  45. <div class="answer">
  46. <p>The GoAhead WebServer is a simple, compact web server that has been widely ported to many embedded
  47. operating systems. Appweb is faster and more powerful &mdash; but requires more memory. If you need a very
  48. simple, low end web server and have little memory available, the GoAhead WebServer is ideal. If you need
  49. higher performance and extended security, then Appweb is the right choice.</p>
  50. </div>
  51. <a id="runTimeModules"></a>
  52. <p class="question">Can I disable features to minimize memory footprint at run-time?</p>
  53. <div class="answer">
  54. <p>Yes. GoAhead has build-time configuration settings to select required features and minimize
  55. memory footprint. See <a href="source.html">Building from Source</a> for details of
  56. the configuration options.</p>
  57. </div>
  58. <p class="question"><a id="upload"></a>How can I upload large files?</p>
  59. <div class="answer">
  60. <p>You need to increase the LimitRequestBody limit in the goahead.conf file. This imposes a maximum
  61. upload file size. Some samples have a MAX_FILE_SIZE input field in the HTML form. This however, is
  62. just a hint to the browser, and is only processed by some browsers.</p>
  63. </div>
  64. <p class="question"><a id="disableFeatures"></a>When I build from the source, can I
  65. disable features at compile time?</p>
  66. <div class="answer">
  67. <p>Yes. When GoAhead is built from source, a single bld.h header controls exactly what features and
  68. modules are built into the server. For example, if you don't require SSL support,
  69. and you wish to minimize memory footprint, you can run:</p>
  70. <code>./configure --without ssl</code>
  71. </div><a id="trace"></a>
  72. <p class="question">How can I trouble-shoot with trace?</p>
  73. <div class="answer">
  74. <p>Run goahead or winGoAhead with the logging switch "-l". The logging switch takes the following
  75. parameters:</p>
  76. <code>goahead -l logName[:logLevel][.maxSize]</code>
  77. <p>Where logLevel is a number between 0 and 9. Zero is the least verbose. To debug HTTP requests, a
  78. level of 6 provides the detail of all the request / response exchanges. MaxSize is the maximum size of
  79. the log file in MB. When the maximum size is exceeded, the log file will be rotated to logName.old and
  80. a new log file will be started.</p>
  81. </div>
  82. <p class="question"><a id="minimalFootprint"></a>How small can I make GoAhead?</p>
  83. <div class="answer">
  84. <p>GoAhead 3 has about 115K of code. For a minimal footprint on GoAhead, use:</p>
  85. <code>./configure --without all --set cgi=false --set javascript=false</code>
  86. <p>This will disable most features including CGI and Javascript but still provide a running web server.
  87. <p>Things to consider when building small:</p>
  88. <ul>
  89. <li>Disable all possible features. In particular, disable the CGI and Javascript handlers</li>
  90. <li>Don't build DEBUG. Use: <em>./configure -release</em></li>
  91. <li>Use a small C-Library such as uClibc on embedded Linux systems</li>
  92. </ul>
  93. </div>
  94. <p class="question"><a id="cross"></a>How can I cross compile?</p>
  95. <div class="answer">
  96. <p>The GoAhead configure command has switches to specify the <b>build</b> system and the target system
  97. that will <b>host</b> GoAhead. For example:</p>
  98. <code>./configure --platform vxworks-arm</code>
  99. <p>When cross compiling, you also need to tell configure about your cross-compilation tool chain. This
  100. means the names of your compiler, library archiver, and other utilities and flags. The configure program
  101. listens to the settings of the AR, CC, NM, RANLIB, STRIP, CFLAGS, IFLAGS and LDFLAGS environment
  102. variables and will pass their values into the build system. These will be used to define the
  103. cross-compilation tool chain. You can also specify an alternate build tool chain by using the same
  104. variables but with a BUILD_ prefix. For example:</p>
  105. <code>DIR=/path/to/cross-tools ; \
  106. AR=$DIR/bin/ar.exe \
  107. CC=$DIR/bin/cc.exe \
  108. LD=$DIR/bin/cc.exe \
  109. NM=$DIR/nm.exe \
  110. RANLIB=$DIR/ranlib.exe \
  111. STRIP=$DIR/strip.exe \
  112. CFLAGS="-I$DIR/include \
  113. ./configure --debug --platform linux-arm</code>
  114. <p>For more details, please read:
  115. <a href="https://embedthis.com/makeme/doc/users/cross.html">Cross-Compiling</a> in the MakeMe
  116. online documentation.</p>
  117. </div>
  118. </div>
  119. <h2>Need more help?</h2>
  120. <p>If you have any further questions, please consult the <a href="../developers/project.html">Project Resources</a>
  121. and perhaps submit an issue/bug request on the <a href="https://github.com/embedthis/goahead/issues">GitHub repository</a>.</p>