Installation

Version 317 (Etienne Pallier, 01/22/2018 06:34 pm)

1 1 Etienne Pallier
h1. Labinvent 2.0 (cakephp3) - Installation
2 1 Etienne Pallier
3 1 Etienne Pallier
4 20 Etienne Pallier
Cette page décrit la phase d'installation du logiciel.
5 279 Etienne Pallier
_La version la plus à jour est sur la page "Installation" du wiki du projet_ : https://projects.irap.omp.eu/projects/inventirap/wiki/Installation
6 20 Etienne Pallier
7 20 Etienne Pallier
[ [[Labinvent_nouvelle_version|Retour au sommmaire]] ]
8 20 Etienne Pallier
9 20 Etienne Pallier
10 1 Etienne Pallier
{{toc}}
11 1 Etienne Pallier
12 1 Etienne Pallier
13 1 Etienne Pallier
14 1 Etienne Pallier
---
15 1 Etienne Pallier
16 1 Etienne Pallier
h2. LIENS UTILES
17 1 Etienne Pallier
18 133 Thibaud Ajas
* HOWTO Format Redmine Wiki : http://www.redmine.org/projects/redmine/wiki/FrRedmineWikiFormatting
19 1 Etienne Pallier
20 51 Etienne Pallier
* *Fichier README* : https://gitlab.irap.omp.eu/epallier/labinvent/blob/master/README-LABINVENT.md
21 51 Etienne Pallier
22 227 Etienne Pallier
* *Version majeure en cours (2.7)*: https://projects.irap.omp.eu/versions/162
23 12 Etienne Pallier
24 50 Etienne Pallier
* Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/commits/master
25 50 Etienne Pallier
26 12 Etienne Pallier
* Browse files (gitlab): https://gitlab.irap.omp.eu/epallier/labinvent/tree/master
27 1 Etienne Pallier
28 1 Etienne Pallier
---
29 1 Etienne Pallier
30 257 Etienne Pallier
h2. VERSION DE DEMO (en ligne)
31 214 Etienne Pallier
32 214 Etienne Pallier
http://planetoweb2.cesr.fr/labinvent2
33 214 Etienne Pallier
34 228 Etienne Pallier
(utilisateurs disponibles : "utilisateur", "responsable", "admin" sans mot de passe)
35 1 Etienne Pallier
36 215 Etienne Pallier
---
37 214 Etienne Pallier
38 215 Etienne Pallier
h2. RECUPERATION du logiciel
39 1 Etienne Pallier
40 1 Etienne Pallier
41 1 Etienne Pallier
42 113 Etienne Pallier
*1) Deux options*
43 113 Etienne Pallier
44 1 Etienne Pallier
Deux options se présentent à vous :
45 1 Etienne Pallier
46 230 Etienne Pallier
 * a) *soit vous récupérez une version statique* du logiciel, en le téléchargeant (pas besoin de login, c'est anonyme) : considérez alors cette version comme une version de test jetable car il vous faudra recommencer pour obtenir chaque nouvelle version
47 230 Etienne Pallier
 * b) (méthode préférée) *soit vous récupérez une version synchronisée*, avec git (nécessité d'avoir un login), ce qui vous permettra de rester constamment à jour (sans réinstallation), et même de contribuer à l'évolution du logiciel si vous le désirez
48 1 Etienne Pallier
49 237 Etienne Pallier
*a) (non recommandé) Téléchargement anonyme (version statique, non synchronisée, jetable)*
50 1 Etienne Pallier
51 124 Thibaud Ajas
Vous pouvez télécharger la version actuelle du logiciel.
52 1 Etienne Pallier
53 124 Thibaud Ajas
Pour cela, aller sur : https://gitlab.irap.omp.eu/epallier/labinvent/tree/master
54 1 Etienne Pallier
55 124 Thibaud Ajas
Cliquez sur : "Download zip" dans le coin en haut à droite.
56 1 Etienne Pallier
57 124 Thibaud Ajas
Double-cliquez dessus ou dézippez-le (ou lancez la commande gzip -d labinvent.zip). Vous devriez avoir un dossier "labinvent.git".
58 1 Etienne Pallier
59 124 Thibaud Ajas
Dans sa documentation, le logiciel sera désigné par "LABINVENT".
60 1 Etienne Pallier
61 124 Thibaud Ajas
Vous pouvez renommer "labinvent.git" en "labinvent" si vous le souhaitez ("mv labinvent.git labinvent" ou clic droit->Renommer).
62 1 Etienne Pallier
63 1 Etienne Pallier
64 237 Etienne Pallier
*b) (recommandé) Récupérer le logiciel via GIT (version dynamique, synchronisée, nécessité d'un login)*
65 216 Etienne Pallier
66 113 Etienne Pallier
Pour cette option, vous devez avoir un login. Si vous n'avez pas déjà un login, allez sur la page https://gitlab.irap.omp.eu/users/sign_in,
67 113 Etienne Pallier
puis remplissez la section "Sign up". Ensuite, envoyez un email à epallier AT irap. omp. eu
68 113 Etienne Pallier
en demandant l'autorisation d'accéder au gitlab du projet labinvent. On vous donnera alors la procédure à suivre pour vous connecter.
69 113 Etienne Pallier
70 126 Thibaud Ajas
(Si vous utilisez Windows, vous DEVEZ avant tout installer git pour windows, voir plus bas "Obtenir git pour windows")
71 1 Etienne Pallier
72 126 Thibaud Ajas
En récupérant directement le logiciel via git, vous allez avoir une version dynamiquement synchronisée.
73 126 Thibaud Ajas
Vous serez donc en mesure de la mettre à jour dès qu'une nouvelle version sera disponible avec la commande "git pull".
74 1 Etienne Pallier
75 126 Thibaud Ajas
* (Depuis Eclipse : Voir plus bas, section "A L'ATTENTION DES UTILISATEURS D'ECLIPSE")
76 1 Etienne Pallier
77 126 Thibaud Ajas
* Depuis un terminal:
78 1 Etienne Pallier
79 1 Etienne Pallier
<pre>
80 1 Etienne Pallier
git clone https://gitlab.irap.omp.eu/epallier/labinvent.git labinvent
81 1 Etienne Pallier
</pre>
82 1 Etienne Pallier
83 126 Thibaud Ajas
_(Ou aussi depuis ssh : git clone git@gitlab.irap.omp.eu:epallier/labinvent.git labinvent)_
84 1 Etienne Pallier
85 126 Thibaud Ajas
Si vous obtenez ce message d'erreur ... :
86 1 Etienne Pallier
<pre>
87 1 Etienne Pallier
fatal: unable to access 'https://gitlab.irap.omp.eu/epallier/labinvent.git/': Peer's certificate issuer has been marked as not trusted by the user.
88 1 Etienne Pallier
</pre>
89 1 Etienne Pallier
90 126 Thibaud Ajas
...tapez cette commande (et relancez une commade "git clone"):
91 1 Etienne Pallier
<pre>
92 1 Etienne Pallier
$ git config --global http.sslVerify false
93 127 Thibaud Ajas
</pre>
94 1 Etienne Pallier
Puis vérifiez que votre configuration soit OK :
95 128 Thibaud Ajas
<pre>
96 134 Etienne Pallier
$ git config --list
97 134 Etienne Pallier
(ou encore : cat ~/.gitconfig)
98 135 Etienne Pallier
99 1 Etienne Pallier
[user]
100 1 Etienne Pallier
	name = Etienne Pallier
101 1 Etienne Pallier
	email = epallier@irap.omp.eu
102 1 Etienne Pallier
[http]
103 1 Etienne Pallier
	sslVerify = false
104 1 Etienne Pallier
[push]
105 1 Etienne Pallier
	default = simple
106 1 Etienne Pallier
</pre>
107 1 Etienne Pallier
108 126 Thibaud Ajas
(Si vous récupérez le projet pour la première fois, git vous demandera un login et un mot de passe)
109 1 Etienne Pallier
110 1 Etienne Pallier
Git a normalement créé un dossier "labinvent" qui contiendra votre projet (avec un sous dossier ".git" qui sert à la synchronisation avec le dépot git).
111 136 Etienne Pallier
112 216 Etienne Pallier
Par défaut, vous êtes sur la branche "master" du git. Elle contient une version stable du logiciel.
113 1 Etienne Pallier
114 218 Etienne Pallier
Si vous souhaitez contribuer au développement de ce logiciel, vous devez absolument changer de branche et vous placer sur la branche "dev" (ou bien une sous-branche dédiée comme "dev-IRAP", ou "dev-LATMOS") : 
115 216 Etienne Pallier
<pre>
116 216 Etienne Pallier
cd labinvent/
117 216 Etienne Pallier
$ git branch
118 216 Etienne Pallier
$ git checkout dev
119 216 Etienne Pallier
$ git branch
120 1 Etienne Pallier
</pre>
121 217 Etienne Pallier
122 217 Etienne Pallier
Si vous désirez seulement utiliser ce logiciel sans le modifier, alors restez sur la branche "master", vous y serez très bien ;-).
123 216 Etienne Pallier
124 136 Etienne Pallier
*Seulement pour Windows* : 
125 136 Etienne Pallier
126 136 Etienne Pallier
Obtenir git pour windows :
127 136 Etienne Pallier
128 126 Thibaud Ajas
 * Téléchargez git sur https://git-scm.com/download/win
