Projet

Général

Profil

Démarche installation sur un serveur

Prérequis: symfony 1.4, apache 2(Module rewrite activé), php 5, MySql

sudo apt-get install php5 php5-cli php5-mysql mysql-client mysql-server php-pear phpmyadmin php5-xsl bzr php5-ldap

Important modifier l'encodage par défaut des base Mysql en UTF8 :

Ajouter dans le fichier /etc/mysql/my.cnf dans le bloc [mysqld]

collation_server=utf8_unicode_ci
character_set_server=utf8

récupérer symfony à partir du dépot ou dans une version 1.4.x et l'installer dans /opt/symfony/sf1.4

Si on rencontre des problèmes de mémoire avec cli :

Éditez le fichier /etc/php5/cli/php.ini pour allouer 64MB de mémoire

Se positionner sur le serveur en ssh

I. Récupération des scripts

Admettons que l'on déploit l'application sur cette emplacement /var/www/test

tgilbert@glpi-tests:~$ mkdir /var/www/test
tgilbert@glpi-tests:~$ cd /var/www/test
tgilbert@glpi-tests:~$ bzr branch sftp://redmine.ryxeo.com/home/groupes/developpeurs/abuledu/abuledu-srv-terrier/serveur-proto-sf/
tgilbert@redmine.ryxeo.com's password: 
Branched 45 revision(s).
tgilbert@glpi-tests:~$ cd serveur-proto-sf
tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$

Droit d'écriture sur les répertoires de cache et log

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ chmod 777 log/
tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ chmod 777 cache/

Lien symboliques pour les plugin de l'application

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ php symfony plugin:publish-assets
>> plugin    Configuring plugin - sfDoctrinePlugin
>> link+     /var/www/test/serveur-proto-sf/web/sfDoctrinePlugin
>> plugin    Configuring plugin - sfDoctrineGuardPlugin
>> plugin    Configuring plugin - sfFormExtraPlugin
>> link+     /var/www/test/serveur-proto-sf/web/sfFormExtraPlugin
>> plugin    Configuring plugin - bhLDAPAuthPlugin
>> plugin    Configuring plugin - sfJqueryTreeDoctrineManagerPlugin
>> link+     /var/www/test/serveur-proto-sf/w...fJqueryTreeDoctrineManagerPlugin

Base de données

Mise en place de la base de données
1. Création des utilisateurs sur mysql

Utilisateur pour l'environnement de test
username: testunit
password: test290478

Utilisateur pour l'environnement de prod
username: abuledu
password: abuledu

2.Création de la bdd

Environnement de prod

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ php symfony doctrine:build --all --no-confirmation --env="prod" 

Environnement de test

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ php symfony doctrine:build --all --no-confirmation --env="test" 

3.Données par défauts pour la base

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ php symfony doctrine:data-load --env="prod" data/fixtures/default.yml
>> doctrine  Loading data fixtures from "data/fixtures/default.yml" 
>> doctrine  Data was successfully loaded
tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ php symfony doctrine:data-load --env="prod" data/fixtures/permission.yml
>> doctrine  Loading data fixtures from "data/fixtures/permission.yml" 
>> doctrine  Data was successfully loaded

Création des Virtual Host pour apache

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ sudo vim /etc/apache2/sites-available/default

Ajouter les hosts suivants

Host correspondant à l'application backabuledu

<VirtualHost *:80>
  ServerName backabuledu.ryxeo.com
  DocumentRoot /var/www/test/serveur-proto-sf/web/
  DirectoryIndex backabuledu.php
  AccessFileName    .htaccess_backabuledu
  <Directory "/var/www/test/serveur-proto-sf/web">
    AllowOverride All
    Allow from All
  </directory>

  Alias /sf /opt/symfony/sf1.4/data/web/sf/

</VirtualHost>

Host correspondant à l'application serveursf (connexion avec le plugin)

