211 lines
5.7 KiB
Text
211 lines
5.7 KiB
Text
=======================================
|
|
WebDAVAdmin installation instructions
|
|
=======================================
|
|
:Author: Jan Dittberner
|
|
:Contact: jan@dittberner.info
|
|
:Version: 0.1
|
|
:Revision: $Revision$
|
|
:Date: $Date$
|
|
:Copyright: Copyright (C) 2007 Jan Dittberner
|
|
|
|
.. contents::
|
|
|
|
Unpack WebDAVAdmin
|
|
==================
|
|
|
|
1. unpack the WebDAVAdmin distribution file somewhere::
|
|
|
|
cd ~/tmp/
|
|
tar xjf webdavadmin-0.1.tar.bz2
|
|
|
|
``~/tmp/`` is just an example to be able to reference it in these
|
|
installation instructions
|
|
|
|
Setup PostgreSQL and your database
|
|
==================================
|
|
|
|
1. Install PostgreSQL by the means of your operating system. For
|
|
Debian GNU/Linux 4.0 Etch execute::
|
|
|
|
sudo aptitude install postgresql-8.1
|
|
|
|
2. Switch to user postgres::
|
|
|
|
sudo su - postgres
|
|
|
|
and
|
|
|
|
1) create a user for WebDAVAdmin::
|
|
|
|
createuser -SDRP myuser
|
|
|
|
when prompted type the password for the database user twice
|
|
|
|
2) create a database::
|
|
|
|
createdb --owner=myuser --encoding=UTF-8 mydb
|
|
|
|
3) exit the postgres shell
|
|
|
|
You may skip theese steps if you want to use an existing database
|
|
|
|
3. Import the schema for WebDAVAdmin::
|
|
|
|
psql -h localhost -U myuser mydb < ~/tmp/webdavadmin-0.1/setup/schema.sql
|
|
|
|
when prompted type the password for your database user.
|
|
|
|
Setup Apache
|
|
============
|
|
|
|
1. Install, enable and configure apache and the apache modules
|
|
|
|
- mod_dav
|
|
- mod_dav_fs
|
|
- mod_auth_pgsql
|
|
- libphp5
|
|
|
|
by the means of your operating system vendor. For Debian GNU/Linux 4.0
|
|
Etch this means [1]_::
|
|
|
|
sudo aptitude install apache2-mpm-prefork libapache2-mod-php5 libapache2-mod-auth-pgsql
|
|
sudo a2enmod php5
|
|
sudo a2enmod auth_pgsql
|
|
sudo a2enmod dav
|
|
sudo a2enmod dav_fs
|
|
|
|
.. [1] if you don't want to use ``sudo`` you may also switch to root.
|
|
|
|
2. Configure a VirtualHost to use WebDAV and PostgreSQL
|
|
authentication, this VirtualHost configuration could look like::
|
|
|
|
<VirtualHost *:80>
|
|
ServerName davhost.yourdomain.net
|
|
|
|
DavLockDb /var/run/apache2/davlock/davhost.yourdomain.net
|
|
DocumentRoot /var/www
|
|
|
|
<Directory /var/www/dav>
|
|
Options Indexes
|
|
Order allow,deny
|
|
allow from all
|
|
|
|
Dav on
|
|
|
|
# Authentication/Authorization
|
|
AuthType Basic
|
|
AuthName "WebDAVAdmin example"
|
|
AuthBasicAuthoritative Off
|
|
AuthUserFile /etc/apache2/auth/davhost.yourdomain.net.passwd
|
|
|
|
Auth_PG_host localhost
|
|
Auth_PG_port 5432
|
|
Auth_PG_user myuser
|
|
Auth_PG_pwd secret
|
|
Auth_PG_database mydb
|
|
Auth_PG_pwd_table dav_password
|
|
Auth_PG_uid_field username
|
|
Auth_PG_pwd_field password
|
|
Auth_PG_grp_table dav_group
|
|
Auth_PG_grp_user_field username
|
|
Auth_PG_grp_group_field groupname
|
|
Auth_PG_hash_type MD5
|
|
#Auth_PG_log_table dav_log
|
|
#Auth_PG_log_uname_field username
|
|
#Auth_PG_log_date_field reqdate
|
|
#Auth_PG_log_uri_field uri
|
|
#Auth_PG_log_addrs_field ipaddr
|
|
Auth_PG_authoritative on
|
|
|
|
require group davroot
|
|
</Directory>
|
|
|
|
ErrorLog /var/log/apache2/davhost.yourdomain.net_error.log
|
|
CustomLog /var/log/apache2/davhost.yourdomain.net_access.log combined
|
|
</VirtualHost>
|
|
|
|
|
|
The directory specified for ``DavLockDb`` must be writable for the
|
|
user your apache processes run as. The ``AuthUserFile`` is
|
|
specified as a fallback if your PostgreSQL database is not
|
|
available.
|
|
|
|
Install required php modules and classes
|
|
========================================
|
|
|
|
WebDAVAdmin needs Smarty and a PostgreSQL PDO driver for PHP5. To
|
|
install these requirements perform the following step::
|
|
|
|
sudo aptitude install smarty php5-pgsql
|
|
|
|
on operating systems other then Debian GNU/Linux consult your system
|
|
documentation.
|
|
|
|
Copy WebDAVAdmin files
|
|
======================
|
|
|
|
2. create a new document root directory or a subdirectory inside an
|
|
existing one
|
|
|
|
3. create a subdirectory which you'll later use for WebDAVAdmin::
|
|
|
|
mkdir /var/www/dav
|
|
|
|
4. copy the admin subdirectory of the unpacked webdavadmin distribution
|
|
file to the directory just created::
|
|
|
|
cp -R webdavadmin-0.1/admin /var/www/dav/
|
|
|
|
5. set the filesystem permissions of the dav directory to allow the
|
|
user apache is running as to write to the directory
|
|
|
|
Configure WebDAVAdmin
|
|
=====================
|
|
|
|
The WebDAVAdmin distribution contains a directory ``config`` with
|
|
configuration templates that you need to customize for your
|
|
environment.
|
|
|
|
1. ``dbsettings.inc.php``
|
|
|
|
This file contains the settings for your database connection. The
|
|
file should be placed outside the document root for security
|
|
reasons. A customized version of this file may look like::
|
|
|
|
<?php
|
|
/** Data source name. */
|
|
$dsn = "pgsql:host=localhost port=5432 dbname=mydb";
|
|
/** Database user. */
|
|
$dbuser = "myuser";
|
|
/** Database password. */
|
|
$dbpass = "secret";
|
|
?>
|
|
|
|
2. ``config.inc.php``
|
|
|
|
This file contains the absolute path to your WebDAVAdmin
|
|
installation and to your ``dbsettings.inc.php``. A customized
|
|
version of this file could be::
|
|
|
|
<?php
|
|
/** DAV area root directory. */
|
|
define(DAV_ROOT, '/var/www/dav');
|
|
|
|
/** Include the database settings. */
|
|
include_once('/etc/webdavadmin/dbsettings.inc.php');
|
|
?>
|
|
|
|
After adapting the contents to your environment put this file into
|
|
your WebDAVAdmin directory. For example::
|
|
|
|
cp config.inc.php /var/www/dav/admin/
|
|
|
|
Be sure to make the subdirectory templates_c of your WebDAVAdmin
|
|
directory writable for your apache user [2]_.
|
|
|
|
.. [2] you could use chown, chmod and/or ACLs to perform this task
|
|
|
|
Now you should be able to use your installation of WebDAVAdmin by
|
|
opening the URL http://davhost.yourdomain.net/dav/admin/ (if you just
|
|
followed this instructions).
|
|
|