129 126 Thibaud Ajas
 * Lancez l'installation (gardez la configuration par défaut)
130 136 Etienne Pallier
 * Une fois installé, lancer une invite de commande (Touche Windows+R, tapez cmd, touche entrer)
131 1 Etienne Pallier
<pre>
132 1 Etienne Pallier
$ git config --global http.sslVerify false
133 1 Etienne Pallier
</pre>
134 1 Etienne Pallier
Vous pouvez désormais utiliser git depuis une invite de commande ou depuis l'interface graphique de git.
135 136 Etienne Pallier
136 1 Etienne Pallier
137 53 Etienne Pallier
*2) Préparation*
138 1 Etienne Pallier
139 260 Etienne Pallier
* Si jamais votre dossier "labinvent" appartient à root (vous avez fait un "git clone" depuis root...), il serait préférable que vous en soyez vous-même (ou un autre user) le propriétaire : 
140 137 Etienne Pallier
> sudo chown -R nom_utilisateur labinvent/
141 1 Etienne Pallier
142 258 Etienne Pallier
* Où placer le dossier "labinvent" ?
143 258 Etienne Pallier
2 possibilités :
144 258 Etienne Pallier
- (1) soit vous le laissez là où il est (ou bien vous le placez n'importe où ailleurs, par exemple dans votre repertoire home), et vous indiquez seulement au serveur web où le trouver, ou encore vous faites un lien depuis votre /var/www/html/ vers ce dossier labinvent/, ou encore vous créez un Virtual Host (Apache)
145 258 Etienne Pallier
- (2) soit vous placez ce dossier directement dans le repertoire des sites webs du serveur web (par exemple /var/www/html/ ou /var/www/html/localhost/public_html/, ...)
146 216 Etienne Pallier
147 1 Etienne Pallier
148 215 Etienne Pallier
---
149 215 Etienne Pallier
150 1 Etienne Pallier
h2. INSTALLATION
151 1 Etienne Pallier
152 238 Etienne Pallier
h3. Plateformes testées
153 1 Etienne Pallier
154 240 Etienne Pallier
*- Fedora 20* (version test Thibault Ajas, IRAP, avril 2017)
155 239 Etienne Pallier
156 240 Etienne Pallier
*- Centos 6.6* (version de "production", SI IRAP ) :
157 239 Etienne Pallier
	- PHP : 5.6.22
158 239 Etienne Pallier
	- Mysql : 5.1.73-3.el6_5
159 239 Etienne Pallier
	- Apache : 2.2.15-39.el6.centos
160 239 Etienne Pallier
161 240 Etienne Pallier
*- Debian GNU/Linux 8.5* (jessie) (version de "production", IAS) :
162 239 Etienne Pallier
	- PHP : 5.6.22
163 239 Etienne Pallier
	- Mysql : MariaDB 10.0.25
164 239 Etienne Pallier
	- Apache : 2.4.10
165 239 Etienne Pallier
166 240 Etienne Pallier
*- Scientific Linux (=Centos) 6.4* (version dev/test Etienne Pallier linux, IRAP) :
167 239 Etienne Pallier
	- PHP : 5.6.30
168 239 Etienne Pallier
	- MYSQL : 5.5.56
169 239 Etienne Pallier
	- APACHE : 2.2.15
170 239 Etienne Pallier
171 243 Etienne Pallier
*- UBuntu 14.04.4* (Ancienne version dev/test Alexandre Cases, IRAP) :
172 243 Etienne Pallier
	- PHP : 5.5.9 (ne suffit plus)
173 239 Etienne Pallier
	- MYSQL : 5.5.47 
174 239 Etienne Pallier
	- Apache : 2.4.7
175 239 Etienne Pallier
176 263 Etienne Pallier
*- (17/1/18) Mac OS 10.13.2 avec brew* (version dev/test Etienne Pallier, IRAP) :
177 261 Etienne Pallier
	- PHP 7.2.0 + MySQL 5.7.20 + Apache 2.4.28
178 261 Etienne Pallier
179 239 Etienne Pallier
*- Mac OS 10.12.5 avec XAMPP* 5.6.3 et 7.1 (version dev/test Etienne Pallier, IRAP) :
180 1 Etienne Pallier
	- PHP 5.6.3 + MySQL 5.6.21 + Apache 2.4.10
181 261 Etienne Pallier
	- PHP7.1.6 + MariaDB 10.1.24 + Apache 2.4.25
182 238 Etienne Pallier
183 242 Etienne Pallier
h3. A/ PREREQUIS
184 1 Etienne Pallier
185 61 Etienne Pallier
Le logiciel nécessite une combinaison "AMP" pour fonctionner, soit les 3 pré-requis suivants :
186 62 Etienne Pallier
187 73 Etienne Pallier
* un serveur web Apache
188 73 Etienne Pallier
* un serveur de base de données Mysql
189 242 Etienne Pallier
* le langage Php en version 5.6 minimum ou 7.x (recommandé)
190 1 Etienne Pallier
191 68 Etienne Pallier
Si ce tiercé est déjà présent sur votre OS, vous pouvez passer à l'étape suivante (B/ Installation), et revenir ici seulement en cas de problème de configuration.
192 63 Etienne Pallier
193 61 Etienne Pallier
Sur Windows, vous pouvez utiliser Wampserver ou XAMPP qui regroupent ces 3 éléments (il n'y aura rien d'autre à faire ensuite).
194 61 Etienne Pallier
195 140 Etienne Pallier
Sur Mac, vous pouvez utiliser XAMPP (ou autre équivalent) ou bien installer chacun des 3 éléments séparément soit via MacPort (ou HomeBrew) soit en téléchargeant le paquet binaire Mac correspondant à chaque élément.
196 61 Etienne Pallier
197 141 Etienne Pallier
*Voici la démarche à suivre sur Linux* :
198 1 Etienne Pallier
199 75 Etienne Pallier
h4. *1) Installation des prérequis*
200 72 Etienne Pallier
201 266 Etienne Pallier
202 268 Etienne Pallier
* *Exemple pour Mac OS 10.13 avec brew (fait en janvier 2018) :*
203 1 Etienne Pallier
Dans le détail : https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions
204 315 Etienne Pallier
<pre>
205 314 Etienne Pallier
Install Xcode:
206 314 Etienne Pallier
$ xcode-select --install
207 314 Etienne Pallier
208 1 Etienne Pallier
Install homebrew :
209 314 Etienne Pallier
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
210 316 Etienne Pallier
$ brew --version
211 316 Etienne Pallier
$ brew doctor
212 316 Etienne Pallier
$ brew tap homebrew/php
213 316 Etienne Pallier
$ brew update
214 316 Etienne Pallier
$ brew upgrade
215 316 Etienne Pallier
216 316 Etienne Pallier
Install Apache:
217 316 Etienne Pallier
Stop pre-installed Mac OS Apache:
218 316 Etienne Pallier
$ sudo apachectl stop
219 316 Etienne Pallier
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
220 316 Etienne Pallier
Install brew version:
221 316 Etienne Pallier
$ brew install httpd
222 316 Etienne Pallier
$ sudo brew services start httpd
223 316 Etienne Pallier
Go http://localhost:8080 and check it displays "It Works!"
224 316 Etienne Pallier
$ sudo apachectl -k restart
225 316 Etienne Pallier
$ tail -f /usr/local/var/log/httpd/error_log
226 316 Etienne Pallier
$ sudo apachectl start
227 316 Etienne Pallier
$ sudo apachectl stop
228 316 Etienne Pallier
$ sudo apachectl -k restart
229 316 Etienne Pallier
Edit /usr/local/etc/httpd/httpd.conf :
230 316 Etienne Pallier
- Listen 80 instead of 8080
231 316 Etienne Pallier
- you can change DocumentRoot "/usr/local/var/www" if you want (like DocumentRoot /Users/your_user/Sites, but I did not)
232 316 Etienne Pallier
- <Directory /usr/local/var/www> : AllowOverride All
233 316 Etienne Pallier
- uncomment LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
234 316 Etienne Pallier
- user and group : by default "daemon" (or _www), but you could change to 
235 316 Etienne Pallier
User your_user
236 316 Etienne Pallier
Group staff
237 316 Etienne Pallier
(I did not)
238 316 Etienne Pallier
- ServerName localhost
239 316 Etienne Pallier
$ sudo apachectl -k restart
240 316 Etienne Pallier
Go to http://localhost:80 and check it displays "It Works!"
241 316 Etienne Pallier
242 316 Etienne Pallier
Install PHP (as many versions as you want):
243 316 Etienne Pallier
$ brew install php56 --with-httpd
244 317 Etienne Pallier
$ brew install php56-intl
245 316 Etienne Pallier
$ brew unlink php56
246 316 Etienne Pallier
$ brew install php70 --with-httpd
247 317 Etienne Pallier
$ brew install php70-intl
248 316 Etienne Pallier
$ brew unlink php70
249 316 Etienne Pallier
$ brew install php71 --with-httpd
250 317 Etienne Pallier
$ brew install php71-intl
251 316 Etienne Pallier
$ brew unlink php71
252 316 Etienne Pallier
$ brew install php72 --with-httpd
253 317 Etienne Pallier
$ brew install php72-intl
254 316 Etienne Pallier
Also, you may have the need to tweak configuration settings of PHP to your needs. A common thing to change is the memory setting, or the date.timezone configuration. The php.ini files for each version of PHP are located in the following directories:
255 316 Etienne Pallier
/usr/local/etc/php/5.6/php.ini
256 316 Etienne Pallier
/usr/local/etc/php/7.0/php.ini
257 316 Etienne Pallier
/usr/local/etc/php/7.1/php.ini
258 316 Etienne Pallier
/usr/local/etc/php/7.2/php.ini
259 316 Etienne Pallier
Let's switch back to the first PHP version now:
260 316 Etienne Pallier
$ brew unlink php72
261 316 Etienne Pallier
$ brew link php56
262 316 Etienne Pallier
263 316 Etienne Pallier
Apache PHP Setup:
264 317 Etienne Pallier
Edit /usr/local/etc/httpd/httpd.conf.
265 317 Etienne Pallier
- Modify the paths as follows:
266 317 Etienne Pallier
LoadModule php5_module    /usr/local/opt/php56/libexec/apache2/libphp5.so
267 317 Etienne Pallier
LoadModule php7_module    /usr/local/opt/php70/libexec/apache2/libphp7.so
268 317 Etienne Pallier
LoadModule php7_module    /usr/local/opt/php71/libexec/apache2/libphp7.so
269 317 Etienne Pallier
LoadModule php7_module    /usr/local/opt/php72/libexec/apache2/libphp7.so
270 317 Etienne Pallier
We can only have one module processing PHP at a time, so for now, comment out all but the php56 entry:
271 317 Etienne Pallier
LoadModule php5_module    /usr/local/opt/php56/libexec/apache2/libphp5.so
272 317 Etienne Pallier
#LoadModule php7_module    /usr/local/opt/php70/libexec/apache2/libphp7.so
273 317 Etienne Pallier
#LoadModule php7_module    /usr/local/opt/php71/libexec/apache2/libphp7.so
274 317 Etienne Pallier
#LoadModule php7_module    /usr/local/opt/php72/libexec/apache2/libphp7.so
275 317 Etienne Pallier
- Add these lines :
276 317 Etienne Pallier
<IfModule dir_module>
277 317 Etienne Pallier
    DirectoryIndex index.php index.html
