git
apache2
>= 2.4php
>= 5.5, avec les modules PHP suivants :cli
,pdo
,curl
,intl
,xml
,ldap
,pgsql
,ldap
,sqlite
etgd
- un serveur
PostgreSQL
>= 9.0. phpunit
, pour lancer les tests unitaires/fonctionnelsbundler
, pour gérer les dépendances Rubycapifony
, 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
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).
- 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 à écrireapp_dev.php
à la fin des URLs).
Par exemple sous Linux :
# En root
a2enmod rewrite
service apache2 reload
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;
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
Il faut avoir accès à deux repo Git :
cd /var/www/
git clone [email protected]:sghribi/garopi.git --recursive
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
.
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.
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
php app/console doctrine:fixtures:load --purge-with-truncate
php app/console garopi:import:old-database
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