Linux
CORE was developed on Ubuntu Lucid 10.04 LTS, but other Linux versions should also work.
Debian and Ubuntu users
Instead of installing each of the software items below separately, it is sufficient to install only a small set of packages, as this will pull in most of the required dependencies. To install everything except Zend:
apt-get install php5-pgsql php-apc postgresql php5-gd
Download source
Use subversion to download the source code:
cd /var/www/core svn co https://terena-core.googlecode.com/svn/trunk
Create some empty files, and change permissions so that the following directories and files are writable by the web server user. For Debian/Ubuntu this is www-data:www-data
:
cd var/www/core/trunk sudo touch application/configs/application.ini public/.htaccess sudo chown www-data:www-data cache sudo chown www-data:www-data uploads sudo chown www-data:www-data logs sudo chown www-data:www-data data/mails sudo chown www-data:www-data public/.htaccess sudo chown www-data:www-data application/configs/application.ini
Apache2
- Designate a vhost to CORE and make sure it runs SSL
- Enable mod_rewrite
- Enable mod_deflate (optional)
- Point the DocumentRoot to the 'public' subdirectory of the source, so in this case
/var/www/core/trunk/public
.
The vhost can contain one conference, or multiple conferences, in which case you can use the ServerAlias statement. For example:
<VirtualHost *:443> ServerName core.nren.edu ServerAlias myconf2011.nren.edu ServerAlias myconf2012.nren.edu ServerAlias otherconf2011.nren.edu DocumentRoot /var/www/core/public SSLEngine on SSLCipherSuite 'ALL:!ADH:!EXP:!DES:RC4+RSA:+HIGH:!MEDIUM!SSLv2:@STRENGTH' SSLHonorCipherOrder On SSLCACertificateFile /etc/ssl/certs/cachain.crt SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key </VirtualHost>
In the case of multiple conferences, it is convenient to use an SSL certificate with Subject Alternative Names - for instance those obtained by participating in the TERENA Certificate Service
At this moment each conference in CORE needs its own vhost, and it is not possible to run conferences under a sub directory (for instance https://www.nren.edu/conferences/myconf).
PHP5
PHP needs to be configured according to this table:
PHP Version |
5.3 or greater |
---|---|
Directives |
|
upload_max_filesize |
FIXME This should probably be done only in php.ini, and not in application config files. |
short_open_tag |
On |
safe_mode |
Off |
register_globals |
Off |
Extensions |
|
pdo_pgsql |
PDO PostgreSQL functions |
apc |
Alternative PHP Cache |
fileinfo |
File Information |
gd |
GD Graphics |
PostgreSQL
CORE uses multi-inserts which were introduced in version 8.2, so you'll need at least 8.2.
sudo to postgres and create a new database user, and write down the password:
createuser -D -I -R -S -P core_user
Create an empty database owned by that user:
createdb -O core_user -T template0 core_test_db
Zend Framework
You need version 1.11.0 or higher. This will need to be downloaded separately. Packaged versions in Debian or Ubuntu might be too old, but the installer will tell you so. You can download a tar ball of the latest Zend Framework from http://framework.zend.com/download/latest. The "Minimal" version is sufficient.
cd /opt wget http://framework.zend.com/releases/ZendFramework-1.11.10/ZendFramework-1.11.10-minimal.tar.gz tar xzvf ZendFramework-1.11.10-minimal.tar.gz
The installer will ask for a location where to find this.
Because the actual code is packaged together with some docs and other stuff, you need to specify the directory that contains the 'Zend' directory. So in this case you would specifiy /opt/ZendFramework-1.11.10-minimal/library
.
You could also use subversion, in that case you can download only the code, and skip the supporting docs etc:
cd /opt svn co http://framework.zend.com/svn/framework/standard/branches/release-1.11/library/Zend
In this case the you would specifiy /opt/library
SimpleSAMLphp
Version 1.8 should work, but older version might work too. See the instructions on the SimpleSAMLphp site to find out how to install and configure SimpleSAMLphp as a Service Provider.
CRON jobs
TODO: Create some scripts that periodically clean up mails and orphan files.