Installation de l’environnement de développement

Pré-requis

Avant toutes choses, il faut vérifier la présence d’un certains nombre de paquets indispensables dont voici la liste ci-dessous :

PHP5 :

Apache2 :

Mysql :

Zip :

Git :

Vous pouvez tous les installer en tapant dans une console les deux commandes suivantes :

# apt-get update
# apt-get install php5 php5-cli php5-common php5-ffmpeg php5-gd php5-imagick php5-mcrypt php5-mysql php5-sqlite apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-dnssd libapache2-mod-php5 libapache2-mod-python libapache2-mod-python-doc mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5 phpmyadmin bzip2 gzip libzip2 unzip git git-doc git-gui git-man gitk

Au cours de l’installation, vous aller devoir renseigner un mot de passe pour l’utilisateur root de mysql. Mettez ce que vous voulez, mais surtout souvenez-vous en ! Il vous sera utile pour plus tard !

Git

Git est le gestionnaire de sources utilisé pour le développement. Il permet à plusieurs personnes de travailler sur le même projet.

Configuration de Git

Avant toutes utilisations de Git, il faut au minimum renseigner les informations suivantes : le nom d’utilisateur et l’e-mail. Ce sont ces informations qui seront utilisées par Git pour signer vos contributions.

$ git config --global user.name "Dev"
$ git config --global user.email dev@domaine.net

Il existe d’autres options que vous pouvez paramétrer. Elles ne sont pas listées ici. Pour avoir plus de détails la-dessus vous pouvez consulter cette très bonne documentation : Paramétrage à la première utilisation de Git

Git est maintenant opérationnel !

Générer sa clé publique SSH

Cette étape est obligatoire si vous souhaitez envoyer vos contributions sur le serveur (en terme Git on dit « pusher »). Mais si vous voulez simplement récupérer le code source du projet, vous pouvez directement passer à l’étape « installation du site local ».

Pour contribuer au code, il est nécessaire de s’authentifier auprès du serveur de rebellyon.info. L’authentification passe par la clé publique SSH. Cette clé se trouve dans le répertoire ~/.ssh .
Elle est généralement stockée dans le fichier « id_rsa.pub ».
Pour vérifier que vous n’avez pas déjà généré vos clés SSH, il vous suffit de lister le contenu du répertoire ~/.ssh :

$ ls ~/.ssh

Si ce fichier est absent vous devez créer votre paire de clés SSH. Pour cela, il faut ouvrir un terminal et rentrer la commande suivante (en remplaçant your_email@example.com par votre email). Ne vous formalisez pas sur l’e-mail. C’est juste une infos qui permet d’identifier la clé. Vous pouvez mettre ce que vous voulez.

ssh-keygen -o -a 100 -t ed25519 -C "your_email@example.com"

En réponse à la question « Enter file in which to save the key (/home/you/.ssh/id_rsa): » tapez simplement « Enter » .
Ensuite renseigner une passphrase pour protéger l’accès à votre clé privée.

Envoyer sa clé au serveur

Pour que la clé soit reconnue par Git, il faut l’envoyer par mail à admin@rebellyon.info en mettant comme sujet git key « pseudo » (mettez votre pseudo).
Votre clé sera ensuite ajoutée par un administrateur à la liste des clés reconnues. Cette opération n’est pas immédiate, mais vous serez notifié par mail de son bon déroulement.

Installation du site local

Pour tester vos modifications/améliorations avant de les publier sur le serveur, il va falloir installer une version locale du projet. En gros il s’agit de configurer un site web local qui viendra s’articuler sur votre projet git.
Les principales étapes sont :

  1. cloner le projet (récupérer les sources)
  2. récupérer les données qui serviront à alimenter le site : des images et une base de donnée
  3. préparer la base de donnée
  4. ajouter les répertoires manquants
  5. définir les droits
  6. configurer apache2 (serveur web)

Dans l’exemple qui va suivre l’installation sera faite dans le répertoire /var/www. Nous supposerons que nous sommes l’utilisateur « dev ».

