[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#257945: davs...



On Wednesday 27 January 2010, Andreas J. Guelzow wrote:
> The php5.conf file attaches a mime-type via a FileMatch. That
>  appears to override ForceType.
> 
> In php4.conf the extension was mapped to a type. That works fine
>  with ForceType.
> 
> So by usingthe phpo4 version of attaching the extensions to the
> mime-type/handler for php5, ForceType works again in the dav setup
>  and it is trivial to have php files served via dav asif they were
>  text.
> 
> See the "complex configuration" section of
> http://httpd.apache.org/docs/2.2/mod/mod_dav.html

This is a mess. IMHO it is mod_dav's job to ensure that the file 
contents is sent and not the script output. But it doesn't do that.


So when does mod_php execute a script?

Case 1: the handler is set to application/x-httpd-php

This is done be the current mod_php5 default config in php5.conf. You 
can unset the handler with:

   SetHandler none


Case 2: the handler is unset and the content type is application/x-
httpd-php

This is done by the entry

    application/x-httpd-php                         phtml pht php

in /etc/mime.types (or by the old default config in 
php4.conf/php5.conf before php5 5.2.11.dfsg.1-2).

There are several ways to undo this:
- use ForceType
- remove the line from /etc/mime.types
- since apache2 2.2.14-2, you can also use
    RemoveType phtml pht php


This gives you a lot of ways how to create a working configuration.


The one corresponding to your previous config would be

<Location /dav>
  Dav on
  SetHandler none
  ForceType text/plain
</Location>


The most sane one for apache2 >= 2.2.14-2 would be

RemoveType phtml pht php phps
<Location /dav>
  Dav on
  SetHandler none
</Location>


A rather curious (but definitely not recommended) way is

<Location /dav>
  Dav on
  SetHandler mod-dav-is-strange
</Location>

If the handler is set, the content-type is not relevant. And if the 
set handler does not exist, the request is handled by the default 
handler (at least in this case). (The fixed handler also means that 
mod_autoindex won't handle directories.)


I will suggest upstream that mod_dav is changed to do the right thing 
without additional configuration.

Cheers,
Stefan



Reply to: