Installation

Version 5 (Etienne Pallier, 05/02/2016 04:10 pm) → Version 6/388 (Alexandre Cases, 05/06/2016 02:04 pm)

h1. Labinvent 2.0 (cakephp3) - Installation

{{toc}}

---

h2. LIENS UTILES

Activité sur le projet (gitlab): https://gitlab.irap.omp.eu/epallier/labinvent

Browse files (gitlab): https://gitlab.irap.omp.eu/epallier/labinvent/tree/master

---

h2. RECUPERATION

1) Authenticate to https://gitlab.irap.omp.eu/epallier/labinvent

In order to get this software, you must first authenticate on the IRAP gitlab.

For this, just go to https://gitlab.irap.omp.eu/epallier/labinvent
and either sign in with your LDAP account (if you are from IRAP),
or register via the "Sign up" form (then, confirm your registration by answering an email sent by gitlab,
and wait for the "SI" to authorize your registration)

If you want, you can browse the code online (from gitlab) :

https://gitlab.irap.omp.eu/epallier/labinvent/tree/master

2) Récupérer le logiciel

Deux options se présentent à vous :

* a) soit vous récupérez une version statique du logiciel, en le téléchargeant
* b) soit vous récupérez une version synchronisée, avec git

a) Download it (static version, not synchronized)...

You can download the current version of the software.

Go to https://gitlab.irap.omp.eu/epallier/labinvent/tree/master

Click on "Download zip" on the up right hand corner.

Double-click on it to unzip it (or run "gzip -d labinvent.zip")

You should get a "labinvent.git" folder.

In this documentation, this software folder will be referenced as "LABINVENT".

(you can rename "labinvent.git" as "labinvent" if you want : "mv labinvent.git labinvent")

b) ... or Get it from GIT (dynamic version, synchronized)

(If you are using Windows, you must first get the git software, see below "Get git for Windows")

By getting the software from git, you will get a dynamically synchronized version,
which means that you will be able to update your version as soon as a new version is available
(with the command : "git pull").

* From Eclipse : See below, section "NOTES FOR ECLIPSE USERS"

* From the terminal

<pre>
git clone https://gitlab.irap.omp.eu/epallier/labinvent.git labinvent
</pre>

_(or also : git clone git@gitlab.irap.omp.eu:epallier/labinvent.git labinvent)_

If you ever get this error message... :
<pre>
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.
</pre>

...then, type this command (and then run again the "git clone" command):
<pre>
$ git config --global http.sslVerify false

Then check that your config is ok:

$ cat ~/.gitconfig
[user]
name = Etienne Pallier
email = epallier@irap.omp.eu
[http]
sslVerify = false
[push]
default = simple
</pre>

(Also, the first time you get the project, git will ask you for a login and password)

This creates a labinvent/ folder containing the project (with a .git/ subfolder for synchronization with the git repository)

(Windows only) : Get git for Windows:

* Download git at https://git-scm.com/download/win
* Run setup (keep default configurations)
* Once installed, open cmd
<pre>
$ git config --global http.sslVerify false
</pre>
You can now use your git from the cmd or the graphic client !

3) Préparation

* Vérifier que vous etes le propriétaire du dossier (il ne doit pas appartenir à "root"), sinon faire :
> sudo chown -R nom_utilisateur LABINVENT

* Placer cette archive à l'endroit voulu, 2 possibilités :
- (1) soit vous placez cette archive directement dans le repertoire des sites webs du serveur web (par exemple /var/www/html/localhost/public_html/)
- (2) soit vous la placez n'importe où ailleurs (par exemple dans votre repertoire home), et ensuite vous indiquerez au serveur web où trouver ce projet



h2. INSTALLATION

h3. A/ PREREQUIS

