4 Home
Emmanuel ROY (photo à prendre avec humour) edited this page 2022-08-23 15:18:26 +02:00

https://github.com/Acksop/SAND-framework

https://sand-framework.app

https://code-source.sand-framework.app/docs

Comment installer le framework

Préambule

Tout d'abord avant de tenter quoi que soit au niveau de l'installation du framework, veuillez prendre en considération ces quatre(4) questions :

Avez-vous installé le logiciel de virtualisation docker ?

Avez-vous installé le logiciel de gestionnaire de version git ?

Avez-vous installé et utilisez-vous le language php au minimum dans sa version 7.4 ?

Avez-vous installé le logiciel de dépendances composer ?

Si la réponse est oui à ces quatre(4) questions alors vous êtes prêt à utiliser ce framework, même si vous ne connaissez pas les frameworks php tel que laravel ou symfony. Et dans ce cas ce sera peut-être pour vous une bonne introduction aux manipulations avancées qu'il est possible de faire avec ces imposants mastodontes.

Pour installer ces quatre(4) composantes nécessaires sous Windows je ne peut que vous donner les liens et vous inviter à consulter les quelques documentations disponible onTheWeb à ce sujet.

Le plus simple pour installer docker est de se rendre sur https://hub.docker.com/ et de vous créer un compte, il sera obligatoire afin d'obtenir les images docker nécessaires lors de l'installation. Puis installer docker desktop disponible sous https://hub.docker.com/editions/community/docker-ce-desktop-windows

Le plus simple pour installer git est de vous rendre sur https://gitforwindows.org/ et de suivre la procédure d'installation.

Afin de vous aider à installer php facilement vous pouvez utiliser le gestionnaire fournit avec windows : Microsoft Web Platform installer disponible à l'adresse https://docs.microsoft.com/en-us/iis/install/web-platform-installer/web-platform-installer-direct-downloads , une autre manière serait de récupérer l'archive windows de la version de php qui vous intéresse et de la placer à la racine C: et d'ajouter le PATH de l'executable php.exe dans les variables d'environnement, ainsi dans la console git-bash fourni avec git-for-windows vous pourrez commencez à utiliser php en ligne de commande... et Sandyes (le petit nom du sablier de SAND) aime la ligne de commande :)

Enfin pour installer composer vous pouvez vous rendre sur https://getcomposer.org/

Voilà vous avez tout pour commencer à jouer avec le framework :) Enfin presque...

Vous êtes un linuxien ? cela ne devrait pas vous poser de problèmes alors ? Si ? Dites les man-pages vous connaissez ? Si la réponse est non il vous faudra apprendre la base de tout ce qui existe du monde libre. Dans le cas contraire normalement le gestionnaire de dépendance de votre distribution doit vous permettre de faire le reste, il vous faudra alors lui demander à installer les paquets suivants :

