| <!-- 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> |