mod_dav
Distributed Authoring and Versioning
(WebDAV) ±â´É
Extension
mod_dav.c
dav_module
ÀÌ ¸ðµâÀº ¾ÆÆÄÄ¡¿¡ WebDAV
('Web-based Distributed Authoring and Versioning') class 1°ú
class 2 ±â´ÉÀ» Ãß°¡ÇÑ´Ù. WebDAV´Â ¿ø°Ý À¥¼¹öÀÇ ÀÚ¿ø°ú
ÄÝ·º¼Ç(collection)À» ÄÝ·º¼ÇÀº ÆÄÀϽýºÅÛÀÇ µð·ºÅ丮¿Í
°°Àº °³³äÀÌ´Ù ¸¸µé°í, ¿Å±â°í, º¹»çÇÏ°í, Áö¿ï
¼ö ÀÖµµ·Ï HTTP ÇÁ·ÎÅäÄÝÀ» È®ÀåÇÑ °ÍÀÌ´Ù.
DavLockDB
LimitXMLRequestBody
WebDAV Á¤º¸
WebDAV »ç¿ëÇϱâ
mod_dav¸¦ »ç¿ëÇÏ·Á¸é httpd.conf
ÆÄÀÏ¿¡ ¾Æ·¡°ú °°ÀÌ Ãß°¡ÇÑ´Ù:
Dav On
±×·¯¸é mod_dav_fs ¸ðµâÀÌ ±¸ÇöÇÏ´Â DAV
ÆÄÀϽýºÅÛ Á¦°øÀÚ(provider)¸¦ »ç¿ëÇÑ´Ù. ±×·¯¹Ç·Î ÀÌ ¸ðµâµµ
¼¹ö¿¡ °°ÀÌ ÄÄÆÄÀϵÇÀְųª LoadModule Áö½Ã¾î·Î ½ÇÇàÁß¿¡
Àоîµé¿©¾ß ÇÑ´Ù.
¶Ç, DAV Àá±Ý(lock) µ¥ÀÌÅͺ£À̽ºÀÇ À§Ä¡¸¦ httpd.conf
ÆÄÀÏÀÇ Àü¿ª ºÎºÐ¿¡ DavLockDB Áö½Ã¾î¸¦ »ç¿ëÇÏ¿©
ÁöÁ¤ÇØ¾ß ÇÑ´Ù:
DavLockDB /usr/local/apache2/var/DavLock
¾ÆÆÄÄ¡¸¦ ½ÇÇàÇÏ´Â User¿Í GroupÀº Àá±Ý µ¥ÀÌÅͺ£À̽º°¡
ÀÖ´Â µð·ºÅ丮¿¡ ¾²±â ±ÇÇÑÀ» °¡Á®¾ß ÇÑ´Ù.
DAV¸¦ »ç¿ëÇÏ´Â À§Ä¡¿¡ Á¢±ÙÀ» Á¦ÇÑÇϱâÀ§ÇØ Location Áö½Ã¾î
¾È¿¡ Limit
Áö½Ã¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. DAV Ŭ¶óÀ̾ðÆ®°¡ ÇѹøÀÇ ¿äû¿¡
º¸³¾ ¼ö ÀÖ´Â ÃÖ´ë ¹ÙÀÌÆ®¼ö¸¦ Á¦ÇÑÇÏ·Á¸é LimitXMLRequestBody Áö½Ã¾î¸¦ »ç¿ëÇÑ´Ù.
"ÀϹÝÀûÀÎ" LimitRequestBody
Áö½Ã¾î´Â DAV ¿äû°ú °ü°è¾ø´Ù.
Àüü ¿¹Á¦
DavLockDB /usr/local/apache2/var/DavLock
<Location /foo>
Dav On
AuthType Basic
AuthName DAV
AuthUserFile user.passwd
<LimitExcept GET OPTIONS>
require user admin
</LimitExcept>
</Location>
º¸¾È ¹®Á¦
DAV¸¦ »ç¿ëÇÏ¸é ¿ø°Ý Ŭ¶óÀ̾ðÆ®°¡ ¼¹öÀÇ ÆÄÀÏÀ» Á¶ÀÛÇÒ
¼ö Àֱ⶧¹®¿¡, mod_dav¸¦ »ç¿ëÇϱâ Àü¿¡
¼¹ö°¡ ¾ÈÀüÇÑÁö Ưº°È÷ °ü½ÉÀ» °¡Á®¾ß ÇÑ´Ù.
¼¹ö¿¡¼ DAV°¡ °¡´ÉÇÑ À§Ä¡´Â ÀÎÁõÀ¸·Î º¸È£ÇØ¾ß ÇÑ´Ù.
HTTP Basic Authentication´Â ÃßõÇÏÁö ¾Ê´Â´Ù. ÃÖ¼ÒÇÑ
mod_auth_digest ¸ðµâÀÌ Á¦°øÇÏ´Â HTTP Digest
AuthenticationÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. °ÅÀÇ ¸ðµç WebDAV Ŭ¶óÀ̾ðÆ®´Â
ÀÌ ÀÎÁõ ¹æ½ÄÀ» Áö¿øÇÑ´Ù. ¾Æ´Ï¸é SSL
¿¬°á¿¡¼ Basic AuthenticationÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
mod_dav°¡ ÆÄÀÏÀ» Á¶ÀÛÇÏ·Á¸é, ¾ÆÆÄÄ¡¸¦
½ÇÇàÇÏ´Â User¿Í
GroupÀº ÇØ´ç
µð·ºÅ丮¿Í ÆÄÀÏ¿¡ ¾²±â ±ÇÇÑÀ» °¡Á®¾ß ÇÑ´Ù. ¶Ç, »õ·Î »ý¼ºÇÑ
ÆÄÀÏÀº User¿Í
GroupÀÌ ¼ÒÀ¯ÇÏ°Ô
µÈ´Ù. ±×·¡¼ ¾Æ¹«³ª ÀÌ °èÁ¤¿¡ Á¢±ÙÇÒ ¼ö ¾øµµ·Ï Ç϶ó. DAV
ÀúÀå¼Ò´Â ¾ÆÆÄÄ¡¸¸ Á¢±ÙÇÒ ¼ö ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ¾ÆÆÄÄ¡¸¦ ÅëÇÏÁö¾Ê°í
(¿¹¸¦ µé¾î FTP³ª ÆÄÀϽýºÅÛ µµ±¸¸¦ »ç¿ëÇÏ¿©) ÆÄÀÏÀ» ¼öÁ¤ÇÔÀ»
Çã¿ëÇÏ¸é ¾ÈµÈ´Ù.
mod_dav´Â ¿©·¯ ¼ºñ½º°ÅºÎ °ø°ÝÀÇ ´ë»óÀÌ
µÉ ¼ö ÀÖ´Ù. LimitXMLRequestBody Áö½Ã¾î¸¦
»ç¿ëÇÏ¿© Å« DAV ¿äûÀ» ÀÐÀ»¶§ ¸Þ¸ð¸®·®À» Á¦ÇÑÇÒ ¼ö ÀÖ´Ù.
DavDepthInfinity
Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© ¸¹Àº ¸Þ¸ð¸®¸¦ ¼Ò¸ðÇϱâÀ§ÇÑ ¸Å¿ì Å« ÀúÀå¼ÒÀÇ
PROPFIND
¿äûÀ» ¸·À» ¼ö ÀÖ´Ù. ´Ü¼øÈ÷ Ŭ¶óÀ̾ðÆ®°¡
¿©·¯ Å« ÆÄÀϵé·Î µð½ºÅ©°ø°£À» ä¿ì´Â ¼ºñ½º°ÅºÎ °ø°Ýµµ °¡´ÉÇÏ´Ù.
¾ÆÆÄÄ¡¿¡¼ À̸¦ ¸·À» Á÷Á¢ÀûÀÎ ¹æ¹ýÀº ¾ø´Ù. ±×·¯¹Ç·Î ½Å·ÚÇÏÁö¾Ê´Â
»ç¿ëÀÚ¿¡°Ô DAV Á¢±ÙÀ» Çã¿ëÇÏÁö ¾Êµµ·ÏÇ϶ó.
º¹ÀâÇÑ ¼³Á¤
ÀϹÝÀûÀÎ Áú¹®Áß Çϳª´Â (PHP ½ºÅ©¸³Æ®, CGI ½ºÅ©¸³Æ® µî)
µ¿ÀûÆÄÀÏ ÀÛ¾÷À» À§ÇØ mod_dav¸¦ »ç¿ëÇÏ´Â
¹æ¹ýÀÌ´Ù. ÀÌ´Â GET
¿äûÀÌ ÆÄÀÏ ³»¿ëÀ» ´Ù¿î·ÎµåÇÏÁö
¾Ê°í Ç×»ó ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϹǷΠ¾î·Æ´Ù. ÇØ°á¹æ¹ýÁß Çϳª´Â
³»¿ë¿¡ µÎ°³ÀÇ URLÀ» ´ëÀÀÇÏ´Â °ÍÀÌ´Ù. ÇÑ URLÀº ½ºÅ©¸³Æ®¸¦
½ÇÇàÇÏ°í, ´Ù¸¥ URL·Î´Â ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÏ¿© DAV·Î ÀÛ¾÷ÇÒ
¼ö ÀÖ´Ù.
Alias /phparea /home/gstein/php_files
Alias /php-source /home/gstein/php_files
<Location /php-source>
DAV On
ForceType text/plain
</Location>
ÀÌ ¼³Á¤¿¡¼ http://example.com/phparea
´Â
PHP ½ºÅ©¸³Æ®ÀÇ °á°ú¸¦ º¸¿©ÁÖ°í,
http://example.com/php-source
·Î´Â DAV Ŭ¶óÀ̾ðÆ®¿¡¼
½ºÅ©¸³Æ®¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.
Dav
WebDAV HTTP ¸Þ½áµå¸¦ ½ÃÀÛÇÑ´Ù
Dav On|Off|provider-name
Dav Off
directory
ÁöÁ¤ÇÑ À§Ä¡¿¡¼ WebDAV HTTP ¸Þ½áµå¸¦ »ç¿ëÇÏ·Á¸é
Dav Áö½Ã¾î¸¦ »ç¿ëÇÑ´Ù:
<Location /foo>
Dav On
</Location>
On
°ªÀº ½ÇÁ¦·Î mod_dav_fs
¸ðµâÀÌ Á¦°øÇÏ´Â ±âº» Á¦°øÀÚÀÎ filesystem
ÀÇ
º°ÄªÀÌ´Ù. ¾î¶² À§Ä¡¿¡¼ DAV¸¦ ½ÃÀÛÇϸé ÇÏÀ§°ø°£¿¡¼ DAV¸¦
»ç¿ë¾ÈÇϵµ·Ï ¼³Á¤ÇÒ ¼ö ¾øÀ½À» ÁÖÀÇÇ϶ó. ¿ÏÀüÇÑ
¼³Á¤¿¹´Â À§ÀÇ ÀýÀ» Âü°íÇ϶ó.
¼¹ö¸¦ ¾ÈÀüÇÏ°Ô ±¸¼ºÇÒ¶§±îÁö WebDAVÀ» »ç¿ëÇÏÁö ¸¶¶ó. ±×·¸Áö
¾ÊÀ¸¸é ´©±¸¶óµµ ¼¹ö¸¦ ÅëÇØ ÆÄÀÏÀ» ºÐ¹èÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
DavMinTimeout
¼¹ö°¡ DAV ÀÚ¿ø¿¡ ´ëÇØ À¯ÁöÇÒ Àá±ÝÀÇ Ãּҽð£
DavMinTimeout seconds
DavMinTimeout 0
server configvirtual host
directory
Ŭ¶óÀ̾ðÆ®°¡ DAV ÀÚ¿ø¿¡ Àá±Ý(lock)À» ¿äûÇÒ¶§ ¼¹ö°¡
¾Ë¾Æ¼ Àá±ÝÀ» Á¦°ÅÇÒ ¼ö ÀÖ´Â ½Ã°£À» °°ÀÌ ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. ÀÌ °ªÀº
´ÜÁö ¿äûÀÏ»ÓÀ̸ç, ¼¹ö´Â Ŭ¶óÀ̾ðÆ®°¡ ¿äûÇÑ °ªÀ» ¹«½ÃÇÏ°í
Ŭ¶óÀ̾ðÆ®¿¡°Ô ÀÓÀÇÀÇ ½Ã°£À» ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù.
DavMinTimeout Áö½Ã¾î´Â Ŭ¶óÀ̾ðÆ®¿¡°Ô
º¸³¾ ÃÖ¼Ò Àá±Ý ½Ã°£À» (ÃÊ´ÜÀ§) ÁöÁ¤ÇÑ´Ù. Microsoft Web Folders´Â
±âº»°ªÀ¸·Î 120 Ãʸ¦ »ç¿ëÇÑ´Ù. DavMinTimeout¿¡
(600 ÃÊ¿Í °°ÀÌ) ´õ ³ôÀº °ªÀ» »ç¿ëÇϸé Ŭ¶óÀ̾ðÆ®°¡ ³×Æ®¿÷
Áö¿¬¶§¹®¿¡ Àá±ÝÀ» ÀҰԵǴ °æ¿ì¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.
¿¹Á¦
<Location /MSWord>
DavMinTimeout 600
</Location>
DavDepthInfinity
PROPFINDÀÇ Depth: Infinity ¿äûÀ» Çã°¡ÇÑ´Ù
DavDepthInfinity on|off
DavDepthInfinity off
server configvirtual host
directory
DavDepthInfinity Áö½Ã¾î¸¦ »ç¿ëÇϸé
'Depth: Infinity' Çì´õ¸¦ °¡Áø PROPFIND
¿äûÀ»
Çã°¡ÇÑ´Ù. ÀÌ·± ¿äûÀ» »ç¿ëÇÏ¿© ¼ºñ½º°ÅºÎ °ø°ÝÀÌ °¡´ÉÇϱâ
¶§¹®¿¡ ±âº»ÀûÀ¸·Î Çã¿ëÇÏÁö ¾Ê´Â´Ù.