# RAP IA2
## Installation and configuration
Requirements:
* Apache httpd server (tested on Apache/2.4.6)
* PHP (5.4+), composer for dependecies
* MySQL/MariaDB (tested on MariaDB 5.5.52)
### PHP
Put RAP sources in `/var/www/html/rap-ia2`
For installing PHP dependencies run:
composer install
Install also the bcmath PHP package (used in X.509 parser).
### MySQL
Create a dedicated database and user:
CREATE DATABASE rap;
CREATE USER rap@localhost IDENTIFIED BY 'XXXXXX';
GRANT ALL PRIVILEGES ON rap.* TO rap@localhost;
Enable the event scheduler:
* open MySQL configuration file (e.g. /etc/my.cnf)
* set `event_scheduler=1`
* restart MySQL
Then run the setup script:
mysql -u root -p < sql/setup-database.sql
### Apache (httpd)
* Configure a valid HTTPS certificate on the server
* Configure X.509 client certificate authentication:
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
SSLVerifyClient require
SSLVerifyDepth 10
SSLOptions +ExportCertData
* Shibboleth authentication:
AuthType shibboleth
ShibRequestSetting requireSession 1
Require valid-user
* Protect log directory:
Order deny,allow
Deny From All
* Protect RAP Web Service in Basic-Auth:
AuthType basic
AuthName RAP
AuthUserFile apachepasswd
Require valid-user
* Then creates a password file for RAP Web Service Basic-Auth:
* `cd /etc/httpd/`
* `htpasswd -c apachepasswd rap`
* The last command creates an hashed password for an user "rap" and store it in a file named apachepasswd.
* Finally, restart the Apache server.
### Social networks
Before using social API it is necessary to register an application on each social network and obtain API keys and secrets:
* https://console.developers.google.com
* https://www.linkedin.com/developer/apps
* https://developers.facebook.com/apps
### Configuration file
Copy the `config-example.php` into `config.php` and edit it for matching your needs.
## Additional information and developer guide
See the wiki: https://www.ict.inaf.it/gitlab/zorba/rap-ia2/wikis/home