278 317 Etienne Pallier
</IfModule>
279 317 Etienne Pallier
<FilesMatch \.php$>
280 317 Etienne Pallier
    SetHandler application/x-httpd-php
281 317 Etienne Pallier
</FilesMatch>
282 317 Etienne Pallier
$ sudo apachectl -k restart
283 316 Etienne Pallier
284 317 Etienne Pallier
Validating PHP Installation:
285 317 Etienne Pallier
Simply create a file called info.php in your DocumentRoot folder (/usr/local/var/www/ or Sites/). In that file, just enter the line:
286 317 Etienne Pallier
<?php phpinfo();
287 317 Etienne Pallier
Go to http://localhost/info.php
288 316 Etienne Pallier
289 317 Etienne Pallier
PHP Switcher Script:
290 316 Etienne Pallier
291 316 Etienne Pallier
292 317 Etienne Pallier
293 315 Etienne Pallier
</pre>
294 317 Etienne Pallier
295 266 Etienne Pallier
296 266 Etienne Pallier
297 268 Etienne Pallier
* *Exemple pour ScientificLinux (CentOS) 6.4 (fait en juillet 2017) :*
298 248 Etienne Pallier
299 248 Etienne Pallier
    Pour mettre à jour PHP de la 5.6 à la 7.1 : 
300 248 Etienne Pallier
    --> https://blog.remirepo.net/post/2016/12/05/Install-PHP-7.1-on-CentOS-RHEL-or-Fedora