php8-full (avec nécessairement les modules ldap, gd, mysql, pdo, zip, xml, et quelques autres que j'aurais oublié lors de cette écriture nocturne)

par exemple : apt install php8.0-common php8.0-mysql php8.0-ldap php8.0-xml php8.0-xmlrpc php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip php8.0-intl -y

docker docker-compose

par exemple : apt install docker docker-compose -y

git

par exemple : apt install git -y

composer

par exemple : apt install composer -y

et gros un apt-get install ou un apt install ou un yum install ou un pacman -S ou encore yahourt -S vous suffira dans bien des cas. A moins que vous soyez sur une distribution spéciale que j'affectionne mais que je n'ai pas réussi à virtualiser par manque de temps GUIX, à ce moment-là je vous laisse faire : cela ne devrai pas vous poser trop de problèmes...

Voyons maintenant comment installer l'environnement ainsi que le framework SAND avant de développer et de comprendre ses mécanismes

Afin de pouvoir démarrer un projet SAND, vous devez mettre en place votre environnement de développement. Un bon IDE est déja la base nécessaire afin de programmer. Certains choisissent Eclipse, je vous conseillerais la version PDT de Eclipse qui est spécialisée PHP. D'autres vont vouloir programmer avec VisualStudioCode, qui est open source et permet grâce à ses nombreux modules de gérer à la fois docker et git tout en se concentrant sur ses lignes de programmation. Pour les plus passionnés : vous pouvez tester puis acheter une version annuelle de PHPStorm ou ZendStudio de puissants IDE provenant des plus grosses communautés de programmeurs PHP passionnées : ce sont les meilleurs sur le marché actuel. Aussi vous pouvez utiliser des éditeurs plus simples tels que Sublime Text ou Scite ou encore Notepad++. C'est à vous de voir ce qui vous convient le mieux actuellement.

Entrons maintenant dans le vif du sujet :

Commençons par cloner le dépot docker nécessaire au framework par la commande git clone :

git clone https://github.com/sprintcube/docker-compose-lamp.git

puis déplacez-vous dans le dossier www par la commande cd :

cd docker-lamp/www

et cloner le dépot du framework dans ce dossier sous le nom my-new-project-directory par la commande git clone :

git clone https://github.com/Acksop/SAND-framework.git my-new-sand-projet-directory

Voilà vous avez le nécessaire pour scruter le code du Framework et consulter les quelques documentations primales qui se trouvent dans le dossier www/my-new-sand-projet-directory/data/docs

Comment configurer l'environnement afin de commencer à consulter l'interface de base de SAND

Voilà vous avez cloner les dépôts de base, mais il faut maintenant les configurer afin d'obtenir votre première page sur un navigateur. Pour cela nous allons mettre en place la configuration de docker-compose, puis faire le lien avec le dépôt du framework proprement dit.

tout d'abord, veuillez renommer le fichier sample.env en .env qui est nécessaire afin de définir les variables environnement de docker-compose :

cd ../ mv sample.env .env

De base, ce fichier comporte les bonnes variables d'environnement pour lancer l'image nécessaire sur windows et linux. En ouvrant le fichier .env, vous avez le loisir de modifier les ports de phpmyadmin et du serveur mysql. Plus d'informations sont disponible dans le fichier README.md

Je ne peut que vous conseiller d'ouvrir les fichiers .env et docker-compose.yml après avoir lu le README, et si vous êtes familier avec les lignes de commandes bash ce devrait être possible pour vous de comprendre la liaison intime entre ces deux fichiers. En effet, docker-compose.yml dépend des variables contenues dans le fichier .env

Parallèlement à cela vous devez configurer le fichier config/vhosts/default.conf afin de pointer le dossier my-new-project-directory à la bonne adresse locale:

ajouter/décommenter simplement les lignes suivantes dans ce fichier :

nano config/vhosts/default.conf

  <VirtualHost *:80>  
      ServerName  my-new-sand-project.dev.local  
      ServerAdmin webmaster@localhost  
      DocumentRoot "/var/www/my-new-sand-project-directory/public"  
          <Directory "/var/www/my-new-sand-project-directory/public/">  
                  AllowOverride all  
          </Directory>  
  </VirtualHost>

vous pouvez aussi utiliser la commande suivante :

     ServerName  my-new-sand-project.dev.local  
     ServerAdmin webmaster@localhost  
     DocumentRoot "/var/www/my-new-sand-project-directory/public"  
         <Directory "/var/www/my-new-sand-project-directory/public/">  
                 AllowOverride all  
         </Directory>  
 </VirtualHost>' >> config/vhosts/default.conf

Une fois ceci fait, ouvrez le fichier docker-compose.yml

nano docker-compose.yml

et ajouter/décommenter la ligne à la suite de la config des extra-hosts :

#- “my-new-sand-project.dev.local:127.0.0.1”

Voilà vous êtes presque prêt à utiliser un [docker-lamp](https://github.com/sprintcube/docker-compose-lamp). J'espère néanmoins que vous avez un compte sur docker-hub connecté à votre docker-desktop si sous êtes windows... Avec Linux tout marche tout de bout en bout facilement.

Une petite astuce sous windows cependant : afin d'utiliser les commandes que je vous ai donné sur cette page, vous devez avoir installé et lancer git bash.

Une dernière chose avant de configurer les dépendances de SAND : afin que votre navigateur puisse accéder au vhost docker que nous avons configuré, il vous faut ajouter les lignes suivantes au fichier hosts de votre OS.

  127.0.0.1	html.dev.local  
  127.0.0.1	my-new-sand-project.dev.local

Sous windows celui-ci se trouve dans c:\Windows\System32\drivers\etc et sous Linux sous /etc

Configurer SAND pour un premier lancement

Allez ! Vous y êtes presque :

Afin de charger toutes les dépendances vous devez avoir composer d'installé. Alors déplacez-vous dans le dossier www/my-new-project-directory

cd www/my-new-sand-project-directory

et lancer la commande composer update

Bon et maintenant ?

Il vous faut mettre en place charger les dépendances composer dans trois autres dossiers, un pour faire du Test Driven Development (TDD), un autre pour les tests fonctionnel BeHat, et enfin un dernier pour réaliser des builds et des métriques sur votre projet

Suivez et exécutez ces commandes :

   cd tests  
   cd phpunit  
   composer update  
   cd ../behat  
   composer update  
   cd ../../build  
   composer update  
   cd ../

Voilà tout est prêt, enfin presque : reste à lier les variables de configuration du framework, celles-ci sont toutes dans le dossier application/config/ : Donc à partir de là :

   cd application/config  
   mv app-parameters.php.skel app-parameters.php  
   mv bdd-parameters.php.skel bdd-parameters.php  
   mv console-parameters.php.skel console-parameters.php

enfin pour finir mettons en place la configuration de l'URL locale et de la base de données Mysql propre au docker-lamp:

nano app-parameters.php

modifier la constante PATH_URL avec la valeur http://my-new-sand-project.dev.local

sauvegardez, puis

nano bdd-parameters.php

modifiez les constantes par défaut de cette manière

   define('DSN_BDD_DEFAULT', "mysql:host=database;dbname=docker");  
   define('USER_BDD_DEFAULT', "docker");  
   define('PASS_BDD_DEFAULT', "docker");

sauvegardez, puis...

Voilà, vous êtes prêt à lancer le daemon docker !

Lancer docker et accéder à l'interface de base du framework SAND-Global

Bon normalement à partir de là, vous devriez être capable de mettre en place la base du framework à l'adresse : http://my-new-sand-project.dev.local ou tout autre adresse que vous auriez précédemment préférée à celle-ci.

Juste ouvrez votre terminal favori puis lancer la commande suivante depuis la racine contenant le fichier docker-compose.yml :

docker-compose up -d -----build

si tout se passe bien, vous allez assister à un build parfait et à l'affichage des lignes suivantes ; celles-ci valident que tout s'est bien déroulé :

$ docker-compose up -d
[...]
Network docker-lamp_default Creating
Network docker-lamp_default Created
Container docker-lamp-database Creating
Container docker-lamp-database Created
Container docker-lamp-php80 Creating
Container docker-lamp-phpmyadmin Creating
Container docker-lamp-phpmyadmin Created
Container docker-lamp-php80 Created
Container docker-lamp-database Starting
Container docker-lamp-database Started
Container docker-lamp-php80 Starting
Container docker-lamp-phpmyadmin Starting
Container docker-lamp-phpmyadmin Started
Container docker-lamp-php80 Started

Voilà ! l'installation est terminée. Rendez-vous sur http://my-new-sand-project.dev.local pour admirer votre travail :)

Dans le cas ou le build ne fonctionne pas, tentez de regarder dans le dossier bin/php80 le fichier DockerFile et commentez les lignes qui posent problème par un dièse(#) . Un peu d'huile de mimines et le tour est joué.

Voici maintenant quelques commandes-astuces avec Docker :

docker ps permet de voir les conteneurs lancés actuellement

docker logs permet de comprendre pourquoi un conteneur n'est pas stable en raison d'une mauvaise configuration

docker exec permet d'entrer dans le conteneur et de relancer certains services, à cependant utiliser avec précaution car dès que vous réalisez un rebuild du conteneur, les modifications réalisées à l'intérieur sont effacées.

pour Docker-compose maintenant :

vous pouvez utiliser docker-compose down et docker-compose kill.

A vous de jouer :) !