Skip to content

Latest commit

 

History

History
215 lines (150 loc) · 5.93 KB

installation.md

File metadata and controls

215 lines (150 loc) · 5.93 KB

Installation en local

Prérequis

  • git
  • apache2 >= 2.4
  • php >= 5.5, avec les modules PHP suivants : cli, pdo, curl, intl, xml, ldap, pgsql, ldap, sqlite et gd
  • un serveur PostgreSQL >= 9.0.
  • phpunit, pour lancer les tests unitaires/fonctionnels
  • bundler, pour gérer les dépendances Ruby
  • capifony, pour déployer
  • Avoir/avoir accès à une machine avec une IP en 138.195.128.0/19

On Ubuntu/Debian, run :

sudo aptitude install git apache2 php5 curl php5-ldap php5-gd php5-curl php5-cli php5-intl postgresql php5-pgsql php5-sqlite bundler phpunit
bundle install --path=vendor

Configuration

PHP

Il faut définir la timezone PHP et vérifier que les short tag sont désactivés. Dans les fichiers php.ini à la fois dans les dossiers /etc/php5/apache2/ (et /etc/php5/fpm/ si vous utilisez php5-fpm) et /etc/php5/cli/ :

date.timezone = Europe/Paris
short_open_tag = Off

Ne pas oublier de reloader Apache2 (et php-fpm si vous l'utilisez).

Apache

  • Pour configurer Apache2, créer d'abord notre dossier de travail et le rendre accessible.
# En www-data ou avec votre user (chown si nécessaire)
mkdir /var/www/garopi

Pour un environnement de développement uniquement, vous pouvez éviter de pénibles problèmes de droits en modifiant la conf d'Apache2 pour que l'environnement d'exécution soit lancé par un autre utilisateur que www-data:www-data. Il suffit de modifier les variables d'environnement APACHE_RUN_USER et APACHE_RUN_GROUP, qui se situent sur Linux dans le fichier /etc/apache2/envvars. Mettez-y l'utilisateur et le groupe du dossier /var/www/garopi. Ensuite, restarter le démon Apache2 ; si un message d'erreur apparaît, il faut chown votre_user:root /var/lock/apache2, puis réessayer.

Il s'agit en fait de la plus mauvaise solution recommandée par Symfony2, mais la plus rapide et efficace. Pour voir les autres manières de gérer correctement les droits : http://symfony.com/doc/master/book/installation.html#book-installation-permissions

  • Ensuite, créer un VirtualHost.

Par exemple sous Linux, créer dans /etc/apache2/sites-available/ un fichier intitulé garopi.conf (/!\ sur certaines versions d'Apache2, l'extension .conf est nécessaire), qui contient :

<VirtualHost *:80>
        DocumentRoot /var/www/garopi/web
        ServerName garopi.dev

       <Directory /var/www/garopi/web>
                AllowOverride None
                Options -Indexes +FollowSymLinks
                Require all granted

                <IfModule mod_rewrite.c>
                        RewriteEngine On
                        RewriteCond %{REQUEST_FILENAME} !-f
                        RewriteRule ^(.*)$ app_dev.php [QSA,L]
                </IfModule>
        </Directory>
</VirtualHost>

Ensuite, créer un lien symbolique pour activer ce VirtualHost, à l'aide de la commande :

# En root
a2ensite garopi.conf
  • Pour que ce vhost particulier fonctionne, il faut que le nom de domaine, garopi.dev, soit associé à la machine de dev, localhost. Il suffit pour cela de rajouter dans /etc/hosts
127.0.1.2 garopi.dev
  • Activer enfin le mode rewrite d'Apache (cela permet de ne pas avoir à écrire app_dev.php à la fin des URLs).

Par exemple sous Linux :

# En root
a2enmod rewrite
service apache2 reload

PostGreSQL

Accéder à une interface pour rentrer des commandes SQL (cli, phppgadmin, ou autres). Par exemple sous Linux :

# En root
su postgres
psql

Créer la base de données et l'utilisateur en lançant les commandes :

CREATE DATABASE garopi ENCODING 'UTF-8';
CREATE USER garopi ENCRYPTED PASSWORD 'garopi';
GRANT ALL ON DATABASE garopi TO garopi;

Certificats CACert et cURL

Il faut s'assurer d'avoir les certificats CACert sur sa machine et que cURL soit bien configuré pour les utiliser.

Installer ces certificats avec :

sudo aptitude install ca-certificates

Ensuite, éditez le fichier /etc/ca-certificates.conf et y rajouter les lignes suivantes :

# En root
cacert.org/root.crt
cacert.org/class3.crt

Puis, ajoutez les certificats et les réinstaller :

cd /usr/share/ca-certificates/
sudo mkdir cacert.org && cd cacert.org
sudo wget "http://www.cacert.org/certs/root.crt"
sudo wget "http://www.cacert.org/certs/class3.crt"
sudo update-ca-certificates

Installation du projet

Il faut avoir accès à deux repo Git :

cd /var/www/
git clone [email protected]:sghribi/garopi.git --recursive

Vérification du système

Vérifier que notre système a tout ce dont il a besoin en lançant :

php app/check.php

Corriger toutes les erreurs Mandatory, et en best-effort les recommendations Optional.

Installation des dépendances

Télécharger toutes les dépendances en lançant la commande :

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer install

Laisser les paramètres par défaut, ou adaptez-les si vous n'avez pas choisi la même configuration.

Initialisation des dépendances CSS/JS

Désormais, il reste quelques commandes Symfony pour préparer le site.

# Préparation des données du site
php app/console assets:install --symlink web
php app/console assetic:dump

Initialisation de la BDD

php app/console doctrine:fixtures:load --purge-with-truncate
php app/console garopi:import:old-database

Accès au LDAP de VIA (MyECP) (optionnel si vous avez une IP en 138.195.128.0/19)

Créer une redirection de port :

sudo ssh -L 389:<machine>.via.ecp.fr:389 <user>@<machine>.via.ecp.fr

Puis, rajouter dans app/config/parameters.yml :

parameters:
    # Other parameters...

    ldap_host: localhost