I finally updated my main server from Lenny to Squeeze, and everything went very smoothly, much less trouble that I had expected. However, one thing that took me some time to figure out was why davical was not working, returning an HTTP 500 but logging no error in the logs.
It turns out, the problem was the PHP configuration in the .conf file of the virtual host. In the previous version, the entries were of the form:
php_value entry_name value php_value entry_name value ...
but after the update, this is no longer the case. They follow a new format, as described in the PHP Documentation, effectively using the forms:
php_value entry_name "value" php_flag entry_name on/off ...
In particular, the base_dir entry caused the PHP to report an internal error. Therefore, the new section looks like:
php_value include_path /usr/share/awl/inc php_flag magic_quotes_gpc off php_flag register_globals off # php_flag open_basedir on php_value error_reporting "E_ALL & ~E_NOTICE" php_value default_charset "utf-8"