# 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