INSTALL.fr.md 8.79 KB
Newer Older
1 2
Sauf indiqué, cette procédure prends en compte par défaut les distributions GNU/Linux Ubuntu et Debian

3 4 5

# Paquets nécessaires:

Meusburger's avatar
Meusburger committed
6
##  Ubuntu Trusty
7
```
8
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
9 10
```

11
## Debian Wheezy-Jessie
12
```
13
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
14

15
```
16 17
## ArchLinux
```
18
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
19 20 21 22 23
```

## CentOS
```
rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
llaffont's avatar
llaffont committed
24
yum install php54w php54w-gd php54w-pear php54w-mysql php54w-pecl-xdebug php54w-xml php54w-soap php54w-mbstring
25 26
```

27
Il est nécessaire de compiler Imagick extension à partir des sources.
llaffont's avatar
llaffont committed
28

29

30
# Installer PHPUnit (en compte root / sudo):
31
Rechercher le numéro de la dernière version *phpunit-x.x.x.phar* sur [https://phar.phpunit.de](https://phar.phpunit.de)
32 33 34

```
  cd /usr/local/bin
35 36
  wget https://phar.phpunit.de/phpunit-x.x.x.phar
  mv phpunit-x.x.x.phar phpunit
Laurent's avatar
Laurent committed
37
  chmod +x phpunit
38 39 40 41 42
```

# Récupération des sources
```
cd /var/www
43
git clone http://git.afi-sa.fr/afi/opacce.git opacce
44
```
45

Laurent's avatar
Laurent committed
46
Lancer le script update.sh
Laurent's avatar
Laurent committed
47

48
```
Laurent's avatar
Laurent committed
49 50
cd opacce
./update.sh
51 52
```

Patrick Barroca's avatar
Patrick Barroca committed
53
# Serveur web Apache :
54 55

## Activez les modules :
56

57 58
### Debian
```
llaffont's avatar
llaffont committed
59
a2enmod headers rewrite php5
60 61
```
### ArchLinux:
62

63
Modifiez /etc/httpd/conf/http.conf et ajoutez la ligne: 
Laurent's avatar
Laurent committed
64

65 66 67 68
```
LoadModule php5_module modules/libphp5.so
```

69 70
Activer mod_mpm_prefork (voir https://wiki.archlinux.org/index.php/Apache_HTTP_Server#PHP).

71 72
Désactivez le module negotiation qui pose problème avec Zend Framework sur les urls index/index:

73 74 75 76 77 78
```  
a2dismod negotiation
```

## Configurer Apache

79
Dans la conf Apache (/etc/apache2/sites-available/votre-site.conf), supprimer l'option Indexes (listing des fichiers) et autoriser les .htaccess: 
Laurent's avatar
Laurent committed
80

81
```
llaffont's avatar
llaffont committed
82 83 84 85 86 87
<Directory /var/www/>
  Options FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
88 89 90 91 92
```

Note: pour apache 2.4

```
llaffont's avatar
llaffont committed
93 94 95 96 97
<Directory /var/www/>
  Options FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>
98 99
```

Patrick Barroca's avatar
Patrick Barroca committed
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
# 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;
    }
186

Patrick Barroca's avatar
Patrick Barroca committed
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229
    # 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
230

Patrick Barroca's avatar
Patrick Barroca committed
231 232 233 234 235 236 237
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
238
```
Patrick Barroca's avatar
Patrick Barroca committed
239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

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
llaffont's avatar
llaffont committed
256
chmod -R 777 opacce/temp
257
```
Patrick Barroca's avatar
Patrick Barroca committed
258 259
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.

260

261 262
# Configuration MySQL
  
263 264 265 266 267 268 269
## Finaliser l'installation (ArchLinux)

Voir https://wiki.archlinux.org/index.php/MySQL#Installation


## Configuration

270
Modifier /etc/mysql/my.cnf pour forcer l'indexation fulltext à partir de 1 lettre : ajouter dans la section [mysqld] :
Laurent's avatar
Laurent committed
271

272
```
llaffont's avatar
llaffont committed
273
ft_min_word_len = 1
274
```
llaffont's avatar
llaffont committed
275 276
Redémarrer mysql.

277 278 279 280

Notes: si des problèmes d'encodage de caractères sont visibles dans Cosmogramme, il est possible de forcer l'UTF8 comme ceci:

```
llaffont's avatar
llaffont committed
281 282
skip-character-set-client-handshake
character-set-server=utf8
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298
```

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

```
llaffont's avatar
llaffont committed
299 300
cp config.ini.default config.ini
touch local.php
301 302 303 304
```

# Configuration Cosmogramme
  
305 306 307 308 309
  Dans le répertoire cosmogramme, copiez et configurez

```
cp config.ref.php config.php 
```
310 311 312

  Allez sur http://localhost/opacce/cosmogramme

Laurent's avatar
Laurent committed
313 314 315 316 317 318 319 320 321 322 323 324 325
  

# 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**.

326 327 328


# Se connecter à l'OPAC:
Laurent's avatar
Laurent committed
329 330 331 332 333 334 335

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
336 337 338 339


# Pour lancer les tests de l'OPAC:
```
llaffont's avatar
llaffont committed
340 341
cd opacce/tests/
phpunit
Meusburger's avatar
Meusburger committed
342
```