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
login: tgilbert
mdp: tgilbert
Cliquer sur catégorie educ nat
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
login: dtruc
mdp: dtruc
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