| <!-- HTML header for doxygen 1.9.1--> | |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| <html xmlns="http://www.w3.org/1999/xhtml"> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |
| <meta http-equiv="X-UA-Compatible" content="IE=9"/> | |
| <meta name="generator" content="Doxygen 1.9.1"/> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> | |
| <title>libapreq2-2.17: FAQ</title> | |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> | |
| <script type="text/javascript" src="jquery.js"></script> | |
| <script type="text/javascript" src="dynsections.js"></script> | |
| <link href="customdoxygen.css" rel="stylesheet" type="text/css" /> | |
| </head> | |
| <body> | |
| <div id="top"><!-- do not remove this div, it is closed by doxygen! --> | |
| <div id="titlearea"> | |
| <table cellspacing="0" cellpadding="0" width="100%"> | |
| <tbody> | |
| <tr style="height: 56px;"> | |
| <!-- | |
| <td id="projectlogo"><img alt="Logo" src="feather.png"/></td> | |
| --> | |
| <!-- | |
| <td id="projectalign" style="padding-left: 0.5em;"> | |
| <div id="projectname">libapreq2 | |
| < !--BEGIN PROJECT_NUMBER-- > <span id="projectnumber">2.17</span>< !--END PROJECT_NUMBER-- > | |
| </div> | |
| < !--BEGIN PROJECT_BRIEF-- ><div id="projectbrief"></div>< !--END PROJECT_BRIEF-- > | |
| </td> | |
| --> | |
| <td> | |
| <div id="page-header"> | |
| <p class="menu"> | |
| <a href="https://www.apache.org/">Apache Software Foundation</a> > | |
| <a href="https://httpd.apache.org">HTTP Server Project</a> > | |
| <a href="https://httpd.apache.org/apreq/">Request Library Subproject</a> | |
| </p> | |
| <p class="apache">Apache HTTP Server Request Library - 2.17</p> | |
| <img alt="" src="feather.png" /> | |
| </div> | |
| </td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| <!-- end header part --> | |
| <!-- Generated by Doxygen 1.9.1 --> | |
| <script type="text/javascript" src="menudata.js"></script> | |
| <script type="text/javascript" src="menu.js"></script> | |
| <script type="text/javascript"> | |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ | |
| $(function() { | |
| initMenu('',false,false,'search.php','Search'); | |
| }); | |
| /* @license-end */</script> | |
| <div id="main-nav"></div> | |
| </div><!-- top --> | |
| <div class="PageDoc"><div class="header"> | |
| <div class="headertitle"> | |
| <div class="title">FAQ </div> </div> | |
| </div><!--header--> | |
| <div class="contents"> | |
| <div class="textblock"> | |
| <ul id="index"> | |
| <li><a href="#Issues-during-installation">Issues during installation.</a></li> | |
| <li><a href="#Using-libapreq2-with-Apache2-and-mod_perl2">Using libapreq2 with Apache2 and mod_perl2.</a> | |
| <ul> | |
| <li><a href="#I-keep-getting-undefined-symbol-errors-whenever-I-use-Apache2::Request-or-APR::Request::Apache2">I keep getting "undefined symbol" errors whenever I use Apache2::Request or APR::Request::Apache2.</a></li> | |
| <li><a href="#When-I-use-Apache2::Request-in-my-output-filter-it-seems-to-lose-the-incoming-POST-variables">When I use Apache2::Request in my output filter, it seems to lose the incoming POST variables.</a></li> | |
| <li><a href="#When-I-try-to-upload-a-file-why-do-I-get-this-error-error-Cant-locate-...-Apache2-Request-upload.al-in-INC">When I try to upload a file, why do I get this error "[error] Can't locate .../Apache2/Request/upload.al in @INC"?</a></li> | |
| </ul> | |
| </li> | |
| <li><a href="#Using-libapreq2-outside-of-Apache">Using libapreq2 outside of Apache.</a></li> | |
| <li><a href="#Contributing-to-apreq-development">Contributing to apreq development.</a> | |
| <ul> | |
| <li><a href="#How-is-the-subversion-repository-managed">How is the subversion repository managed?</a></li> | |
| </ul> | |
| </li> | |
| </ul> | |
| <h1 id="Issues-during-installation">Issues during installation.</h1> | |
| <p>[...]</p> | |
| <h1 id="Using-libapreq2-with-Apache2-and-mod_perl2">Using libapreq2 with Apache2 and mod_perl2.</h1> | |
| <h2 id="I-keep-getting-undefined-symbol-errors-whenever-I-use-Apache2::Request-or-APR::Request::Apache2">I keep getting "undefined symbol" errors whenever I use Apache2::Request or APR::Request::Apache2.</h2> | |
| <p>You need to load mod_apreq2.so at server startup, which grabs all the required symbols at server startup. Be sure your server config contains a line like</p> | |
| <pre><code>LoadModule apreq_module modules/mod_apreq2.so</code></pre> | |
| <h2 id="When-I-use-Apache2::Request-in-my-output-filter-it-seems-to-lose-the-incoming-POST-variables">When I use Apache2::Request in my output filter, it seems to lose the incoming POST variables.</h2> | |
| <p>The problem is likely that the mod_apreq2 filter has not been added to the input filter chain in time to read the POST data.</p> | |
| <p>There are two solutions to this problem:</p> | |
| <pre><code>1) Write a filter init handler for you filter that instantiates an | |
| Apache2::Request object. | |
| https://perl.apache.org/docs/2.0/api/Apache2/Filter.html#C_FilterInitHandler_ | |
| 2) Use .htaccess or your server config to ensure the apreq input filter | |
| is active for this request with "AddInputFilter APREQ" or somesuch.</code></pre> | |
| <p>We recommend using (1), and falling back to (2) until you get (1) working.</p> | |
| <h2 id="When-I-try-to-upload-a-file-why-do-I-get-this-error-error-Cant-locate-...-Apache2-Request-upload.al-in-INC">When I try to upload a file, why do I get this error "[error] Can't locate .../Apache2/Request/upload.al in @INC"?</h2> | |
| <p><i>Apache2::Upload</i> is now a separate module in apreq2, so you need to <code>use Apache2::Upload</code> to load the <code>Apache2::Request::upload</code> function.</p> | |
| <p>This also applies to "Can't locate auto/APR/Request/Param/slurp.al in @INC". This is because <i>Apache2::Upload</i> is implement by wrapping the <i>APR::Request::*</i> packages.</p> | |
| <h1 id="Using-libapreq2-outside-of-Apache">Using libapreq2 outside of Apache.</h1> | |
| <p>[...]</p> | |
| <h1 id="Contributing-to-apreq-development">Contributing to apreq development.</h1> | |
| <h2 id="How-is-the-subversion-repository-managed">How is the subversion repository managed?</h2> | |
| <p>apreq's repository is broken into three subdirectories:</p> | |
| <pre><code>/trunk - the current codebase for active development. | |
| /tags - release snapshots. | |
| /branches - where older releases and experimental development lines live.</code></pre> | |
| <p>apreq follows a Commit-then-Review policy for its entire repository, but being a shared library places certain restrictions on the admissible changes for stable trees. Basically the header files cannot be modified; only new functions and structures may be added to them. Any time that happens, the minor-version needs to be bumped, and the patch-level gets reset to zero. Changes that only modify the library's implementation (.c) files require a bump to the patch-level. On stable trees, this version tracking should happen on each commit, to make auditing easy for other developers without resorting to a draconian Review-then-Commit policy.</p> | |
| </div></div><!-- contents --> | |
| </div><!-- PageDoc --> | |
| <!-- HTML footer for doxygen 1.9.1--> | |
| <!-- start footer part --> | |
| <hr class="footer"/> | |
| <table class="footer"> | |
| <td> | |
| <address class="footer_left"><small> | |
| Copyright © 2003-2022 <a href="https://www.apache.org">The Apache Software Foundation</a>.<br/> | |
| See <a href="apreq_license.html">LICENSE</a>. | |
| </small></address> | |
| </td> | |
| <td> | |
| <address class="footer"><small> | |
| Generated on Sat Sep 3 2022 17:23:06 for libapreq2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 | |
| </small></address> | |
| </td> | |
| </table> | |
| </body> | |
| </html> |