Avant de commencer, assurez vous de faire partie des sudousers. Les sudousers peuvent lancer des commandes qui nécessite des droits root. C’est automatiquement le cas si vous utilisez une distribution de type Ubuntu. Sinon il suffit généralement de s’ajouter dans le groupe « sudo ». Par exemple pour ajouter l’utilisateur « dev » il vous suffit de taper dans un terminal les commandes suivantes :

$ su 
# adduser dev sudo

Attention ! Pour que cela prenne effet il est impératif de se déloguer et de se reloguer sur sa session. Sans ça, à la première commande « sudo » , vous allez obtenir un message vous indiquant que vous ne faites pas partie des sudousers.

A noter que cette opération n’est pas obligatoire car vous pouvez exécuter tout ce qui va suivre en étant directement root. Ce sont les même commandes, mais sans le « sudo ».

Cloner le projet

Le projet va être cloné dans le répertoire /var/www/site_dev.

Créons tout d’abord le répertoire site_dev :

$ cd /var/www
$ sudo mkdir site_dev

Il faut ensuite modifier les droits pour que l’utilisateur « dev » puisse modifier à sa guise les fichiers et que le serveur apache (utilisateur « www-data » ) puisse également accéder au répertoire :

$ sudo chown -R dev:www-data site_dev/

Une fois le répertoire créé avec les bons droits, nous pouvons récupérer le projet. On appel cette opération « le clonage ». Cette opération peut être assez longue (plusieurs minutes), alors soyez patient !!

Si vous avez envoyé votre clé publique SSH et que vous avez reçu votre notification comme quoi votre clé a bien été ajoutée (voir étape précédente), tapez simplement :

$ git clone git@rebellyon.info:carto.git site_dev/

Si vous souhaitez simplement récupérer le code source sans vous authentifier, rentrez la commande suivante :

$ git clone https://git.rebellyon.info/carto.git site_dev/

Attention, avec cette adresse de dépôt vous avez seulement un accès en lecture seule.

Si vous obtenez une erreur SSL, installez le certificat utilisé par le serveur :

Récupérer les données

Pour l’instant les données se limitent à la base de données des caméras. Il s’agit d’un fichier sql que l’on récupère à l’adresse suivante : we.riseup.net/assets/145615/cameras.sql

Ces données nous servirons lorsque le site sera complètement installé et configuré.

Préparer la base de donnée

Ajouter les répertoires manquants

Il faut ajouter certains répertoires qui ne sont pas inclus dans le dépôt git, mais qui sont nécessaires à Spip :

$ cd /var/www/site_dev/
$ mkdir local tmp IMG

Définir les droits

Il faut autoriser l’utilisateur (dev) et le serveur apache (www-data) à accéder aux répertoires. Ensuite on donne les droits d’écriture et de lecture sur les répertoire local/ tmp/ et IMG.

$ chown -R dev:www-data /var/www/site_dev
$ cd /var/www/site_dev/
$ chmod -R 777 tmp local IMG

Configurer apache2 (serveur web)

Tout d’abord il faut créer un fichier de configuration spécifique à notre futur site local. Les fichiers de configuration se trouvent habituellement dans le répertoire « /etc/apache2/sites-available/ ».
Basculez en mode « root » en tapant la commande « su » ou « sudo su », puis copiez et collez les lignes ci-dessous (à partir de echo)

# echo "<VirtualHost 127.0.0.1:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/site_dev
        ServerName site_dev
        <Directory />
                Options FollowSymLinks
                AllowOverride AuthConfig FileInfo Indexes Limit
        </Directory>
        <Directory /var/www/site_dev/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride AuthConfig FileInfo Indexes Limit
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory \"/usr/lib/cgi-bin\">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>" > /etc/apache2/sites-available/site_dev

Pour pouvoir accéder à votre site en tapant dans la barre d’adresse site_dev, il faut ajouter « site_dev » comme correspondance à 127.0.0.1 (adresse local de votre pc).
On ajoute cette correspondance dans le fichier « /etc/hosts » :

# echo "127.0.0.1       site_dev" >> /etc/hosts