Go Back   HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials > ISPConfig 2 > Tips/Tricks/Mods

Do you like HowtoForge? Please consider supporting us by becoming a subscriber.
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Old 5th December 2007, 19:20
krakoukas krakoukas is offline
Join Date: Sep 2006
Location: Paris
Posts: 64
Thanks: 2
Thanked 3 Times in 2 Posts
Default Webdav + quota access to web's root patch

Here is my contribution for giving a webdav access to ISPconfig web's roots.
It consists in a modification of /root/ispconfig/scripts/lib/config.lib.php (after line 1660 in 2.2.18)

If your ISPconfig server hostname is www.mydomain.com, for account like userhost.userdomain.com you will get access to your webdav account through https://www.mydomain.com/userhost.userdomain.com/

You will need a database for webdav user mysql_auth mechanism:
DB: webdav, Table: users (login, pass)

  $mod->tpl->assign( array( FP_RESOURCE_CONFIG => $fp_resource_config,
                       FP_ACCESS_CONFIG => $fp_access_config));
  $mod->tpl->parse(TABLE, table);

  HERE Add webdav ssl access to /web directories
  if ($go_info["server"]["webdav"] == 1) {
  $myserver = trim(shell_exec("hostname -f"), "\r\n");
  $webdav = "
<VirtualHost ".$web["web_ip"].":443>
	ServerName ".$myserver.":443
	ServerAdmin webmaster@".$web["web_domain"]."
	DocumentRoot /var/www/sharedip
	SetEnvIf User-Agent \".*MSIE.*\" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
	<IfModule mod_ssl.c>
		NameVirtualHost ".$myserver.":443
		SSLEngine on
		SSLCertificateFile /etc/apache2/ssl/new.cert.cert
		SSLCertificateKeyFile /etc/apache2/ssl/new.cert.key

	foreach ($webs as $web)
	$webdav_root = $mod->system->server_conf["server_path_httpd_root"]."/"."web".$web["doc_id"]."/"."web";
	$my_quota = $web["web_speicher"]."000";
	$webdav .= "Alias /".$web["web_host"].".".$web["web_domain"]." ".$webdav_root;
	$mod->log("Update QUOTA for ".$web["web_host"].".".$web["web_domain"].": ".$web["web_speicher"]." Mo - Webdav access ".$webdav_root);

	$webdav .= "
	<Location /".$web["web_host"].".".$web["web_domain"].">
		DAV On
		AddType text/plain .html
		AddType text/plain .htm
		AddType text/plain .js
		AddType text/plain .css
		AddType text/plain .xml
		AddType text/plain .php
		DAVSATMaxAreaSize ".$my_quota."
		AuthType Basic
		AuthName \"Data Webdav Access\"
		Auth_MySQL_DB webdav
		Auth_MySQL_Password_Table users
		Auth_MySQL_Username_Field login
		Auth_MySQL_Password_Field pass
		Auth_MySQL_Empty_Passwords off
		Auth_MySQL_Encryption_Types PHP_MD5
			Require user ".$web["web_host"].".".$web["web_domain"]."
$webdav .= "
  $vhost_text = $mod->tpl->fetch();
  // ICI Add Webdav to vhost
  if ($go_info["server"]["webdav"] == 1) $vhost_text .= $webdav;
  } else {
  $vhost_text = "";
It modifies your vhost file if you add : $go_info["server"]["webdav"] = 1;
in /home/admispconfig/ispconfig/lib/config.inc.php

For mod_dav quota and auth_mysql apache2 needs to be patched and right modules have to be loaded and configure:

# Normal Install apache2 and required modules
apt-get install apache2 libapache-mod-dav libapache2-mod-auth-mysql apache2-doc

# Compile quota patched webdav module
cd /usr/src
wget http://leche.goodcrew.ne.jp/webdav/w...-quota-2.3.txt
wget http://archive.apache.org/dist/httpd...-2.0.55.tar.gz
tar -xvzf httpd-2.0.55.tar.gz
cd httpd-2.0.55
patch -p2 < ../webdav-2.0.55-quota-2.3.txt
./configure --enable-modules=most --enable-mods-shared=all

# Replace mod_dav module with patched one
mv /usr/lib/apache2/modules/mod_dav.so /usr/lib/apache2/modules/mod_dav.so-bkp
mv /usr/lib/apache2/modules/mod_dav_fs.so /usr/lib/apache2/modules/mod_dav_fs.so-bkp
cp ./modules/dav/main/.libs/mod_dav.so /usr/lib/apache2/modules/mod_dav.so
cp ./modules/dav/fs/.libs/mod_dav_fs.so /usr/lib/apache2/modules/mod_dav_fs.so

# Activate apache webdav module
ln -s /etc/apache2/mods-available/dav_fs.conf /etc/apache2/mods-enabled/dav_fs.conf
ln -s /etc/apache2/mods-available/dav_fs.load /etc/apache2/mods-enabled/dav_fs.load
ln -s /etc/apache2/mods-available/dav.load /etc/apache2/mods-enabled/dav.load

# Enable and Configure auth_mysql
ln -s /etc/apache2/mods-available/auth_mysql.load /etc/apache2/mods-enabled/auth_mysql.load
ln -s /etc/apache2/mods-available/auth_mysql.conf /etc/apache2/mods-enabled/auth_mysql.conf

# Give database reference (user/password) for auth_mysql
vi /etc/apache2/mods-available/auth_mysql.conf
Auth_MySQL_Info localhost davdbuser davdbpasswd
/etc/init.d/apache2 restart

For SSL certificate:
cd /etc/apache2/ssl/
openssl req -new > new.cert.csr
# Remove password
openssl rsa -in privkey.pem -out new.cert.key
# Key signing by cert
openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 3650
chmod 400 /etc/apache2/ssl/new.cert.key
Now have fun and Enjoy!

PS: If your accounts always have ISPconfig users, you can use sys_user database for mysql_auth, and modify a little this script...
Reply With Quote
The Following 2 Users Say Thank You to krakoukas For This Useful Post:
falko (6th December 2007), Hans (5th December 2007)
Sponsored Links


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
monit howto Jamesk5 HOWTO-Related Questions 11 5th August 2008 16:10
apache not working cruz Server Operation 21 29th October 2007 01:19
Add Webmin to the system sushestvo Installation/Configuration 44 21st August 2007 17:52
Server Side Includes don't work PermaNoob General 7 1st May 2007 21:38
cannot connect to ispconfig guidovanh Installation/Configuration 22 3rd March 2006 20:52

All times are GMT +2. The time now is 16:35.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.