This HowTo shows you the installation of ProjectPeriod in a Linux environment. We will use an Apache web server with a MySQL database. Our commands are used in a Debian based operating system and will not match for other operating systems.


For a well running ProjectPeriod is a web server with the Django framework (≥ 1.5) required. This is provided for example by Ubuntu 13.10.

Prepare the web server

apt-get install mysql-client  mysql-server apache2 libapache2-mod-wsgi phpmyadmin
apt-get install python python-mysqldb python-mysql.connector
apt-get install python-django python-dateutil python-django-countries python-ldap famfamfam-flag-gif python-djangorestframework python-requests python-suds python-crypto python-django-tables2

Install ProjectPeriod

Download ProjectPeriod and extract the archive to /var/www/ProjectPeriod. Add a symbolic link:

ln -s /var/www/ProjectPeriod/API /var/www/ProjectPeriod/Time/
ln -s /var/www/ProjectPeriod/Auth /var/www/ProjectPeriod/Time/
ln -s /var/www/ProjectPeriod/Billing /var/www/ProjectPeriod/Time/
ln -s /var/www/ProjectPeriod/Core /var/www/ProjectPeriod/Time/
ln -s /var/www/ProjectPeriod/Planning /var/www/ProjectPeriod/Time/
ln -s /var/www/ProjectPeriod/Profile /var/www/ProjectPeriod/Time/

Change the configuration for your web server:

vi /var/www/ProjectPeriod/Time/

Make executable:

chmod +x

Automatic Installation

If you use a MySQL database you can use the automatic installation. Therefore you have to make the executable and execute the installation:

chmod +x
./ DBUser DBPasswort

Manual Installation

Set the file owner and rights:

chown www-data:www-data /var/www/ProjectPeriod/ -R
chmod g+w /var/www/ProjectPeriod/logs/core.log

Create a database with the same name as in the

Make executable and install the database tables for ProjectPeriod:

chmod +x
/var/www/ProjectPeriod/ syncd

Configure Apache

ProjectPeriod must be configured for the Apache Server. You have to edit /etc/apache2/sites-available/default and append the following content:

    Alias /ProjectPeriod/css/ /var/www/ProjectPeriod/Time/templates/css/
    Alias /ProjectPeriod/js/ /var/www/ProjectPeriod/Time/templates/js/
    Alias /ProjectPeriod/images/ /var/www/ProjectPeriod/Time/templates/images/

    WSGIScriptAlias /ProjectPeriod /var/www/ProjectPeriod/Time/

    <Directory /var/www/ProjectPeriod/Time>
            Order deny,allow
            Allow from all

Now you have to restart the Apache web server:

/etc/init.d/apache2 restart