301 248 Etienne Pallier
<pre>
302 249 Etienne Pallier
$ sudo yum update kernel
303 249 Etienne Pallier
$ sudo yum update
304 249 Etienne Pallier
305 248 Etienne Pallier
$ sudo yum install yum-utils
306 248 Etienne Pallier
$ sudo yum-config-manager --enable remi-php71
307 248 Etienne Pallier
$ sudo yum update
308 248 Etienne Pallier
=> mais il y a un conflit à cause de phpmyadmin, donc je supprime ce package :
309 248 Etienne Pallier
$ sudo yum erase phpmyadmin
310 248 Etienne Pallier
$ sudo yum update
311 248 Etienne Pallier
312 248 Etienne Pallier
$ php -v => 7.1
313 248 Etienne Pallier
314 248 Etienne Pallier
Redémarrage Apache:
315 248 Etienne Pallier
$ sudo /etc/init.d/httpd restart
316 249 Etienne Pallier
317 249 Etienne Pallier
Tentative de réinstaller phpmyadmin
318 249 Etienne Pallier
$ sudo yum install phpmyadmin
319 249 Etienne Pallier
=> toujours un conflit, je laisse tomber, dommage...
320 251 Etienne Pallier
321 251 Etienne Pallier
Tentative d'accelerer php 7:
322 253 Etienne Pallier
(https://community.1and1.com/php-7)
323 1 Etienne Pallier
$ sudo yum install php71-php-opcache
324 253 Etienne Pallier
Creer un repertoire .opcache/ dans le webroot/ du projet:
325 253 Etienne Pallier
$ cd webroot/
326 253 Etienne Pallier
$ mkdir .opcache/
327 253 Etienne Pallier
$ chmod 777 .opcache/
328 253 Etienne Pallier
329 253 Etienne Pallier
Modifier php.ini :
330 253 Etienne Pallier
$ sudo vi /etc/php.ini
331 253 Etienne Pallier
Ajout des lignes suivantes :
332 253 Etienne Pallier
; EP added this for opcache (Jul 2017):
333 253 Etienne Pallier
zend_extension=opcache.so;
334 253 Etienne Pallier
opcache.enable=1;opcache.memory_consumption=32;
335 253 Etienne Pallier
opcache.interned_strings_buffer=8;
336 253 Etienne Pallier
opcache.max_accelerated_files=3000;
337 253 Etienne Pallier
opcache.revalidate_freq=180;
338 253 Etienne Pallier
opcache.fast_shutdown=0;
339 253 Etienne Pallier
opcache.enable_cli=0;
340 253 Etienne Pallier
opcache.revalidate_path=0;
341 253 Etienne Pallier
opcache.validate_timestamps=2;
342 253 Etienne Pallier
opcache.max_file_size=0;
343 253 Etienne Pallier
opcache.file_cache=/projects/labinvent/labinvent2/webroot/.opcache;
344 253 Etienne Pallier
opcache.file_cache_only=1;
345 253 Etienne Pallier
346 253 Etienne Pallier
Faire un lien vers l'extension opcache.so
347 253 Etienne Pallier
$ cd /usr/lib64/php/modules/
348 253 Etienne Pallier
$ sudo ln -s /opt/remi/php71/root/usr/lib64/php/modules/opcache.so
349 253 Etienne Pallier
350 253 Etienne Pallier
Verifier que .opcache/ contient bien des données (du cache)
351 253 Etienne Pallier
352 253 Etienne Pallier
Mais je ne vois pas vraiment d'accélération...
353 248 Etienne Pallier
</pre>
354 248 Etienne Pallier
    
355 248 Etienne Pallier
356 248 Etienne Pallier
357 268 Etienne Pallier
* *Exemple pour Cent OS 6.7 (fait en 2016) :*
358 35 Alexandre Cases
359 130 Thibaud Ajas
    Mettre à jour le serveur:
360 130 Thibaud Ajas
<pre>
361 1 Etienne Pallier
$ sudo yum kernel
362 1 Etienne Pallier
(restart)
363 1 Etienne Pallier
$ sudo yum update
364 130 Thibaud Ajas
</pre>
365 1 Etienne Pallier
366 130 Thibaud Ajas
    Pour installer Apache, MySQL & PHP 5.3 :
367 130 Thibaud Ajas
    --> https://www.zerostopbits.com/how-to-install-apache-mysql-and-php-on-centos-6-7/
368 35 Alexandre Cases
369 130 Thibaud Ajas
    Pour mettre à jour PHP de la 5.3 à la 5.6
370 130 Thibaud Ajas
    --> https://www.zerostopbits.com/how-to-upgrade-php-5-3-to-php-5-6-on-centos-6-7/
371 1 Etienne Pallier
372 130 Thibaud Ajas
    Mettre à jour Mysql (version 5.1 à 5.5):
373 130 Thibaud Ajas
<pre>
374 71 Etienne Pallier
$ sudo yum update
375 1 Etienne Pallier
</pre>
376 1 Etienne Pallier
377 70 Etienne Pallier
378 268 Etienne Pallier
* *Exemple pour une distribution UBuntu 14.04.4 (fait en 2016) et 14.04.5 (Mai 2017) :*
379 1 Etienne Pallier
380 243 Etienne Pallier
%{color:red;} /!\ Par défaut, la version de php installée ici est php5.5 qui ne suffit plus. Si vous souhaitez installer la version 5.6, remplacez TOUS les "php5" par "php5.6", et si vous voulez la version 7.1, remplacez TOUS les "php5" par "php7.1" /!\%
381 1 Etienne Pallier
382 129 Thibaud Ajas
    Pour commencer il faut mettre à jour les "repository" de apt :
383 129 Thibaud Ajas
<pre>
384 1 Etienne Pallier
$ sudo apt-get update && sudo apt-get upgrade
385 129 Thibaud Ajas
</pre>
386 1 Etienne Pallier
387 129 Thibaud Ajas
    Installer un serveur web (Apache) :
388 129 Thibaud Ajas
<pre>
389 72 Etienne Pallier
$ sudo apt-get install apache2
390 129 Thibaud Ajas
</pre>
391 1 Etienne Pallier
392 129 Thibaud Ajas
    Installer un serveur de base de données (MySQL):
393 1 Etienne Pallier
<pre>
394 1 Etienne Pallier
$ sudo apt-get install mysql-server 
395 1 Etienne Pallier
</pre>
396 72 Etienne Pallier
397 129 Thibaud Ajas
    Installer le langage PHP en version 5.5.9 minimum (5.6 recommandé)
398 129 Thibaud Ajas
<pre>
399 1 Etienne Pallier
$ sudo apt-get install php5 php-pear
400 63 Etienne Pallier
$ sudo apt-get install php5-mysql
401 1 Etienne Pallier
</pre>
402 119 Etienne Pallier
403 173 Thibaud Ajas
    Installer phpmyadmin et le configurer
404 173 Thibaud Ajas
<pre>
405 173 Thibaud Ajas
$ sudo apt-get install phpmyadmin
406 177 Thibaud Ajas
$ sudo dpkg-reconfigure -plow phpmyadmin
407 173 Thibaud Ajas
</pre>
408 173 Thibaud Ajas
/!\ Lorsque vous aurez l'écran suivant, n'oubliez pas d'appuyer sur la touche "espace" avant la touche "entrée" /!\
409 173 Thibaud Ajas
410 173 Thibaud Ajas
!https://i.stack.imgur.com/Q9qYW.png!
411 173 Thibaud Ajas
412 173 Thibaud Ajas
Afin d'avoir cela :
413 173 Thibaud Ajas
414 173 Thibaud Ajas
!https://i.stack.imgur.com/VIh0U.png!
415 173 Thibaud Ajas
416 175 Thibaud Ajas
Si, en visitant http://localhost/phpmyadmin/ vous avez l'erreur "The mcrypt extension is missing. Please check your PHP configuration.", executez les commades suivantes :
417 175 Thibaud Ajas
<pre>
418 175 Thibaud Ajas
$ sudo apt-get install php5-mcrypt
419 175 Thibaud Ajas
$ sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
420 175 Thibaud Ajas
$ sudo php5enmod mcrypt 
421 175 Thibaud Ajas
$ sudo service apache2 restart
422 175 Thibaud Ajas
</pre>
423 175 Thibaud Ajas
424 268 Etienne Pallier
* *Exemple pour une distribution Fedora 20+ (fait en avril 2017) :*
425 114 Etienne Pallier
426 130 Thibaud Ajas
    https://www.digitalocean.com/community/tutorials/how-to-install-lamp-linux-apache-mysql-php-on-fedora
427 1 Etienne Pallier
428 130 Thibaud Ajas
    Pour commencer il faut mettre à jour l'OS :
429 129 Thibaud Ajas
<pre>
430 114 Etienne Pallier
$ sudo dnf update dnf
431 1 Etienne Pallier
$ sudo dnf update kernel
432 1 Etienne Pallier
$ sudo dnf update
433 129 Thibaud Ajas
</pre>
434 115 Etienne Pallier
435 130 Thibaud Ajas
    Installer git:
436 129 Thibaud Ajas
<pre>
437 115 Etienne Pallier
$ sudo dnf install git
438 1 Etienne Pallier
</pre>
439 115 Etienne Pallier
440 130 Thibaud Ajas
    Installer php :
441 129 Thibaud Ajas
<pre>
442 115 Etienne Pallier
$ sudo dnf install php
443 1 Etienne Pallier
$ sudo dnf install php-mysql
444 129 Thibaud Ajas
</pre>
445 115 Etienne Pallier
446 130 Thibaud Ajas
    Installer un serveur web (Apache) :
447 129 Thibaud Ajas
<pre>
448 115 Etienne Pallier
$ sudo dnf install httpd
449 116 Etienne Pallier
$ sudo systemctl enable httpd
450 116 Etienne Pallier
(ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service')
451 116 Etienne Pallier
$ sudo systemctl start httpd
452 129 Thibaud Ajas
</pre>
453 1 Etienne Pallier
454 130 Thibaud Ajas
    Installer un serveur de base de données (MySQL):
455 129 Thibaud Ajas
<pre>
456 115 Etienne Pallier
$ sudo dnf install mariadb mariadb-server -y
457 116 Etienne Pallier
$ sudo systemctl enable mariadb
458 116 Etienne Pallier
(ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service')
459 115 Etienne Pallier
$ sudo systemctl start mariadb
460 118 Etienne Pallier
$ sudo mysql_secure_installation
461 129 Thibaud Ajas
</pre>
462 118 Etienne Pallier
463 158 Etienne Pallier
    (OPTIONNEL) Installer phpmyadmin (par defaut accessible uniquement depuis localhost), utile pour gérer plus facilement la BD :
464 129 Thibaud Ajas
<pre>
465 118 Etienne Pallier
$ sudo dnf install phpmyadmin
466 1 Etienne Pallier
$ sudo systemctl restart httpd
467 158 Etienne Pallier
468 158 Etienne Pallier
Pour Ubuntu:
469 158 Etienne Pallier
sudo apt-get php5-mcrypt
470 158 Etienne Pallier
sudo apt-get install phpmyadmin
471 158 Etienne Pallier
Pensez à activer l'extension mcrypt : sudo php5enmod mcrypt
472 158 Etienne Pallier
</pre>
473 158 Etienne Pallier
474 114 Etienne Pallier
</pre>
475 114 Etienne Pallier
476 75 Etienne Pallier
h4. *2) Configuration des prérequis*
477 1 Etienne Pallier
478 76 Etienne Pallier
479 143 Etienne Pallier
480 63 Etienne Pallier
481 264 Etienne Pallier
* *+Configuration de Php+*
482 226 Etienne Pallier
Pour savoir où est le fichier php.ini:
483 226 Etienne Pallier
php -r "print phpinfo();" | grep ".ini"
484 226 Etienne Pallier
(sur XAMPP, c'est dans /Applications/XAMPP/xamppfiles/etc/php.ini)
485 1 Etienne Pallier
486 145 Etienne Pallier
 * *Extension PHP "intl"*:
487 145 Etienne Pallier
Vérifier qu'elle est activée dans le php.ini:
488 1 Etienne Pallier
<pre>
489 80 Etienne Pallier
php --ini|grep intl
490 80 Etienne Pallier
Sinon, l'ajouter dans le php.ini:
491 1 Etienne Pallier
extension=intl.so
492 1 Etienne Pallier
</pre>
493 1 Etienne Pallier
Vérifier qu'elle est bien installée :
494 1 Etienne Pallier
<pre>
495 1 Etienne Pallier
$ php -m| grep intl
496 1 Etienne Pallier
(ça devrait retourner "intl")
497 1 Etienne Pallier
498 1 Etienne Pallier
Sinon, l'installer:
499 1 Etienne Pallier
500 1 Etienne Pallier
Ubuntu:
501 1 Etienne Pallier
$ sudo apt-get install php5-intl
502 1 Etienne Pallier
503 1 Etienne Pallier
CentOS:
504 1 Etienne Pallier
$ sudo yum install php-intl
505 1 Etienne Pallier
506 273 Etienne Pallier
MacOS avec brew:
507 275 Etienne Pallier
Installer l'extension 
508 273 Etienne Pallier
Les extensions sont recherchées dans /usr/local/Cellar/php72/7.2.0_11/lib/php/
509 273 Etienne Pallier
$ brew install php72-intl
510 1 Etienne Pallier
Fichier créé /usr/local/etc/php/7.2/conf.d/ext-intl.ini donne chemin de l'extension : /usr/local/opt/php72-intl/intl.so
511 274 Etienne Pallier
(Pour info, le fichier php.ini est dans /usr/local/etc/php/7.2/php.ini, mais c'est inutile de le modifier)
512 273 Etienne Pallier
513 273 Etienne Pallier
514 1 Etienne Pallier
MacOS avec XAMPP: 
515 1 Etienne Pallier
cf http://stackoverflow.com/questions/27886117/php-intl-installation-on-xampp
516 1 Etienne Pallier
Il se pourrait que vous ayez besoin de ré-exécuter l'installeur de XAMPP afin de cocher l'option "XAMPP Developer Files", si vous ne l'aviez pas déjà fait lors de votre installation de XAMPP
517 1 Etienne Pallier
cd /Applications/XAMPP/bin
518 1 Etienne Pallier
sudo ./pecl install intl
519 1 Etienne Pallier
(Vérifier qu'elle a bien été installée dans /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/)
520 1 Etienne Pallier
Attention, cette méthode semble ne plus fonctionner avec XAMPP 7 (qui inclut php 7).
521 1 Etienne Pallier
Sur Mac, j'ai dû installer l'extension intl via macport :
522 1 Etienne Pallier
sudo port install php71-intl
523 1 Etienne Pallier
Puis copie de cette extension dans le dossier de XAMPP :
524 1 Etienne Pallier
sudo cp /opt/local/lib/php71/extensions/no-debug-non-zts-20160303/intl.so XAMPP_716-0/xamppfiles/lib/php/extensions/no-debug-non-zts-20160303/
525 1 Etienne Pallier
Redémarrer Apache
526 1 Etienne Pallier
</pre>
527 273 Etienne Pallier
528 273 Etienne Pallier
529 1 Etienne Pallier
530 1 Etienne Pallier
 * *Dossier de log (optionnel)*:
531 1 Etienne Pallier
Dans le fichier /etc/php5/apache2/php.ini (ou /etc/php.ini sur CentOS), vous devez positionner votre répertoire de log :
532 1 Etienne Pallier
<pre>
533 1 Etienne Pallier
error_reporting = E_ALL
534 1 Etienne Pallier
error_log = /var/log/php/error.log
535 1 Etienne Pallier
max_input_time = 30
536 1 Etienne Pallier
</pre>
537 1 Etienne Pallier
Ensuite il vous faudra peut-être créer le dossier en question et donner à Apache les droits sur ce dossier (www-data pour Ubuntu, apache pour CentOS...):
538 1 Etienne Pallier
<pre>
539 1 Etienne Pallier
sudo mkdir /var/log/php
540 1 Etienne Pallier
sudo chown www-data /var/log/php
541 1 Etienne Pallier
</pre>
542 269 Etienne Pallier
543 271 Etienne Pallier
 * *Recharger la configuration du serveur Web*
544 270 Etienne Pallier
<pre>
545 270 Etienne Pallier
$ sudo service httpd reload
546 270 Etienne Pallier
(CentOS: $ sudo systemctl reload httpd)
547 276 Etienne Pallier
(MacOS: $ sudo apachectl restart)
548 270 Etienne Pallier
</pre>
549 269 Etienne Pallier
550 269 Etienne Pallier
551 1 Etienne Pallier
552 272 Etienne Pallier
* *OPTIONNEL - +Configuration du serveur web+ (Apache)*
553 270 Etienne Pallier
554 269 Etienne Pallier
Ces configurations sont nécessaires sur Ubuntu, mais pas forcément sur CentOS/Fedora :
555 269 Etienne Pallier
556 269 Etienne Pallier
 * KeepAlive:
557 269 Etienne Pallier
Editer le fichier de configuration du serveur web (/etc/apache2/apache2.conf sur Ubuntu, /etc/httpd/conf/http.conf sur CentOS/Fedora) et mettre le paramêtre "KeepAlive" à "Off" :
558 269 Etienne Pallier
<pre>
559 269 Etienne Pallier
KeepAlive Off
560 269 Etienne Pallier
</pre>
561 269 Etienne Pallier
562 269 Etienne Pallier
 * event et prefork modules:
563 269 Etienne Pallier
Par défaut Apache utilise un "event module" et PHP un "prefork module".
564 269 Etienne Pallier
Il faut désactiver le 1er module et activer le second :
565 269 Etienne Pallier
<pre>
566 269 Etienne Pallier
sudo a2dismod mpm_event
567 269 Etienne Pallier
sudo a2enmod mpm_prefork
568 269 Etienne Pallier
</pre>
569 269 Etienne Pallier
570 269 Etienne Pallier
 * Activer le mode rewrite de Apache:
571 269 Etienne Pallier
<pre>
572 269 Etienne Pallier
sudo a2enmod rewrite
573 269 Etienne Pallier
</pre>
574 269 Etienne Pallier
575 269 Etienne Pallier
 * Autoriser les fichiers .htaccess sur le site :
576 269 Etienne Pallier
(cf http://book.cakephp.org/3.0/fr/installation.html#url-rewriting)
577 269 Etienne Pallier
Allez dans le fichier /etc/apache2/apache2.conf (ou httpd.conf sur CentOS), vérifier que la propriété 'AllowOverride' soit à la valeur 'All' pour le dossier Labinvent : 
578 269 Etienne Pallier
<pre>
579 269 Etienne Pallier
<Directory /var/www/html/labinvent>
580 269 Etienne Pallier
  Options FollowSymLinks
581 269 Etienne Pallier
  AllowOverride All
582 269 Etienne Pallier
</Directory>
583 269 Etienne Pallier
</pre>
584 269 Etienne Pallier
NB : Si Labinvent n'est pas dans le repertoire des sites webs :
585 269 Etienne Pallier
- faire un lien dans le dossier web racine de Apache (/var/www/html/) vers le repertoire d'installation de Labinvent
586 269 Etienne Pallier
- sinon, vous pouvez tenter de mettre son chemin absolu :
587 269 Etienne Pallier
<pre>
588 269 Etienne Pallier
<Directory /chemin/abosolu/vers/labinvent>
589 269 Etienne Pallier
</pre>
590 269 Etienne Pallier
NB: Une autre solution plus "propre" consisterait à créer un virtual host dédié pour Labinvent, sur un port 808x (8081, 8082, ...)
591 269 Etienne Pallier
(TODO: mettre ici un exemple de config)
592 1 Etienne Pallier
593 271 Etienne Pallier
 * *Recharger la configuration du serveur Web*
594 83 Etienne Pallier
<pre>
595 82 Etienne Pallier
$ sudo service httpd reload
596 146 Etienne Pallier
(CentOS: $ sudo systemctl reload httpd)
597 276 Etienne Pallier
(MacOS: $ sudo apachectl restart)
598 83 Etienne Pallier
</pre>
599 82 Etienne Pallier
600 149 Etienne Pallier
h3. B/ Installation du logiciel LabInvent
601 1 Etienne Pallier
602 150 Etienne Pallier
<pre>
603 26 Etienne Pallier
cd install/
604 26 Etienne Pallier
./installation.sh
605 150 Etienne Pallier
</pre>
606 150 Etienne Pallier
607 265 Etienne Pallier
Attention: sur Mac, utiliser installation-macos.sh au lieu de installation.sh
608 265 Etienne Pallier
609 1 Etienne Pallier
(vous pourriez éventuellement le faire en tant qu'administrateur "root", mais ça n'est pas nécessaire, le script fera quelques petits "sudo" seulement au besoin).
610 1 Etienne Pallier
(Conseil : à la plupart des questions, laissez les réponses par défaut)
611 23 Etienne Pallier
612 96 Etienne Pallier
---
613 96 Etienne Pallier
614 161 Etienne Pallier
---
615 1 Etienne Pallier
616 161 Etienne Pallier
h3. C/ TESTS
617 161 Etienne Pallier
618 282 Etienne Pallier
* Verifiez que la BD d'inventaire (par défaut "labinvent" sauf si vous lui avez donné un autre nom) à bien été créée (avec phpmyadmin par exemple).
619 161 Etienne Pallier
620 219 Etienne Pallier
* Verifiez que les tests passent :
621 283 Etienne Pallier
placez-vous à la racine du projet, exécutez la commande ./TESTS.sh
622 283 Etienne Pallier
(équivalent à 'vendor/bin/phpunit' ; si ça ne marche pas, essayez 'vendor/phpunit/phpunit/phpunit')
623 284 Etienne Pallier
(Php7 utilise Phpunit 6 alors que Php 5 utilise Phpunit PHPUnit 5.7)
624 219 Etienne Pallier
625 244 Etienne Pallier
* Performance :
626 244 Etienne Pallier
627 277 Etienne Pallier
 * Sur Mac OS 10.13 avec brew :
628 277 Etienne Pallier
629 287 Etienne Pallier
  * Avec php5.6, les 94 tests s'exécutent en 55 secondes
630 287 Etienne Pallier
  * Avec php7.2, les 94 tests s'exécutent en 49 secondes
631 277 Etienne Pallier
632 277 Etienne Pallier
 * Sur Mac OS 10.12 avec XAMPP :
633 245 Etienne Pallier
634 245 Etienne Pallier
  * En php5.6, les 53 tests s'exécutent en 25-26 secondes
635 247 Etienne Pallier
  * En php7.1, les 53 tests s'exécutent en 9-10 secondes, soit 2 à 3 fois plus vite !!! (vive Php 7)
636 245 Etienne Pallier
637 255 Etienne Pallier
 * Sur ScientificLinux (CentOS) 6.4 (serveur de test pweb) :
638 245 Etienne Pallier
639 245 Etienne Pallier
  * En php5.6, les 53 tests s'exécutent en 20 secondes
640 252 Etienne Pallier
  * En php7.1, les 53 tests s'exécutent en 16-17 secondes, soit pas beaucoup plus rapide, bizarre...
641 254 Etienne Pallier
642 254 Etienne Pallier
 * Sur CentOS 6.4 (serveur de production), dans une VM :
643 254 Etienne Pallier
  * En php5.6 avec phpunit 5.7, les 53 tests s'exécutent en 47 secondes !!!
644 254 Etienne Pallier
  * En php7.1, les 53 tests s'exécutent en ??? (Php7, c'est pour très bientôt...)
645 244 Etienne Pallier
 
646 219 Etienne Pallier
647 219 Etienne Pallier
PS : Pour n'exécuter que certains tests :
648 219 Etienne Pallier
649 1 Etienne Pallier
<pre>
650 222 Etienne Pallier
Marquer le(s) test voulu avec une annotation :
651 219 Etienne Pallier
/**
652 219 Etienne Pallier
 * @group failing
653 219 Etienne Pallier
 * Tests the api edit form
654 219 Etienne Pallier
 */
655 1 Etienne Pallier
public function testEditAction()
656 219 Etienne Pallier
657 222 Etienne Pallier
Ensuite, exécuter avec : phpunit --group failing
658 219 Etienne Pallier
659 219 Etienne Pallier
Attention, ne pas oublier d'enlever ces annotations avant le commit !
660 219 Etienne Pallier
661 219 Etienne Pallier
On peut attribuer plusieurs groupes à un test :
662 219 Etienne Pallier
/**
663 219 Etienne Pallier
  * @group failing
664 219 Etienne Pallier
  * @group bug2204 
665 219 Etienne Pallier
  */
666 1 Etienne Pallier
public function testSomethingElse()
667 221 Etienne Pallier
</pre>
668 161 Etienne Pallier
669 161 Etienne Pallier
670 161 Etienne Pallier
---
671 161 Etienne Pallier
672 161 Etienne Pallier
h3. D/ CONFIGURATION DU SITE WEB
673 161 Etienne Pallier
674 121 Thibaud Ajas
Le site est maintenant installé, il vous faut maintenant le configurer.
675 281 Etienne Pallier
Si vous voulez le conserver, le script de creation de la BD est database/build.sql (s'il existait déjà avant votre installation, il a été sauvegardé dans build.sql.ORIG).
676 278 Etienne Pallier
Votre fichier de configuration est config/app.php (s'il existait déjà avant votre installation, il a été sauvegardé dans app.php.ORIG).
677 121 Thibaud Ajas
678 290 Etienne Pallier
* Tester l'accès web à l'application : http://localhost/labinvent (ou bien http://localhost:8081 si vous avez créé un virtual host sur le port 8081 pour labinvent)
679 98 Etienne Pallier
Vous devriez arriver par défaut sur une page correspondant au mode install, elle vous indique la bonne configuration de l'application et de ses dépendances.
680 280 Etienne Pallier
Vérifier simplement que TOUS LES POINTS SONT AU VERT.
681 98 Etienne Pallier
(La page affichera un message si l'URL-Rewriting ne fonctionne pas correctement).
682 98 Etienne Pallier
Si tout est au vert, passez à l'étape suivante (D/ Configuration de l'application).
683 280 Etienne Pallier
Sinon (il y a des points rouges), reportez-vous ci-dessous à l'extension qui pose problème, pour l'installer ou la configurer:
684 1 Etienne Pallier
685 89 Etienne Pallier
* Extension PHP "mbstring" et librairie "zlib"
686 90 Etienne Pallier
La collection de librairies est normalement déja installée avec PHP en tant que dépendance, sinon faire :
687 90 Etienne Pallier
<pre>
688 90 Etienne Pallier
sudo apt-get install libapache2-mod-php5
689 90 Etienne Pallier
</pre>
690 6 Alexandre Cases
=> Redémarrer votre serveur et vérifier que la ligne correspondant à l'extension soit passée au vert.
691 6 Alexandre Cases
692 90 Etienne Pallier
* Librairie PHP "php-gd" 
693 90 Etienne Pallier
<pre>
694 90 Etienne Pallier
sudo apt-get install php5-gd
695 90 Etienne Pallier
</pre>
696 1 Etienne Pallier
=> Redémarrer votre serveur et vérifier que la ligne correspondant à l'extension soit passée au vert.
697 1 Etienne Pallier
Si ce n'est toujours pas le cas, aller dans le fichier /etc/php5/apache2/php.ini :
698 6 Alexandre Cases
Vérifier que la ligne suivante est présente et décommentée (absence de ";" devant la ligne) sinon il faut la rajouter : 
699 6 Alexandre Cases
<pre>
700 6 Alexandre Cases
extension=gd.so
701 90 Etienne Pallier
</pre>
702 1 Etienne Pallier
703 1 Etienne Pallier
* URL-Rewriting
704 1 Etienne Pallier
Il est possible que le mode rewrite ne fonctionne pas correctement si les fichiers .htaccess dans la racine et dans webroot disparaissent. Sur certains systèmes les fichiers commençant par un point peuvent disparaitre lors d'une copie. Si c'est le cas pour vous, voici le contenu de ces deux fichiers et leurs emplacements : 
705 1 Etienne Pallier
<pre>
706 7 Alexandre Cases
Fichier ./.htaccess : 
707 1 Etienne Pallier
<IfModule mod_rewrite.c>
708 1 Etienne Pallier
    RewriteEngine on
709 1 Etienne Pallier
    RewriteRule    ^$    webroot/    [L]
710 1 Etienne Pallier
    RewriteRule    (.*) webroot/$1    [L]
711 1 Etienne Pallier
</IfModule>
712 1 Etienne Pallier
713 1 Etienne Pallier
Fichier ./webroot/.htaccess : 
714 1 Etienne Pallier
<IfModule mod_rewrite.c>
715 1 Etienne Pallier
    RewriteEngine On
716 1 Etienne Pallier
    RewriteCond %{REQUEST_FILENAME} !-f
717 1 Etienne Pallier
    RewriteRule ^ index.php [L]
718 27 Etienne Pallier
</IfModule>
719 280 Etienne Pallier
</pre>
720 280 Etienne Pallier
721 280 Etienne Pallier
* Une fois que tout est au vert, redémarrer votre serveur Web et vérifier que la ligne correspondant à l'extension manquante soit passée au vert.
722 280 Etienne Pallier
<pre>
723 280 Etienne Pallier
sudo service apache2 restart
724 280 Etienne Pallier
(ou simplement le recharger: utiliser "reload" au lieu de "restart")
725 32 Etienne Pallier
</pre>
726 94 Etienne Pallier
727 1 Etienne Pallier
728 95 Etienne Pallier
---
729 95 Etienne Pallier
730 162 Etienne Pallier
h3. E/ CONFIGURATION DU LOGICIEL D'INVENTAIRE
731 94 Etienne Pallier
732 291 Etienne Pallier
* Si vous n'y êtes pas déjà, allez sur la page d'accueil de LabInvent : http://localhost/labinvent (ou bien http://localhost:8081 si vous avez créé un virtual host sur le port 8081 pour labinvent)
733 291 Etienne Pallier
734 297 Etienne Pallier
* Depuis la page web de configuration "Configurer votre Labinvent", cliquez sur le lien "Editer la configuration générale" (en bas à gauche) pour configurer le logiciel, configurez selon vos besoins. ATTENTION, N'ACTIVEZ PAS LE MODE LDAP POUR LE MOMENT, on le fera plus tard.
735 300 Etienne Pallier
Cliquez sur "Valider"
736 289 Etienne Pallier
737 289 Etienne Pallier
* Maintenant, sortez du mode "installation" en cliquant sur le bouton "Stopper le mode installation"
738 292 Etienne Pallier
_Si vous voulez revenir au mode "installation", allez dans le dossier database/ et exécutez simplement ./mode_panique.sh (./mode_panique_macos.sh sur Mac OS) puis revenez sur la page d'accueil_
739 1 Etienne Pallier
740 293 Etienne Pallier
* Désactivez (manuellement) le mode DEBUG général (différent de celui proposé dans la configuration ci-dessus) :
741 294 Etienne Pallier
Allez à la racine du projet, et ouvrez votre fichier de configuration générale de labinvent (config/app.php)
742 34 Alexandre Cases
<pre>
743 294 Etienne Pallier
Allez environ à la ligne 12 (au début du fichier):
744 1 Etienne Pallier
'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN),
745 1 Etienne Pallier
746 293 Etienne Pallier
Et remplacez le true par false, comme ceci :
747 11 Alexandre Cases
'debug' => filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN),
748 11 Alexandre Cases
</pre>
749 1 Etienne Pallier
750 296 Etienne Pallier
* Connectez-vous à l'aide du login utilisateur créé lors de l'installation (par défaut "superadmin"), avec le mot de passe "login".
751 298 Etienne Pallier
Il vous permet de vous connecter en tant que "super administrateur" pour pouvoir configurer l'application.
752 298 Etienne Pallier
Vérifiez que c'est bien le cas : sur la page d'accueil, vous devriez avoir une ligne qui affiche "Vous êtes connecté en tant que Nom Prénom et avec le niveau d'authentification Super Administrateur."
753 296 Etienne Pallier
NB1 : Les autres comptes utilisateurs que le script d'installation aura créé ont aussi le même mot de passe par défaut : "login"
754 256 Etienne Pallier
NB2 : Il y a toujours un utilisateur par défaut en mode "SANS LDAP", il s'agit de l'utilisateur "_fake_ldap_user_" avec le mot de passe "_fake_ldap_user_pass" (il a le profil minimum, c'est à dire "Utilisateur" ; il est utile notamment pour les tests, afin de tester le profil "Utilisateur" accordé par défaut à toute personne du ldap qui n'a pas de privilège particulier)
755 28 Etienne Pallier
756 299 Etienne Pallier
* Si vous désirez encore modifier la configuration générale de l'application :
757 299 Etienne Pallier
Dans le menu latéral, cliquez sur le lien "Outils", puis sur "Configuration générale de l'application", puis sur "Editer la configuration"
758 1 Etienne Pallier
759 21 Alexandre Cases
* Ensuite retournez dans la liste des outils et cliquez sur "Gérer le contenu variable de l'application".
760 301 Etienne Pallier
Sur cette page vous aurez accès à toutes les données statiques communes aux matériels (catégories, groupes métier et techniques, types de suivi, ...). Vous pouvez en ajouter, en supprimer ou les modifier...
761 94 Etienne Pallier
762 1 Etienne Pallier
763 95 Etienne Pallier
---
764 94 Etienne Pallier
765 101 Etienne Pallier
h3. F/ Gestion de l'authentification des utilisateurs via un annuaire LDAP
766 43 Etienne Pallier
767 304 Etienne Pallier
Labinvent peut être utilisé avec un annuaire LDAP. Si c'est ce que vous voulez, voici comment faire.
768 1 Etienne Pallier
769 305 Etienne Pallier
*ATTENTION* : après être passé en mode LDAP, vous risquez de ne plus pouvoir vous connecter à l'application !!!
770 305 Etienne Pallier
Assurez-vous donc d'abord que votre login super administrateur (par défaut "superadmin") porte le MEME NOM que votre login ldap. Si c'est actuellement "superadmin", remplacez-le par votre login ldap. Pour cela, allez dans le menu "Outils", puis "Gérer les utilisateurs privilégiés", éditez l'utilisateur correspondant au super administrateur actuel, et changez son login et son mot de passe pour qu'ils correspondent exactement à ceux du LDAP. Déconnectez-vous puis reconnectez-vous avec ce nouveau login et vérifiez que vous êtes bien "super administrateur".
771 305 Etienne Pallier
Maintenant que c'est fait, vous pouvez passer en mode LDAP :
772 304 Etienne Pallier
773 306 Etienne Pallier
* Si ce n'est pas déjà fait, connectez-vous à l'aide de votre login super administrateur (qui doit maintenant correspondre à votre login LDAP)
774 304 Etienne Pallier
775 302 Etienne Pallier
* Dans le menu de gauche, cliquez sur le lien "Outils", puis sur "Configuration générale de l'application", puis sur "Editer la configuration"
776 302 Etienne Pallier
777 307 Etienne Pallier
* Cochez "Utilisation du LDAP". Les options de configuration du LDAP s'affichent alors. Modifiez-les selon vos besoins
778 302 Etienne Pallier
779 302 Etienne Pallier
* Cliquez sur "Valider"
780 302 Etienne Pallier
781 308 Etienne Pallier
* Une fois la connexion au LDAP configurée, toute personne enregistrée dans l'annuaire LDAP peut alors se connecter au logiciel. Vérifiez que vous arrivez à vous connecter avec votre login LDAP qui a le profil super administrateur
782 100 Etienne Pallier
783 1 Etienne Pallier
* Par défaut, un utilisateur provenant du LDAP a un statut de simple "utilisateur". Pour lui attribuer un rôle supérieur (privilégié), il faut aller dans "Gérer les utilisateurs privilégiés" du menu "Outils" pour l'y ajouter (liste déroulante des utilisateurs du LDAP), en lui attribuant un rôle.
784 44 Etienne Pallier
785 309 Etienne Pallier
Mode panique : Si vous ne pouvez plus vous connecter à l'application (après être passé en mode LDAP), vous pouvez toujours repasser en mode "installation" comme au début : allez dans le dossier database/ et exécutez simplement ./mode_panique.sh (./mode_panique_macos.sh sur Mac OS) puis revenez sur la page d'accueil et connectez-vous avec votre login super administrateur ("superadmin" par défaut)
786 303 Etienne Pallier
787 37 Etienne Pallier
---
788 43 Etienne Pallier
789 311 Etienne Pallier
h3. G/ Configuration de l'envoi des emails (optionnel)
790 168 Thibaud Ajas
791 169 Thibaud Ajas
* En tant que SuperAdministrateur, aller dans "Outils" -> "Configuration générale de l'application", cliquez sur "Editer la configuration" et décocher "Ne pas envoyer les mails de management en local".
792 169 Thibaud Ajas
793 310 Etienne Pallier
* L'envoi de mail est réalisé grâce à une adresse qu'il faut créer pour labinvent. Le protocole d'envoi est à définir dans config/app.php selon le serveur choisi. Lors de l'envoi d'un mail il faut utiliser le transport 'dev' en local.
794 169 Thibaud Ajas
795 310 Etienne Pallier
* Pour changer de mail et de transport, il faut aller dans la section Email/Transport de config/app.php, et vérifier/adapter a votre convenance le bloc suivant :
796 169 Thibaud Ajas
797 169 Thibaud Ajas
<pre>
798 169 Thibaud Ajas
'EmailTransport' => [
799 169 Thibaud Ajas
    	'default' => [
800 169 Thibaud Ajas
            'className' => 'Mail',
801 169 Thibaud Ajas
            // The following keys are used in SMTP transports
802 169 Thibaud Ajas
            'host' => 'localhost',
803 169 Thibaud Ajas
            'port' => 25,
804 169 Thibaud Ajas
            'timeout' => 30,
805 169 Thibaud Ajas
            'username' => 'user',
806 169 Thibaud Ajas
            'password' => 'secret',
807 169 Thibaud Ajas
            'client' => null,
808 169 Thibaud Ajas
            'tls' => null,
809 169 Thibaud Ajas
            'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
810 169 Thibaud Ajas
        ],
811 169 Thibaud Ajas
...
812 169 Thibaud Ajas
</pre>
813 169 Thibaud Ajas
814 168 Thibaud Ajas
---
815 168 Thibaud Ajas
816 198 Etienne Pallier
h3. H/ Etiquettes (optionnel)
817 180 Etienne Pallier
818 191 Etienne Pallier
!etiqueteuse.jpg!
819 191 Etienne Pallier
820 195 Etienne Pallier
Si la fonction d'impression d'étiquettes (ruban) de LabInvent vous intéresse, voici ce que vous devez faire
821 195 Etienne Pallier
822 1 Etienne Pallier
823 205 Etienne Pallier
*1) Etiqueteuse (environ 50€ HT)*
824 1 Etienne Pallier
825 202 Etienne Pallier
Vous devez acheter une étiqueteuse (titreuse) "Imprimante d'étiquettes - Dymo - LabelManager PnP - USB" et la brancher sur le port USB d'un poste (client) Windows ou Mac (pas de driver pour linux).
826 193 Etienne Pallier
827 187 Etienne Pallier
"Lien chez Lyreco (Réf : 4.976.543)":https://www.lyreco.com/webshop/FRBE/product-product-000000000004976543.html
828 183 Etienne Pallier
829 188 Etienne Pallier
"Lien chez OfficeDepot (Réf : 5375844)":http://www.officedepot.fr/a/pb/Imprimante-d-etiquettes-Dymo-PnP/pr=&id=5375844/
830 183 Etienne Pallier
831 190 Etienne Pallier
"Lien chez le constructeur DYMO (Réf : S0915350)":http://global.dymo.com/frFR/Products/LabelManager_PnP.html
832 190 Etienne Pallier
833 183 Etienne Pallier
<pre>
834 183 Etienne Pallier
    Pas de logiciel ni de pilote à installer. Le logiciel intégré s’ouvre à l’écran, prêt à l’emploi.
835 183 Etienne Pallier
    Garantie 2 ans.
836 183 Etienne Pallier
    Fonctionne avec les rubans D1 6, 9 et 12 mm.
837 183 Etienne Pallier
    Petite et compacte, elle trouve facilement sa place sur un bureau.
838 183 Etienne Pallier
    Batterie lithium-ion fournie, rechargeable par USB - pas d’adaptateur secteur ni de piles.
839 183 Etienne Pallier
    Personnalisez vos étiquettes avec les polices et graphiques de votre ordinateur.
840 183 Etienne Pallier
    Connectez-là à votre PC ou Mac et imprimez instantanément et très facilement des étiquettes professionnelles !
841 183 Etienne Pallier
    Connexion USB à votre PC ou Mac.
842 1 Etienne Pallier
</pre>
843 205 Etienne Pallier
844 205 Etienne Pallier
845 206 Etienne Pallier
*ATTENTION*: Ruban à commander : *D1 en 12mm*
846 1 Etienne Pallier
847 1 Etienne Pallier
848 194 Etienne Pallier
*2) Installation du logiciel DLS*
849 194 Etienne Pallier
850 1 Etienne Pallier
Pour pouvoir utiliser cette étiqueteuse (à ruban) avec le logiciel LabInvent, vous devez installer le logiciel DLS (DYMO LABEL SOFTWARE)
851 1 Etienne Pallier
852 259 Etienne Pallier
La dernière version testée sur MacOSX, Win7, et Win10 avec LabInvent est la v8.6.1 (DLS 8.5.4 aussi testé ok sur Win 7)
853 196 Etienne Pallier
854 213 Etienne Pallier
"Page de téléchargement du logiciel, section - The Latest Software & Drivers for all LabelWriters® and LabelManagers -":http://www.dymo.com/en-US/online-support/dymo-user-guides
855 192 Etienne Pallier
856 208 Etienne Pallier
"Plus de versions (si besoin)":http://www.dymo.com/fr-FR/labelmanager-pnp-label-maker
857 208 Etienne Pallier
858 208 Etienne Pallier
859 194 Etienne Pallier
860 194 Etienne Pallier
*3) Activation de la fonction d'impression sur LabInvent*
861 193 Etienne Pallier
862 201 Etienne Pallier
Enfin, pour pouvoir étiqueter vos matériels depuis LabInvent, vous devez cocher "Imprimante disponible" dans la section "Divers" de la page de configuration générale (Outils/Configuration générale de l'application).
863 183 Etienne Pallier
864 183 Etienne Pallier
865 207 Etienne Pallier
*4) Adaptation des étiquettes au besoin du laboratoire*
866 207 Etienne Pallier
*<TODO>*
867 1 Etienne Pallier
868 207 Etienne Pallier
869 207 Etienne Pallier
*5) Etiqueteuses installées sur le labo (IRAP ONLY)*
870 203 Etienne Pallier
871 203 Etienne Pallier
872 203 Etienne Pallier
Dans l'idéal, il faudrait une étiqueteuse par gestionnaire financier :
873 203 Etienne Pallier
874 203 Etienne Pallier
SUR LE SITE ROCHE :
875 203 Etienne Pallier
876 203 Etienne Pallier
* Jean-Louis Lefort (site Roche 101) ==> installée le 1/12/14 (pc8008, Windows 7 Pro 2009 SP1, version soft DLS 8.5.1)
877 203 Etienne Pallier
    Aucun problème, installée sur lettre G: - laissé 1 ruban D1 12mm de 7m en plus du ruban installé (3m seulement)
878 203 Etienne Pallier
    Pour info, ancienne installation faite sur son pc XP (23/5/14) (version soft DLS 8.5.1) Problème : si le logiciel DLS (Dymo Label Soft) est déjà ouvert, ça provoque une erreur Windows. Il faut donc refermer le logiciel avant de demander l'impression d'un ruban (c'est peut-être dû à cette version 8.5.1, la dernière version sortie, car sur l'ancienne version, je ne crois pas qu'il y ait cette erreur sur XP)
879 203 Etienne Pallier
* Dorine Roma (site Roche 102) ==> installée le 1/12/14 (pc8006 Optiplex 7010, Windows 7 Pro 2009 SP1, version soft DLS 8.5.1)
880 203 Etienne Pallier
    Installée sur lettre G: - ruban installé = 3m seulement
881 203 Etienne Pallier
* Carole Lecinana (site Roche 104) ==> installée le 1/12/14 (pc8005 Optiplex 7010, Windows 7 Pro 2009 SP1, version soft DLS 8.5.1)
882 203 Etienne Pallier
    Installée sur lettre G: - ruban installé = 3m seulement
883 203 Etienne Pallier
* Marjorie Cloup (site Roche 104) ==> installée le 1/12/14 (pc8007 Optiplex 7010, Windows 7 Pro 2009 SP1, version soft DLS 8.5.1)
884 203 Etienne Pallier
    Installée sur lettre G: - ruban installé = 3m seulement
885 203 Etienne Pallier
886 203 Etienne Pallier
887 203 Etienne Pallier
SUR LE SITE BELIN :
888 203 Etienne Pallier
889 204 Etienne Pallier
* Carole Gaiti (site Belin 61) ==> installée le 24/6/14 (pc Win 7 - version soft DLS 8.5.1)
890 204 Etienne Pallier
* Dolores Granat (site Belin 80bis) ==> A FAIRE
891 204 Etienne Pallier
* Isabelle Moro (site Belin B064) ==> A FAIRE
892 204 Etienne Pallier
* De plus, Etienne Pallier (site Roche 63, Mac OS 10.7) et Elodie Bourrec (site Belin 59, Win 7) sont tous les deux équipés d'une étiqueteuse
893 204 Etienne Pallier
* Enfin, l'étiqueteuse (ancienne) de Gilbert Rouaix (site Roche 19, Win XP) semble compatible puisqu'on a réussi à imprimer des étiquettes dessus.
894 203 Etienne Pallier
895 203 Etienne Pallier
896 183 Etienne Pallier
Au total, ça fait donc 9. 
897 1 Etienne Pallier
898 181 Etienne Pallier
---
899 180 Etienne Pallier
900 215 Etienne Pallier
h2. UTILISATION du logiciel
901 110 Etienne Pallier
902 165 Etienne Pallier
Depuis le site web de Labinvent, cliquez sur "Accueil", et ouvrez le "Guide d'utilisation" (pdf)
903 165 Etienne Pallier
904 165 Etienne Pallier
(Vous pouvez aussi aller à la page wiki "Utilisation" [[Documentation_utilisateurs]])
905 110 Etienne Pallier
906 112 Etienne Pallier
---
907 112 Etienne Pallier
908 1 Etienne Pallier
h2. MISE A JOUR du logiciel 
909 43 Etienne Pallier
910 235 Etienne Pallier
*1) Mettre à jour le code*
911 45 Etienne Pallier
912 43 Etienne Pallier
Aller sur la racine du projet et exécuter :
913 1 Etienne Pallier
914 43 Etienne Pallier
<pre>
915 1 Etienne Pallier
$ git pull
916 57 Alexandre Cases
</pre>
917 57 Alexandre Cases
918 235 Etienne Pallier
*2) [Seulement si nécessaire] Mettre à jour la base de données*
919 44 Etienne Pallier
920 56 Alexandre Cases
Aller dans le dossier database/update/
921 44 Etienne Pallier
922 56 Alexandre Cases
*Exécuter tous les scripts qui sont d'une date postérieure à la date de votre version du logiciel* (sur la page d'accueil en bas à droite).
923 1 Etienne Pallier
Attention, il faut les exécuter *dans l'ordre chronologique*, un par un
924 1 Etienne Pallier
925 44 Etienne Pallier
Exemple:
926 54 Etienne Pallier
<pre>
927 57 Alexandre Cases
Placez vous dans ./database/update et éxécutez les commandes correspondantes : 
928 58 Alexandre Cases
929 57 Alexandre Cases
./db-update-2016-06-03.sh
930 57 Alexandre Cases
931 57 Alexandre Cases
./db-update-2016-06-06.sh
932 57 Alexandre Cases
933 57 Alexandre Cases
./db-update-2016-06-07.sh
934 57 Alexandre Cases
</pre>
935 54 Etienne Pallier
936 43 Etienne Pallier
937 56 Alexandre Cases
938 41 Etienne Pallier
Remarques : 
939 103 Etienne Pallier
* Le fichier README-LABINVENT.md contient la liste des mises à jour.
940 55 Etienne Pallier
941 235 Etienne Pallier
*3) Upgrade du framework CakePhp*
942 234 Etienne Pallier
943 234 Etienne Pallier
<pre>
944 234 Etienne Pallier
sudo php composer.phar update
945 1 Etienne Pallier
</pre>
946 1 Etienne Pallier
947 236 Etienne Pallier
NB: si phpunit ne se met pas à jour, ne pas hésiter à supprimer tout le dossier vendor/phpunit/ avant de lancer cette commande
948 234 Etienne Pallier
949 234 Etienne Pallier
950 235 Etienne Pallier
*4) Upgrade de Php => passage à Php7*
951 234 Etienne Pallier
952 234 Etienne Pallier
* Ubuntu:
953 234 Etienne Pallier
<pre>
954 234 Etienne Pallier
sudo apt-get install php7.0 php-gettext php7.0-mbstring libapache2-mod-php7.0 php7.0-mysql php7.0-mcrypt php7.0-intl
955 234 Etienne Pallier
sudo a2dismod php5.6
956 234 Etienne Pallier
sudo a2enmod php7.0
957 234 Etienne Pallier
sudo service apache2 restart
958 234 Etienne Pallier
sudo update-alternatives --set php /usr/bin/php7.0
959 234 Etienne Pallier
sudo service apache2 restart
960 234 Etienne Pallier
</pre>
961 234 Etienne Pallier
962 234 Etienne Pallier
963 1 Etienne Pallier
---
964 55 Etienne Pallier
965 55 Etienne Pallier
h2. MODE PANIQUE
966 55 Etienne Pallier
967 55 Etienne Pallier
Vous avez changé la configuration du LDAP et elle ne fonctionne plus !
968 55 Etienne Pallier
Du coup, vous ne pouvez plus vous connecter au site !
969 106 Etienne Pallier
Pas de panique, le mode panique est là !
970 106 Etienne Pallier
Il suffit de repasser le logiciel en mode INSTALL pour pouvoir y accéder sans connexion.
971 105 Etienne Pallier
Pour cela, exécuter le script mode_panique.sh qui se trouve dans le dossier database/ :
972 1 Etienne Pallier
973 1 Etienne Pallier
<pre>
974 105 Etienne Pallier
./mode_panique.sh
975 1 Etienne Pallier
</pre>
976 1 Etienne Pallier
977 107 Etienne Pallier
(
978 108 Etienne Pallier
_Si vous préférez, vous pouvez aussi exécuter manuellement la requête sql set_mode_install.sql qui se trouve dans le même dossier:_
979 105 Etienne Pallier
mysql -u login -p labinvent2 < set_mode_install.sql
980 1 Etienne Pallier
_Remplacer 'login' par le 'username' défini dans votre fichier config/app.php dans la section Datasources (default)_
981 1 Etienne Pallier
_Remplacer 'labinvent2' par le 'database' défini au même endroit_
982 107 Etienne Pallier
_Ou bien exécuter cette requête depuis phpmyadmin_
983 105 Etienne Pallier
)
984 312 Etienne Pallier
985 312 Etienne Pallier
986 312 Etienne Pallier
h2. MODE DEBUG (dev only)
987 312 Etienne Pallier
988 312 Etienne Pallier
Pour les développeurs, il y a un outil très pratique à utiliser qui est DebugKit. Il aide à voir ce qui se passe en interne au sein du framework cakephp (valeur des variables, dernières requetes sql exécutées...).
989 312 Etienne Pallier
990 312 Etienne Pallier
Il est installé par défaut. Donc, pour l'activer, rien de plus simple, il suffit de passer config/app.php en mode debug (ligne 12 qui définit la variable debug, passer à "true")