<?xml version="1.0" encoding="iso-2022-jp" ?>
<!DOCTYPE faq SYSTEM "../style/faq.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- English Revision: 151408:279314 (outdated) -->

<!--
 Copyright 2004-2005 The Apache Software Foundation or its licensors,
                     as applicable.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<faq metafile="error.xml.meta">
<parentdocument href="./">FAQ</parentdocument>

<title>$B%(%i!<%a%C%;!<%8(B $B!=(B $B$h$/$"$k<ALd(B</title>
<description>$B$3$N%(%i!<%a%C%;!<%8$N0UL#$O(B?</description>

<section id="error"><title>$B%(%i!<%a%C%;!<%8(B</title>
    <ul>
    <li><a href="#error.sendfile">Invalid argument:
    core_output_filter: writing data to the network</a></li>
    <li><a href="#error.acceptex">AcceptEx failed</a></li>
    <li><a href="#error.scriptheaders">Premature end of script 
    headers</a></li>
    </ul>

    <section id="error.sendfile"><title>Invalid argument:
    core_output_filter: writing data to the network</title>

    <p>($BLuCm(B: $BL58z$J0z?t(B: core_output_filter: $B%M%C%H%o!<%/$X$N%G!<%?$N(B
    $B=q$-9~$_(B)</p>

    <p>Apache $B$O1~Ez$NJVAw$rB.$/$9$k$?$a$K!"(B<code>sendfile</code> $B%7%9%F%`(B
    $B%3!<%k$,;HMQ2DG=$J%W%i%C%H%U%)!<%`$G$O$=$N%7%9%F%`%3!<%k$r;HMQ$7$^$9!#(B
    $B$H$3$m$,!"ET9g$N0-$$$3$H$K!"(B<code>sendfile</code> $B$,@5$7$/F0:n$7$J$$$K$b(B
    $B4X$o$i$:!"(BApache $B$,%3%s%Q%$%k;~$KB8:_$r8!CN$7$F$7$^$&%7%9%F%`$,$"$j$^$9!#(B
    $B$3$l$O!"%M%C%H%o!<%/%U%!%$%k%7%9%F%`$dB>$NHsI8=`$N%U%!%$%k%7%9%F%`$r(B
    $B;HMQ$7$F$$$k$H$-$K0lHV$h$/H/@8$7$^$9!#(B</p>
    
    <p>$B$3$NLdBj$N>I>u$O!">e5-$N%a%C%;!<%8$,%(%i!<%m%0$K=q$+$l$k$3$H$H!"(B
    $B%5%$%:$,%<%m$G$J$$%U%!%$%k$N1~Ez$,%<%m$K$J$k$3$H$G$9!#(B
    $BF0E*$J%3%s%F%s%D$O(B <code>sendfile</code> $B$rMxMQ$7$J$$$?$a!"(B
    $B$3$NLdBj$ODL>o$O@EE*$J%U%!%$%k$G$N$_H/@8$7$^$9!#(B</p>

    <p>$B$3$NLdBj$O!"(B<directive
    module="core">EnableSendfile</directive> $B%G%#%l%/%F%#%V$r;HMQ$7$F!"(B
    $B%5!<%P$N$9$Y$F!"$b$7$/$O0lItJ,$KBP$7$F(B <code>sendfile</code> $B$r(B
    $BL58z$K$9$k$@$1$G=$@5$G$-$^$9!#F1MM$NLdBj$r2r7h$9$k$?$a$N(B
    <directive module="core">EnableMMAP</directive> $B%G%#%l%/%F%#%V$b(B
    $B;2>H$7$F$/$@$5$$!#(B</p>

    </section>

    <section id="error.acceptex"><title>AcceptEx Failed</title>

    <p>($BLuCm(B: AcceptEx $B<:GT(B)</p>

    <p>Win32 $B$G$N(B <code>AcceptEx</code> $B%7%9%F%`%3!<%k$K4X78$9$k%(%i!<(B
    $B%a%C%;!<%8$r<u$1<h$C$?$H$-$O!"(B<directive module="mpm_winnt"
    >Win32DisableAcceptEx</directive> $B$r;2>H$7$F$/$@$5$$!#(B</p>
    </section>


    <section id="error.scriptheaders"><title>Premature end of script 
    headers</title>

    <p>($BLuCm(B: $B%9%/%j%W%H%X%C%@$NCfES=*N;(B)</p>

    <p>CGI $B%9%/%j%W%H$N$[$H$s$I$NLdBj$O%(%i!<%m%0$K$3$N%a%C%;!<%8$,=q$+$l!"(B
    $B%V%i%&%6$K$O(B <code>Internal Server Error</code> $B$,Aw$i$l$k$3$H$K$J$j$^$9!#(B
    $B$3$N<o$NLdBj$N%G%P%C%0J}K!$O(B <a href="../howto/cgi.html#troubleshoot">CGI
    $B%A%e!<%H%j%"%k(B</a> $B$G@bL@$5$l$F$$$^$9!#(B</p>
    </section>

</section>

</faq>

