[prev in list] [next in list] [prev in thread] [next in thread]
List: calendarserver-users
Subject: [CalendarServer-users] CalendarServer on Fedora 13 & 14 Linux
From: Stewart Adam <maillist () diffingo ! com>
Date: 2010-11-24 19:02:33
Message-ID: 4CED6149.4040503 () diffingo ! com
[Download RAW message or body]
Hi,
A while back I had asked a few questions about getting DCS setup on Fedora 13...
As my thanks I wanted to write back with how to get DCS setup from scratch on
Fedora 13/14. These instructions are also available here with better formatting:
http://www.firewing1.com/node/582
Special notes before starting:
* DCS will be installed to /opt/CalendarServer to prevent conflicts with system
libraries (i.e., twisted)
* DCS data roots will be in /srv/CalendarServer
* You must enable xattr on the partition containing the server data roots,
for example by running "mount -o remount,user_xattr /" or by adding
"user_xattr" to the mount options in the fstab.
* Unless a command sequence starts with "su -", it's intended to be executed as
a regular user.
1. Install prerequisites:
su -
yum install subversion
yum install patch memcached krb5-devel PyXML gcc gcc-c++ \
python-{devel,zope-interface,kerebos,setuptools}
2. Checkout code and run setup
mkdir CalendarServer&& cd CalendarServer
svn checkout http://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags/release/CalendarServer-2.4 \
CalendarServer-2.4 cd CalendarServer-2.4
./run -s
I'm not sure if this happens all the time, in my case downloading PyDirector
hanged. If the same happens to you, hit<ctrl+c> to halt the install script and
run:
pushd ..
wget http://downloads.sourceforge.net/pythondirector/pydirector-1.0.0.tar.gz
tar xfz pydirector-1.0.0.tar.gz
popd
./run -s
3. Prepare for installation
su -
mkdir -p /srv/CalendarServer/{Data,Documents}
chown -R daemon:daemon /srv/CalendarServer/
mkdir -p /opt/CalendarServer/etc/caldavd
mkdir -p /opt/CalendarServer/var/run/caldavd
mkdir -p /opt/CalendarServer/var/log/caldavd
4. Install DCS& configure server (replace /home/regularuser as needed)
su -
cd /home/regularuser/CalendarServer/CalendarServer-2.4
./run -i /opt/CalendarServer
rm -rf /opt/CalendarServer/usr/caldavd/caldavd.plist
cp conf/servertoserver-test.xml /opt/CalendarServer/etc/caldavd/servertoserver.xml
cp conf/auth/accounts.xml /opt/CalendarServer/etc/caldavd/accounts.xml
cp conf/caldavd-test.plist /opt/CalendarServer/etc/caldavd/caldavd.plist
cp conf/sudoers.plist /opt/CalendarServer/etc/caldavd/sudoers.plist
chmod 600 /opt/CalendarServer/etc/caldavd/*
5. Work around bugs #390 and #391
su -
sitelib="$(python -c 'from distutils.sysconfig import get_python_lib; \
print(get_python_lib())')" sitearch="$(python -c 'from distutils.sysconfig import \
get_python_lib; print(get_python_lib(1))')" if [ "$sitelib" != "$sitearch" ];then
mv /opt/CalendarServer"${sitelib}"/twisted/plugins/caldav.py* \
/opt/CalendarServer"${sitearch}"/twisted/plugins sed -i.orig \
's|PYTHONPATH="'"${sitelib}"'|DESTDIR=/opt/CalendarServer\nPYTHONPATH="${DESTDIR}'"${sitelib}"':${DESTDIR}'"${sitearch}"':|' \
/opt/CalendarServer/usr/bin/caldavd else
sed -i.orig 's|PYTHONPATH="'"${sitelib}"'|DESTDIR=/opt/CalendarServer\nPYTHONPATH="${DESTDIR}'"${sitelib}"':|' \
/opt/CalendarServer/usr/bin/caldavd fi
6a. If you already have some SSL certificates for the server, install them to
/opt/CalendarServer/etc/tls. If not, then you can create a self-signed one:
su -
mkdir /opt/CalendarServer/etc/tls
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout \
www.example.com.key -out www.example.com.crt
6b. Configure the server (don't add the double quotes in the XML):
* Set ServerHostName according to your setup
* Set DataRoot to "/srv/CalendarServer/Data/"
* Set DocumentRoot to "/srv/CalendarServer/Documents/"
* In the DirectoryService section, set xmlFile to \
"/opt/CalendarServer/etc/caldavd/accounts.xml"
* Set SudoersFile to "/opt/CalendarServer/etc/caldavd/sudoers.plist"
* Delete the Wiki section (Wikiserver authentication)
* Set AccessLogFile to "/opt/CalendarServer/var/log/caldavd/access.log"
* Set ErrorLogFile to "/opt/CalendarServer/var/log/caldavd/error.log"
* Set GlobalStatsSocket to "/opt/CalendarServer/var/run/caldavd/caldavd-stats.sock"
* Set ServerStatsFile to "/opt/CalendarServer/var/log/caldavd/stats.plist"
* Set PIDFile to "/opt/CalendarServer/var/run/caldavd/caldavd.pid"
* Set SSLCertificate to "/opt/CalendarServer/etc/tls/www.example.com.crt"
* Set SSLPrivateKey to "/opt/CalendarServer/etc/tls/www.example.com.key"
* Set UserName and GroupName to "daemon"
* In the iSchedule protocol section, set Servers to \
"/opt/CalendarServer/etc/caldavd/servertoserver.xml"
* Set ControlSocket to "/opt/CalendarServer/var/run/caldavd/caldavd.sock"
* Set twistd to "/opt/CalendarServer/usr/bin/twistd"
* In the Python Director section:
- Set pydir to "/opt/CalendarServer/usr/bin/pydir.py"
- Set ConfigFile to "/opt/CalendarServer/etc/pydir.xml"
- Set ControlSocket to "/opt/CalendarServer/var/run/caldavd/caldavd-pydir.sock"
7. Test startup:
su -
/opt/CalendarServer/usr/bin/caldavd -X \
-T /opt/CalendarServer/usr/bin/twistd \
-f /opt/CalendarServer/etc/caldavd/caldavd.plist
If all goes well, then you can daemonize the server by running the same command
without "-X". If you want to run DCS at system startup, add that command to
/etc/rc.d/rc.local or create a small initscript from the Fedora template:
http://fedoraproject.org/wiki/Packaging/SysVInitScript#Initscript_template
Regards,
Stewart
_______________________________________________
calendarserver-users mailing list
calendarserver-users@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/calendarserver-users
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic