Skip to content

02 Requirements

Shubhra Prakash Nandi edited this page Apr 19, 2025 · 20 revisions

Host

HTTP server

(Requires support for WebDAV methods and PHP execution support either natively or via FastCGI proxy)

  • Apache2
  • Nginx

Sync database

(Requires a relational database with transaction, referential integrity (foreign keys), triggers and PHP PDO driver support)

  • SQLite

Support for the following is planned

  • MySQL
  • PostgreSQL
  • SQL Server
  • Oracle

PHP

(Requires Apache mod_php / PHP-FPM)

  • Version 5.5 and higher
  • Version 7.1 recommended for better vCard v3.0 compatibility with vCard v4.0

Disk space

(Installation)

  • Minimum 10 MB free
  • Recommended 50 MB free

Memory

  • Minimum 128 MB
  • Recommended 512 MB

Backend

(Requires directory server with LDAP v3 support)

  • OpenLDAP

Note: Other products may also work but have not been tested.

Configuration

HTTP server

Apache2

(GNU/Linux Debian 11 used as a reference for a minimal test setup)

Enable the below modules.

php7.4
rewrite
socache_shmcb
headers

Contents of virtual host configuration file (as an example) is given below.

<VirtualHost *:80>
ServerName ldap-carddav
ServerAdmin admin@example.org

# The DocumentRoot is also required
DocumentRoot <doc_root_path>

RewriteEngine On

# If using mod_php use below
RewriteRule ^/(.*)$ /server.php [L]

# If using FastCGI use below instead of above
#RewriteRule ^/(.*)$ /server.php [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

# PHP flags if using mod_php. If using FastCGI comment out PHP flags below
# and add them to FastCGI server.

# Error logging
php_flag log_errors on
php_flag display_errors off
php_value error_log /var/log/apache2/error.log

# Output buffering needs to be off, to prevent high memory usage
php_flag output_buffering off

# This is also to prevent high memory usage
php_flag always_populate_raw_post_data off

# This is almost a given, but magic quotes is *still* on on some
# linux distributions
php_flag magic_quotes_gpc off

# SabreDAV is not compatible with mbstring function overloading
php_flag mbstring.func_overload off
</VirtualHost>

Sync database

  1. Database used as sync database must have transactions and referential integrity constraint (foreign keys) enforced.
  2. Must support database triggers.

Clone this wiki locally