(L'exemple est donné ici pour une distribution linux UBuntu 14.04.4)

* Pour commencer il faut mettre à jour les "repository" de apt :
> sudo apt-get update && sudo apt-get upgrade

* Un serveur web (apache avec le mod_rewrite actif)
> sudo apt-get install apache2

> Editer le fichier /etc/apache2/apache2.conf et mettre le paramêtre "KeepAlive" à "Off" :
<pre>
KeepAlive Off
</pre>
=> (pas nécessaire sur Mac OS avec Xampp)

> Par défaut Apache utilise un "event module" et PHP un "prefork module".
> Il faut désactiver le 1er module et activer le second :
> > sudo a2dismod mpm_event
> > sudo a2enmod mpm_prefork
=> (pas nécessaire sur Mac OS avec Xampp)

* Un serveur de base de données (MySQL)
> sudo apt-get install mysql-server

* PHP 5.5.9 ou plus
> sudo apt-get install php5 php-pear
> sudo apt-get install php5-mysql

> Dans le fichier /etc/php5/apache2/php.ini, vous devez positionner votre répertoire de log :
<pre>
error_reporting = E_ALL
error_log = /var/log/php/error.log
max_input_time = 30
</pre>

> Ensuite il faut créer le dossier en question et donner à apache (ici www-data) les droits sur ce dossier :
> > sudo mkdir /var/log/php
> > sudo chown www-data /var/log/php
=> (pas nécessaire sur Mac OS avec Xampp)

h3. B/ INSTALLATION


Nous vous préconisons d'installer le logiciel en mode "SANS LDAP", et d'activer le mode "AVEC LDAP" par la suite, si vous en avez besoin.

* Aller dans le repertoire d'installation :
cd LABINVENT/install/

* Exécuter le script d'installation :
./installation.sh
(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).
(Conseil : à la plupart des questions, laissez les réponses par défaut)
(Comme expliqué au début, faites une installation en mode "sans LDAP")

* Autoriser les fichiers .htaccess sur le site :
(cf http://book.cakephp.org/3.0/fr/installation.html#url-rewriting)
=> (TODO: expliquer rapidement comment faire)

Dans le fichier /etc/apache2/apache2.conf, si vous avez déja quelque chose comme ceci, cela suffit :
<pre>
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>
</pre>

Sinon, vous pouvez ajouter ceci, uniquement pour Labinvent :
<pre>
<Directory /labinvent>
Options FollowSymLinks
AllowOverride All
</Directory>
</pre>

NB : si labinvent n'est pas dans le repertoire des sites webs, il faut mettre son chemin absolu a la place de /labinvent :
> <Directory /chemin/abosolu/vers/labinvent>

* Activer le mode rewrite de Apache :
> sudo a2enmod rewrite

* Redémarrer Apache

* Tester l'accès web à l'application : http://localhost/labinvent.git/

* 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

* Vérifier simplement (point vert) si votre base sql est bien relié à votre application, si les droits données au dossiers temporaires sont suffisant, et si toutes les extensions sont bien intallées.

* Dans le cas contraire, reporter vous à l'extension correspondant ci-dessous, pour l'installer ou la configurer :

*
Extension PHP "mbstring" et librairie "zlib"
La collection de librairies est normalement déja installée avec PHP en tant que dépendances, sinon faire :
> sudo apt-get install libapache2-mod-php5
=> Redémarrer votre serveur et (TODO: y a-t-il un moyen simple de vérifier que la ligne correspondant à l'extension soit passé au vert. présence de ces librairies ?)

* Extension PHP "intl"
Vérifier que cette extension est activée dans le php.ini:
<pre>
extension=intl.so
</pre>

Vérifier qu'elle est bien installée :
<pre>
$ php -m| grep intl
(ça devrait retourner "intl")
</pre>

Sinon, l'installer
> sudo apt-get install php5-intl

(Sur MacOS avec XAMPP: cf http://stackoverflow.com/questions/27886117/php-intl-installation-on-xampp)
(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)
<pre>
cd /Applications/XAMPP/bin
sudo ./pecl install intl
</pre>
(Vérifier qu'elle a bien été installée dans /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/)

=> Redémarrer votre serveur et vérifier que la ligne correspondant à l'extension soit passé au vert.

* Librairie PHP "php-gd"
> sudo apt-get install php5-gd
=> Redémarrer votre serveur et vérifier que la ligne correspondant à l'extension soit passé au vert.
Si ce n'est toujours pas le cas,
Quand &quot;php-gd&quot; est installé, aller dans le fichier /etc/php5/apache2/php.ini :
Vérifier que la ligne suivante est présente et décommentée (absence de ";" devant la ligne) sinon il faut la rajouter :
<pre>
extension=gd.so
</pre>
=> Redémarrer votre serveur et (TODO: y a-t-il un moyen simple de vérifier que la ligne correspondant à l'extension soit passé au vert. présence de cette librairie ?)

&gt; La page d&#x27;info devrait être accessible : http://localhost/info.php

* Il est aussi conseillé d'avoir un "phpmyadmin" installé pour pouvoir gérer manuellement la base de données.
> sudo apt-get php5-mcrypt
> sudo apt-get install phpmyadmin
> Pensez à activer l'extension mcrypt : sudo php5enmod mcrypt
>


*
Vous devez maintenant redémarrer Apache :
> > sudo service apache2 restart
(ou simplement le recharger: utiliser "reload" au lieu de "restart")

h3. B/ INSTALLATION

Nous vous préconisons d&#x27;installer le logiciel en mode &quot;SANS LDAP&quot;, et d&#x27;activer le mode &quot;AVEC LDAP&quot; par la suite, si vous en avez besoin.

* Aller dans le repertoire d&#x27;installation :
cd LABINVENT/install/

* Exécuter le script d&#x27;installation :
./installation.sh
(vous pourriez éventuellement le faire en tant qu&#x27;administrateur &quot;root&quot;, mais ça n&#x27;est pas nécessaire, le script fera quelques petits &quot;sudo&quot; seulement au besoin).
(Conseil : à la plupart des questions, laissez les réponses par défaut)
(Comme expliqué au début, faites une installation en mode &quot;sans LDAP&quot;)

* Autoriser les fichiers .htaccess sur le site :
(cf http://book.cakephp.org/3.0/fr/installation.html#url-rewriting)
=&gt; (TODO: expliquer rapidement comment faire)

Dans le fichier /etc/apache2/apache2.conf, si vous avez déja quelque chose comme ceci, cela suffit :
&lt;pre&gt;
&lt;Directory /&gt;
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
&lt;/Directory&gt;
&lt;/pre&gt;

Sinon, vous pouvez ajouter ceci, uniquement pour Labinvent :
&lt;pre&gt;
&lt;Directory /labinvent&gt;
Options FollowSymLinks
AllowOverride All
&lt;/Directory&gt;
&lt;/pre&gt;

NB : si labinvent n&#x27;est pas dans le repertoire des sites webs, il faut mettre son chemin absolu a la place de /labinvent :
&gt; &lt;Directory /chemin/abosolu/vers/labinvent&gt;

* Activer le mode rewrite de Apache :
&gt; sudo a2enmod rewrite

* Redémarrer Apache

* Tester l&#x27;accès web à l&#x27;application : http://localhost/labinvent.git/

* Pour l&#x27;instant il faut créer un utilisateur en passant par l&#x27;application labinvent pour pouvoir se connecter (problème dû au hachage du mot de passe).
Pour créer cet utilisateur, une fois la page d&#x27;acceuil disponible, allez à l&#x27;url qui ressemble à cela : /labinvent/users/add.
Vous devriez pouvoir vous connecter...


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 :
<pre>

Fichier ./.htaccess :
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
</pre>

<pre>

Fichier ./webroot/.htaccess :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</pre>

> Remarques :
> > Dans CakePHP3 un serveur de développement est disponible, il faut se placer à la racine du projet faire la commande "bin/cake server".
> > L'application devrait être accessible à l'adresse suivante par défaut : http://localhost:8765/