1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
|
mod_mime_xattr 0.4
Copyright 2004-2007 Lennart Poettering <mzzvzrkngge (at) 0pointer
(dot) net>
* [1]License
* [2]News
* [3]Overview
* [4]Current Status
* [5]Documentation
* [6]Requirements
* [7]Installation
* [8]Acknowledgements
* [9]Download
License
Copyright 2004-2007 Lennart Poettering
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
[10]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.
News
Tue Apr 17 2007:
[11]Version 0.4 released, changes include: updated for Apache 2.2; for
compatibility with older Apache versions please use mod_mime_xattr
0.3.
Mon Jan 23 2006:
[12]Version 0.3 released; changes include: ported to Apache 2.0 - For
Apache 1 use versions <= 0.2
Sun Mar 28 2004:
[13]Version 0.2 released; changes include: look for both
user.mime_type and user.mime-type for compliance with XDG
Wed Mar 24 2004:
[14]Version 0.1 released
Overview
mod_mime_xattr is a module for the [15]Apache HTTPD 2.2 which may be
used to set a range of MIME properties of files served from a document
tree with extended attributes (EAs) as supported by the underlying
file system. The current version of mod_mime_xattr has support for
Linux style EAs which are supported by Linux 2.4 with the [16]ACL/EA
patches applied and vanilla Linux 2.6. The following attributes may be
used:
* user.mime_type: set the MIME type of a file explicitly. This
attribute is compatible with the [17]shared MIME database
specification as published by [18]freedesktop.org
* user.charset: set the charset used in a file
* user.mime_encoding: set the MIME encoding of a file (e.g. gzip)
* user.apache_handler: set the apache handler of a file explicitly
Current Status
Version 0.4 is stable and more or less feature complete.
Documentation
Configuration
Enable the module by adding a new LoadModule to the Apache
configuration files:
...
LoadModule mime_xattr_module /usr/lib/apache2/modules/mod_mime_xattr.so
...
When enabled in the Apache configuration files, mod_mime_xattr
introduces two new directory dependent configuration directives:
* XAttrMimeType [On/Off]; Enable or disable the interpretation of
the user.mime_type, user.charset and user.mime_encoding EAs.
* XAttrHandler [On/Off]; Enable or disable the interpretation of the
user.apache_handler EA
A simple example:
...
<Directory /var/www>
XAttrMimeType On
XAttrHandler On
</Directory>
...
In case you want to enable support for extended attributes for the
entire server, use something like this:
...
<Directory />
XAttrMimeType On
</Directory>
...
Usage
You may get/set an extended attribute for a file with the Linux
command line utilities getfattr/setfattr:
setfattr -n "user.mime_type" -v "text/html" foo.file
The file foo.file will be served as HTML now. For more information
consult the concerning man pages.
If used with symbolic links, mod_mime_xattr will first check if an EA
is set for the symlink itself, and second for the file the link points
to. The user.charset EA is only used when the user.mime_type EA is set
as well.
CGI and PHP scripts
You may use the user.apache_handler EA to mark a file as CGI script:
setfattr -n "user.apache_handler" -v "cgi-script" foo.html
This will force the execution of foo.html as CGI program, regardless
of the name of the file which identifies it as an HTML file.
If you have [19]PHP configured in your Apache web server you may mark
a file as PHP script regardless of its name:
setfattr -n "user.mime_type" -v "application/x-httpd-php" bar.html
Think twice before enabling mod_mime_xattr for document trees you do
not trust because a rogue user may mark his files as executable CGI or
PHP scripts with the technique described above.
Requirements
A current release of Apache 2.2 with apxs, the development headers and
libraries installed. You need to install libattr and its development
package.
A port to other EA APIs has not been done yet. It should be fairly
easy to do, however. Feel free to send me patches!
mod_mime_xattr was developed and tested on Debian GNU/Linux "testing"
from January 2006, it should work on most other Linux distributions
since it uses GNU autoconf source code configuration.
Installation
As this package is made with the GNU autotools you should run
./configure inside the distribution directory for configuring the
source tree. After that you should run make for compilation and make
install (as root) for installation of mod_mime_xattr.
Acknowledgements
None so far
Download
The newest release is always available from
[20]http://0pointer.de/lennart/projects/mod_mime_xattr/
The current release is [21]0.4
Get mod_mime_xattr's development sources from the [22]Subversion
[23]repository ([24]viewcvs):
svn checkout svn://svn.0pointer.net/mod_mime_xattr/trunk mod_mime_xattr
If you want to be notified whenever I release a new version of this
software use the subscription feature of [25]Freshmeat.
_________________________________________________________________
Lennart Poettering <mzzvzrkngge (at) 0pointer (dot) net>, April 2007
$Id: README.html.in 34 2007-04-17 12:56:08Z lennart $
References
1. README#license
2. README#news
3. README#overview
4. README#status
5. README#documentation
6. README#requirements
7. README#installation
8. README#acks
9. README#download
10. http://www.apache.org/licenses/LICENSE-2.0
11. http://0pointer.de/lennart/projects/mod_mime_xattr/mod_mime_xattr-0.4.tar.gz
12. http://0pointer.de/lennart/projects/mod_mime_xattr/mod_mime_xattr-0.3.tar.gz
13. http://0pointer.de/lennart/projects/mod_mime_xattr/mod_mime_xattr-0.2.tar.gz
14. http://0pointer.de/lennart/projects/mod_mime_xattr/mod_mime_xattr-0.1.tar.gz
15. http://httpd.apache.org/
16. http://acl.bestbits.at/
17. http://www.freedesktop.org/Standards/shared-mime-info-spec
18. http://www.freedesktop.org/
19. http://www.php.net/
20. http://0pointer.de/lennart/projects/mod_mime_xattr/
21. http://0pointer.de/lennart/projects/mod_mime_xattr/mod_mime_xattr-0.4.tar.gz
22. http://subversion.tigris.org/
23. svn://svn.0pointer.net/mod_mime_xattr
24. http://0pointer.net/cgi-bin/viewcvs.cgi/?root=mod_mime_xattr
25. http://freshmeat.net/projects/mod_mime_xattr/
|