<VirtualHost *:80>
  ServerName serveursf.ryxeo.com
  DocumentRoot /var/www/test/serveur-proto-sf/web/
  DirectoryIndex backabuledu.php
  AccessFileName    .htaccess_serveursf
  <Directory "/var/www/test/serveur-proto-sf/web">
    AllowOverride All
    Allow from All
  </directory>

  Alias /sf /opt/symfony/sf1.4/data/web/sf/

</VirtualHost>

Attention!

Il faut indiquer le chemin ou est installé symfony

Alias /sf /opt/symfony/sf1.4/data/web/sf/

Redémarrer apache

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2 [ OK ]

Tester l'installation

Ouvrir un navigateur (firefox)

1. Vérification de l'application backabuledu

Url: http://backabuledu.ryxeo.com

backabuledu connexion

login: tgilbert
mdp: tgilbert

backabuledu logué

Cliquer sur catégorie educ nat

backabuledu module categorie

Se déconnecter

2. Vérification de l'application serveursf

Url: http://serveursf.ryxeo.com/login.php?plug_domain=domaine-a&plug_application_protocol_version=1.0

serveursf login

login: dtruc
mdp: dtruc

serveursf logué session xml

Vérification des tests unitaires

Pour l'application backabuledu

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ php symfony test:functional backabuledu
categorieActionsTest.................................................ok
domaineActionsTest...................................................ok
educnatActionsTest...................................................ok
educnat_treeActionsTest..............................................ok
groupeclasseActionsTest..............................................ok
levelActionsTest.....................................................ok
logActionsTest.......................................................ok
mainActionsTest......................................................ok
skillActionsTest.....................................................ok

Pour l'application serveursf

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ php symfony test:functional serveursf
connexionActionsTest.................................................not ok
    Failed tests: 14, 15
    Errors:
    - RuntimeException: PHP sent a "warning" error at /opt/symfony/sf1.4/lib/test/sfTesterResponse.class.php line 217 (DOMDocument::loadXML(): Empty string supplied as input)
    -   at () in /opt/symfony/sf1.4/lib/test/sfTestFunctionalBase.class.php line 459
    -   at sfTestFunctionalBase->handlePhpError() in n/a line n/a
    ... and 3 more
diversActionsTest....................................................ok
filterActionsTest....................................................ok
logActionsTest.......................................................ok

Impossible de se connecter au serveur LDAP de test
Vérification du test connexion

tgilbert@glpi-tests:/var/www/test/serveur-proto-sf$ php symfony test:functional serveursf connexionActions
# get /connexion/signin
> Pas de connexion
ok 1 - request parameter module is connexion
ok 2 - request parameter action is signin
ok 3 - status code is 401
# get /connexion/signin
> Erreur de mot de passe
ok 4 - request parameter module is connexion
ok 5 - request parameter action is signin
ok 6 - status code is 401
# get /connexion/signin?plug_application_protocol_version=1.0
> Utilisateur correct
ok 7 - request parameter module is connexion
ok 8 - request parameter action is signin
ok 9 - status code is 200
ok 10 - response is well-formed xml
ok 11 - response content matches regex #session#
# get /connexion/signin?plug_domain=domaine-c&plug_application_protocol_version=1.0
> Utilisateur LDAP (SI ko vérifier serveur 192.168.200.107
ok 12 - request parameter module is connexion
ok 13 - request parameter action is signin
not ok 14 - status code is 200
#     Failed test (/opt/symfony/sf1.4/lib/test/sfTesterResponse.class.php at line 412)
#            got: 401
#       expected: 200
1..14

install1.png - backabuledu connexion (40,8 ko) Thomas GILBERT, 20/12/2010 11:53

install2.png - backabuledu logué (43,3 ko) Thomas GILBERT, 20/12/2010 11:54

install3.png - backabuledu module categorie (56,5 ko) Thomas GILBERT, 20/12/2010 11:55

install4.png - serveursf login (50,9 ko) Thomas GILBERT, 20/12/2010 11:55

install5.png - serveursf logué session xml (55 ko) Thomas GILBERT, 20/12/2010 11:55

Redmine Appliance - Powered by TurnKey Linux