-
Patrick Barroca authored7fe6318b
- Paquets nécessaires:
- Ubuntu Trusty
- Debian Wheezy-Jessie
- ArchLinux
- CentOS
- Installer PHPUnit (en compte root / sudo):
- Récupération des sources
- Serveur web Apache :
- Activez les modules :
- Debian
- ArchLinux:
- Configurer Apache
- Serveur web Nginx (experimental)
- Fichier d’include « bokeh.inc » à placer par exemple dans /etc/nginx/conf-enabled
- Fichier vhost à adapter à votre propre cas (changer URL_Bokeh, Path_Bokeh_Dir, Bokeh_Dir, …)
- Pour information exemple de fichier etc/nginx/fastcgi_params
- Configurer PHP
- Droits d'écriture sur les répertoires
- Configuration MySQL
- Finaliser l'installation (ArchLinux)
- Configuration
- Configuration OPAC
- Configuration Cosmogramme
- Mise à jour de la base de données
- Se connecter à l'OPAC:
- Pour lancer les tests de l'OPAC:
Sauf indiqué, cette procédure prends en compte par défaut les distributions GNU/Linux Ubuntu et Debian
Paquets nécessaires:
Ubuntu Trusty
apt-get install python-software-properties php5 php5-gd php5-imagick php5-xdebug php-pear php5-mysqlnd php5-xhprof graphviz apache2 mysql-server libapache2-mod-php5 git php5-mcrypt php5-curl yaz
Debian Wheezy-Jessie
apt-get install php5 php5-gd php5-imagick php5-xdebug php-pear php5-mysqlnd graphviz apache2 mysql-server libapache2-mod-php5 git php5-mcrypt php5-curl yaz php5-xhprof
ArchLinux
yaourt -S php php-gd php-imagick xdebug php-pear apache mariadb php-apache php-xhprof graphviz git php-mcrypt binutils automake autoconf gcc make fakeroot
CentOS
rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
yum install php54w php54w-gd php54w-pear php54w-mysql php54w-pecl-xdebug php54w-xml php54w-soap php54w-mbstring
Il est nécessaire de compiler Imagick extension à partir des sources.
Installer PHPUnit (en compte root / sudo):
Rechercher le numéro de la dernière version phpunit-x.x.x.phar sur https://phar.phpunit.de
cd /usr/local/bin
wget https://phar.phpunit.de/phpunit-x.x.x.phar
mv phpunit-x.x.x.phar phpunit
chmod +x phpunit
Récupération des sources
cd /var/www
git clone http://git.afi-sa.fr/afi/opacce.git opacce
Lancer le script update.sh
cd opacce
./update.sh
Serveur web Apache :
Activez les modules :
Debian
a2enmod headers rewrite php5
ArchLinux:
Modifiez /etc/httpd/conf/http.conf et ajoutez la ligne:
LoadModule php5_module modules/libphp5.so
Activer mod_mpm_prefork (voir https://wiki.archlinux.org/index.php/Apache_HTTP_Server#PHP).
Désactivez le module negotiation qui pose problème avec Zend Framework sur les urls index/index:
a2dismod negotiation
Configurer Apache
Dans la conf Apache (/etc/apache2/sites-available/votre-site.conf), supprimer l'option Indexes (listing des fichiers) et autoriser les .htaccess:
<Directory /var/www/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Note: pour apache 2.4
<Directory /var/www/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Serveur web Nginx (experimental)
Le fait d’utiliser Nginx comme serveur Web implique d’utiliser le moteur PHP en mode FPM.
La configuration recommandée utilise 2 fichiers qui présentent l’intérêt d’avoir des fichiers vHost simplifiés et permettent de concentrer le paramétrage commun à tous les vHost dans un fichier annexe, qui fait un peu le même job que le fichier .htaccess sous Apache.
Fichier d’include « bokeh.inc » à placer par exemple dans /etc/nginx/conf-enabled
# Include directives for Bokeh portal
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 30d;
log_not_found off;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Deny access to sensitive files.
location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ {
#deny all;
return 403;
}
location ~ /(\.|\.htaccess|config\.(ini|php)) {
#deny all;
return 403;
}
# Path without redirection
location ~ /(xhprof_html|ckeditor|\.well-known) {
}
# Serve PHP
location ~ /cosmogramme/cosmozend {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/cosmogramme/cosmozend/index.php;
fastcgi_param SCRIPT_NAME /cosmogramme/cosmozend/index.php;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
fastcgi_pass bokeh-dock:9000;
}
location ~ (\.php$|/(cosmogramme|exploit/(test\.php|fpm-ping|fpm-status))) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
fastcgi_pass bokeh-dock:9000;
}
Fichier vhost à adapter à votre propre cas (changer URL_Bokeh, Path_Bokeh_Dir, Bokeh_Dir, …)
server {
listen 80;
index index.php;
server_name <URL_Bokeh>;
root <Path_Bokeh_Dir>/<Bokeh_Dir>;
access_log "<Path_Nginx_Log>/<URL_Bokeh>_access.log";
error_log "<Path_Nginx_Log>/<URL_Bokeh>_error.log";
location / {
try_files $uri $uri/ @rewrite;
}
# if the requested file exists, return it immediately
if (-f $request_filename) {
break;
}
location @rewrite {
rewrite ^(.*)$ /index.php last;
}
include /etc/nginx/conf-enabled/bokeh.inc;
}
Pour information exemple de fichier etc/nginx/fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
Configurer PHP
Dans /etc/php5/apache2/php.ini (ArchLinux: /etc/php/php.ini), configurer les variables suivantes:
post_max_size = 10M
upload_max_filesize = 10M
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
extension = xhprof.so
xhprof.output_dir = /chemin/vers/bokeh/temp
Activez les extensions suivantes si elles ne le sont pas déjà (elles devraient l'être) :
php5enmod calendar curl gd gettext iconv mcrypt mysql pdo_mysql openssl soap imagick
Sur ArchLinux décommenter les lignes correspondantes.
Droits d'écriture sur les répertoires
- userfiles contient tous les fichiers téléversés via l'interface Bokeh ou moissonés sur des ressources tierces.
- temp contient les fichiers de caches, fichiers d'historiques de modification, et autres fichiers générés par Bokeh.
Par exemple:
chmod -R 777 opacce/userfiles
chmod -R 777 opacce/temp
Si vous ne souhaitez pas donner les droits d'écriture à tous sur ces répertoires, vous devez donner la permission à l'utilisateur sous lequel s'exécute le code PHP.
Configuration MySQL
Finaliser l'installation (ArchLinux)
Voir https://wiki.archlinux.org/index.php/MySQL#Installation
Configuration
Modifier /etc/mysql/my.cnf pour forcer l'indexation fulltext à partir de 1 lettre : ajouter dans la section [mysqld] :
ft_min_word_len = 1
Redémarrer mysql.
Notes: si des problèmes d'encodage de caractères sont visibles dans Cosmogramme, il est possible de forcer l'UTF8 comme ceci:
skip-character-set-client-handshake
character-set-server=utf8
Se connecter à mysql et importer le schema
mysql -uroot -ppass
mysql> create database opac;
mysql> connect opac;
mysql> source opacce/scripts/opac2.sql;
Configuration OPAC
Dans le répertoire opacce, copiez et configurez
cp config.ini.default config.ini
touch local.php
Configuration Cosmogramme
Dans le répertoire cosmogramme, copiez et configurez
cp config.ref.php config.php
Allez sur http://localhost/opacce/cosmogramme
Mise à jour de la base de données
En ligne de commande:
php scripts/upgrade_db.php
ou bien via navigateur web:
- Pointez votre navigateur sur http://localhost/opacce/cosmogramme/ et connectez vous avec le compte admin / achanger.
- De là, cliquez sur le lien Vous devez exécuter une mise à niveau de la base de données.
Se connecter à l'OPAC:
Vous pouvez maintenant administrer Bokeh à l'adresse http://localhost/opacce/admin avec le compte admin / achanger.
Les URLs sont:
- interface publique: http://localhost/opacce
- interface d'administration: http://localhost/opacce/admin
- interface de configuration des intégrations SIGB: http://localhost/opacce/cosmogramme
Pour lancer les tests de l'OPAC:
cd opacce/tests/
phpunit