SabredavServer » Cronologia » Versione 4
Simone Piccardi, 24-11-2014 19:36
1 | 1 | Simone Piccardi | h1. Installare e configurare Sabredav |
---|---|---|---|
2 | |||
3 | Sabredav è un server CalDAV, CarDAV e WebDAV in PHP molto sviluppato che presenta una buona integrazione con Roundcube per la gestione di calendari integrati con la posta elettronica. Dato lo sviluppo molto intenso pur essendo disponibile un pacchetto @php-sabre-dav@ nei backports di Debian Wheezy, tratteremo l'installazione dai sorgenti. Si presuppone che sia disponibile e configurata, una Debian con PHP ed Apache già in grado di far funzionare Roundcube. |
||
4 | |||
5 | Il progetto consiglia per l'installazione di utilizzare @composer@, un framework per la gestione delle dipendenze in PHP, che consente anche degli aggiornamenti in maniera abbastanza semplice del programma. Il primo passo è individuare una directory sotto cui installarlo, per l'uso di quest'ultimo è consigliato di installare: |
||
6 | |||
7 | <pre> |
||
8 | apt-get install php5 git php5-curl |
||
9 | </pre> |
||
10 | |||
11 | poi lo si potrà installare nella directory in cui si installerà anche sabredav, nel nostro caso @/var/www/sabredav/@, con: |
||
12 | |||
13 | <pre> |
||
14 | curl -sS https://getcomposer.org/installer | php |
||
15 | </pre> |
||
16 | |||
17 | una volta installato composer sarà disponibile nella directory stessa il programma @composer.phar@ e si potrà installare sabre con: |
||
18 | |||
19 | <pre> |
||
20 | ./composer.phar require sabre/dav ~2.1.0 |
||
21 | </pre> |
||
22 | |||
23 | che scaricherà direttamente quanto necessario, ed in questo modo futuri aggiornamenti potranno essere installati semplicemente con @./composer.phar update sabre/dav@. Con questa installazione i file di sabredav verranno installati nella sottodirectory @vendor/sabre@. |
||
24 | 2 | Simone Piccardi | |
25 | Una volta fatto questo occorre configurare Apache, è preferibile utilizzare un dominio dedicato su un virtualhost, ad esempio @sabredav.dominio.tld@ o affini, in modo da poter inserire la configurazione in un file come @/etc/apache2/sites-available/sabredav.dominio.tld@ che dovrà contenere qualcosa del tipo: |
||
26 | |||
27 | <pre> |
||
28 | <VirtualHost *:443> |
||
29 | ServerName sabredav.dominio.tld |
||
30 | DocumentRoot /var/www/sabredav |
||
31 | # include SSL config directives |
||
32 | Include "/etc/apache2/sites-available/ssl.conf" |
||
33 | |||
34 | ## |
||
35 | ## Sabredav rules |
||
36 | ## |
||
37 | <IfModule mod_rewrite.c> |
||
38 | RewriteEngine On |
||
39 | RewriteRule (.*) index.php [L] |
||
40 | </IfModule> |
||
41 | # Disable eAccelerator |
||
42 | php_flag eaccelerator.enable 0 |
||
43 | php_flag eaccelerator.optimizer 0 |
||
44 | |||
45 | # Output buffering needs to be off, to prevent high memory usage |
||
46 | php_flag output_buffering off |
||
47 | |||
48 | # This is also to prevent high memory usage |
||
49 | php_flag always_populate_raw_post_data off |
||
50 | |||
51 | # This is almost a given, but magic quotes is *still* on on some |
||
52 | # linux distributions |
||
53 | php_flag magic_quotes_gpc off |
||
54 | |||
55 | # SabreDAV is not compatible with mbstring function overloading |
||
56 | php_flag mbstring.func_overload off |
||
57 | ErrorLog /var/log/apache2/sabredav.dominio.tld-error.log |
||
58 | # Possible values include: debug, info, notice, warn, error, crit, |
||
59 | # alert, emerg. |
||
60 | LogLevel warn |
||
61 | CustomLog /var/log/apache2/sabredav.dominio.tld-access.log combined |
||
62 | </VirtualHost> |
||
63 | 1 | Simone Piccardi | </pre> |
64 | 3 | Simone Piccardi | |
65 | |||
66 | Una volta installato il programma sono necessarie due directory scrivibili, evitate di usare i permessi a 777 come indicato nella documentazione di installazione di Sabredav (pensata presumibilmente per un housing) ed invece assegnatene la proprietà all'utente che esegue il web server (@www-data@ per Debian): |
||
67 | |||
68 | <pre> |
||
69 | cd /var/www/sabredav |
||
70 | mkdir data public |
||
71 | chown www-data.www-data data public |
||
72 | </pre> |
||
73 | |||
74 | A questo punto dovremo creare l'index.php (o file equivalente, ma si cambi la *RewriteRule* all'occorrenza) adatto al tipo di servizio che vogliamo offrire. Con il programma vegono forniti (nella directory @vendor/sabre/dav/examples/@) usa serie di possibili esempi, utilizzeremo come base @groupwareserver.php@, che andrà copiato ed opportunamente modificato per fargli utilizzare MySQL come database invece di SQLite che è il default preconfigurato. |
||
75 | 4 | Simone Piccardi | |
76 | <pre> |
||
77 | cp vendor/sabre/dav/examples/groupwareserver.php index.php |
||
78 | </pre> |
||
79 | |||
80 | Occorrerà poi creare un database dedicato (ma il programma può usare anche SQLite su un file) ed il relativo utente, nel caso si abbia MySQL, si possono usare le istruzioni di [[MySQLInitConf]], e poi si dovrà inizializzare lo stesso con: |
||
81 | |||
82 | <pre> |
||
83 | cat vendor/sabre/dav/examples/sql/mysql.* | mysql -u root -p sabredav |
||
84 | </pre> |
||
85 | |||
86 | e ci si potrà collegare con l'utente di default che è admin con password admin. |