DES LOGICIELS LIBRES PHP – MYSQL
Un peu d’histoire Le  projet GNU  est le premier projet de création de  logiciels libres  lancé en  1983  par  Richard  Stallman  pour créer le  système d'exploitation   GNU  dont le développement a commencé en janvier 1984. GNU ,  acronyme récursif  qui signifie en  anglais   «  GNU's Not Unix  », littéralement « GNU n'est pas  Unix  ». L'objectif officiel du projet était de produire un nombre de logiciels libres suffisamment important pour pouvoir travailler sans aucun  logiciel propriétaire . La première étape importante était de produire un système d’exploitation libre. Cet objectif fut atteint en  1992  lorsque la dernière brique manquante, un noyau, fut apportée par  Linux , un noyau de type Unix libre. Actuellement les objectifs du projet GNU sont le développement de logiciel et la sensibilisation du public aux principes éthiques a l'origine du logiciel libre.
Ainsi l’expression «logiciel libre »correspond d’après  Stallman  à 4 libertés: la liberté d'exécuter le programme, pour tous les usages,  la liberté d'étudier le fonctionnement du programme, et de l'adapter à ses besoins,  la liberté de redistribuer des copies,  la liberté d'améliorer le programme et de publier ses améliorations, pour en faire profiter toute la communauté.
Tout logiciel, s’il répond à ces 4 notions fondamentales est donc considéré comme faisant partie des logiciel libre Il apporte des avantages indéniables en réequilibrant les droits et devoirs des auteurs par rapport aux utilisateurs notamment: une diminution du risque de clients captifs par une concurrence accrue. Un partage de connaissance entre tous les acteurs. Le respect des standards, la portabilité…..
Quelques Rappels HTTP (HyperText Transfert Protocol) C’est avant tout un protocole, avis, norme de communication entre  Client Serveur . Un ordinateur sur lequel fonctionne un serveur HTTP est appelé Serveur Web.
HTTP SERVEUR  ZEUS SERVEUR  APACHE SERVEUR  IIS I nternet  I nformation  S ervice(Microsoft) SERVEUR  JAVA (Sun Java System) QUELQUES SERVEURS HTTP
MYSQL – PHP- APACHE La base de données MYSQL Le serveur HTTP APACHE La publication PHP
Comment cela fonctionne ?
Les composantes d’une application web simple Client Serveur http://www.google.fr PAGE HTML
Les composantes d’une application web dynamique Client Serveur MYSQL PHP
Où Télécharger ces logiciels libres et comment les installer ? Un produit unique qui offre le  4 en 1 . En effet EasyPhP qui se télécharge depuis le site  http://www.easyphp.org/telechargements.php3 En effet, EasyPhP permet d’Installer PHP MYSQL APACHE PHPADMIN  qui permet l’administration du produit. On dit aussi que le package  EASYPHP  est un package  WAMP  qui signifie  W indows –  A pache –  M ysql -  P hp
 
    Lancer EasyPHP  On ne peut pas à proprement parler du lancement d'EasyPHP, il s'agit en fait de la mise en route du serveur Apache et de MySQL. A l'installation, un raccourci vers EasyPHP est créé dans le répertoire "Démarrer/Programmes/EasyPHP". Une fois EasyPHP lancé, une icone se place dans la barre des tâches à coté de l'horloge. Un clic droit permet d'accéder à différents menus :   • Fichier Log : renvoie aux erreurs générées par Apache et MySQL   • Configuration : donne accès aux différentes configurations d'EasyPHP   • Web local : ouvre la page "http://localhost/"   • Démarrer/Arrêter : démarre/arrête Apache et MySQL   • Quitter : ferme EasyPHP
Par défaut le serveur Apache crée un nom de domaine virtuel (car local) http://127.0.0.1 ou  http://localhost . Ainsi, quand on choisit "Web local" dans le menu d'EasyPHP, le navigateur s'ouvre sur cette URL et affiche la page index.php de ce site qui correspond en fait au contenu du dossier www d'EasyPHP.
QUELQUES MOTS SUR PHP Le PHP(Personal Home Page) est né mi-1993. C’est un language développé à l’origine en C par Rasmus Lerdorf.  Le script PHP commence par les balises  <? et se termine par ?> C’est en 1994 que la première version de PHP a été publiée. Rasmus Lerdorf remplace commence par remplacer le serveur HTTP par APACHE.
Apache serveur plus performant . Ce qui a permis d’installer la partie script du PHP directement sur le Serveur plutôt que sur l’ordinateur d’accueil (client). PHP version 2 voit le jour en 1995. Aujourd’hui on en est à PHP V. 6 et tourne sur de nombreux système d’exploitation(Windows, Linux, Unix..)
INTERPRETEUR PHP Appel d’un script PHP
Les avantages de PHP Les scripts PHP peuvent être inclus dans les pages HTML. Les scripts PHP sont exécutés directement sur le serveur  avant l’envoi de la page au client. (Ce qui permet de réduire la quantité de données téléchargées vers l’ordinateur client et de plus, le client, même doté d’un ordinateur peu puissant peut consulter des pages d’une construction complexe. Les outils qui sont utilisés dans la chaîne PHP(Apache, Mysql, etc.) sont gratuits. PHP fonctionne sur tous les systèmes d’exploitation. PHP peut se connecter sur de nombreuses bases de données(Dbase, Oracle, Sql Server..) même si Mysql(gratuite)  est la plus couramment utilisée.
Attention PHP présente dans ses commandes des trous de sécurité. Certaines commandes PHP, si on ne  prend pas le soin de bien tester ses scripts, peuvent permettre des intrusions sur le serveur et donc sur les bases de données. PHP et la Sécurité
PHP et la Sécurité Tout script PHP se doit d’être sécurisé. La première des sécurités consiste à développer et stocker tous les scripts sur le serveur. Transformer les caractères malicieux comme par exemple le ; par des caractères inoffensifs comme le _(caractère underscore).
register_globals = On ; Whether or not to register the EGPCS variables as global ; variables.  You may want to turn this off if you don't want ; to clutter your scripts' global scope with user data.  This makes ; most sense when coupled with track_vars - in which case you can ; access all of the GPC variables through the $HTTP_*_VARS[], ; variables. ; You should do your best to write your scripts so that they do ; not require register_globals to be on;  Using form variables ; as globals can easily lead to possible security problems, if ; the code is not very well thought of. register_argc_argv = On ; This directive tells PHP whether to declare the argv&argc ; variables (that would contain the GET information).  If you ; don't use these variables, you should turn it off for ; increased performance post_max_size = 8M ; Maximum size of POST data that PHP will accept. gpc_order = &quot;GPC&quot; ; This directive is deprecated.  Use variables_order instead. ; Magic quotes magic_quotes_gpc = On ; magic quotes for incoming GET/POST/Cookie data magic_quotes_runtime= Off ; magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_sybase = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \') ; automatically add files before or after any PHP document auto_prepend_file = auto_append_file = ; As of 4.0b4, PHP always outputs a character encoding by default in ; the Content-type: header.  To disable sending of the charset, simply ; set it to be empty. ; PHP's built-in default is text/html default_mimetype = &quot;text/html&quot; ;default_charset = &quot;iso-8859-1&quot; ;;;;;;;;;;;;;;;;;;;;;;;;;
Retour d’expérience :  La base de données AQUIPOL Base Cindoc Export des données sous forme d’un fichier Texte avec des balises Module d’intégration dans 4D
Base AQUIPOL Production d’un fichier Texte avec des balises   Intégration dans la Base MYSQL
 
TOUT SELECTIONNER([Transfert]) SUPPRIMER SELECTION([Transfert]) Fichier application([AQUIPOL]) TOUT SELECTIONNER([AQUIPOL]) DEBUT SELECTION([AQUIPOL]) C_ENTIER(y) C_ALPHA(1;sui;deb;virg) C_TEXTE(vti;mc) ok:=1 deb:=&quot;#&quot; sui:=&quot;&quot; sui:=&quot;# &quot; virg:=&quot;,&quot; y:=1 vti:=&quot;&quot; Tant que (Non(Fin de selection([AQUIPOL]))) CREER ENREGISTREMENT([Transfert]) $Au:=[AQUIPOL]Au+&quot;  &quot;+[AQUIPOL]Am    ` [Transfert]REF:=deb+[AQUIPOL]ref+sui+virg [Transfert]AU:=deb+$Au+sui+virg vti:=sui+[AQUIPOL]Ti+sui [Transfert]Ti:=vti+virg vti:=sui+[AQUIPOL]So+sui [Transfert]So:=vti+virg vti:=sui+[AQUIPOL]Re+sui [Transfert]Re:=vti+virg [Transfert]DA:=sui+Sous chaine([AQUIPOL]Da;1;4)+sui+virg mc:=[AQUIPOL]Mc traitmc (mc) vti:=mc [Transfert]MC:=sui+vti+sui+virg mc:=[AQUIPOL]Geo traitmc (mc) vti:=mc [Transfert]GEO:=sui+vti+sui y:=y+1 STOCKER ENREGISTREMENT([Transfert]) ENREGISTREMENT SUIVANT([AQUIPOL]) Fin tant que
 
Les logiciels libres MANGEZ-EN !!!!!!!!!!!!! En conclusion
VRAI OU FAUX ? Il ne faut pas confondre vitesse et précipitation Il ne répond pas forcément à toutes les qualités attendues La pérénité de la solution dépend de la communauté de développement(failles de sécurité,etc.) Ce n’est pas parce que l’Internet regorge de documentation sur le libre qu’on doit tout apprendre par soi-même
D’un point de vue financier, et pour maîtriser les délais, il conviendra d’évaluer, comme ailleurs ce qui peut-être sous-traité Il reste à identifier le niveau d’exigence et les prestataires à même de répondre, ce qui est loin d’être simple
Contribuer : une nécessité Dans la vie d’un projet il est nécessaire de collaborer avec d’autres acteurs Communiquer avant tout Assurer une veille régulière La nécessité de mutualiser les coûts de maintenance (patches) afin d’assuer le maintien en condition opérationnelle
Chaque projet informatique est singulier Dans les projets libres les règles du jeu sont chamboulées Par contre avec de la méthode et le jeu vertueux des contributions au logiciel libre, la mutualisation de l’effort et des coûts  et en valorisant le travail des informaticiens, il est possible d’avancer. Le chemin reste difficile et le rôle du  management des projets sera la clé de la réussite

Mysql

  • 1.
    DES LOGICIELS LIBRESPHP – MYSQL
  • 2.
    Un peu d’histoireLe projet GNU est le premier projet de création de logiciels libres lancé en 1983 par Richard Stallman pour créer le système d'exploitation GNU dont le développement a commencé en janvier 1984. GNU , acronyme récursif qui signifie en anglais «  GNU's Not Unix  », littéralement « GNU n'est pas Unix  ». L'objectif officiel du projet était de produire un nombre de logiciels libres suffisamment important pour pouvoir travailler sans aucun logiciel propriétaire . La première étape importante était de produire un système d’exploitation libre. Cet objectif fut atteint en 1992 lorsque la dernière brique manquante, un noyau, fut apportée par Linux , un noyau de type Unix libre. Actuellement les objectifs du projet GNU sont le développement de logiciel et la sensibilisation du public aux principes éthiques a l'origine du logiciel libre.
  • 3.
    Ainsi l’expression «logiciellibre »correspond d’après Stallman à 4 libertés: la liberté d'exécuter le programme, pour tous les usages, la liberté d'étudier le fonctionnement du programme, et de l'adapter à ses besoins, la liberté de redistribuer des copies, la liberté d'améliorer le programme et de publier ses améliorations, pour en faire profiter toute la communauté.
  • 4.
    Tout logiciel, s’ilrépond à ces 4 notions fondamentales est donc considéré comme faisant partie des logiciel libre Il apporte des avantages indéniables en réequilibrant les droits et devoirs des auteurs par rapport aux utilisateurs notamment: une diminution du risque de clients captifs par une concurrence accrue. Un partage de connaissance entre tous les acteurs. Le respect des standards, la portabilité…..
  • 5.
    Quelques Rappels HTTP(HyperText Transfert Protocol) C’est avant tout un protocole, avis, norme de communication entre Client Serveur . Un ordinateur sur lequel fonctionne un serveur HTTP est appelé Serveur Web.
  • 6.
    HTTP SERVEUR ZEUS SERVEUR APACHE SERVEUR IIS I nternet I nformation S ervice(Microsoft) SERVEUR JAVA (Sun Java System) QUELQUES SERVEURS HTTP
  • 7.
    MYSQL – PHP-APACHE La base de données MYSQL Le serveur HTTP APACHE La publication PHP
  • 8.
  • 9.
    Les composantes d’uneapplication web simple Client Serveur http://www.google.fr PAGE HTML
  • 10.
    Les composantes d’uneapplication web dynamique Client Serveur MYSQL PHP
  • 11.
    Où Télécharger ceslogiciels libres et comment les installer ? Un produit unique qui offre le 4 en 1 . En effet EasyPhP qui se télécharge depuis le site http://www.easyphp.org/telechargements.php3 En effet, EasyPhP permet d’Installer PHP MYSQL APACHE PHPADMIN qui permet l’administration du produit. On dit aussi que le package EASYPHP est un package WAMP qui signifie W indows – A pache – M ysql - P hp
  • 12.
  • 13.
        LancerEasyPHP  On ne peut pas à proprement parler du lancement d'EasyPHP, il s'agit en fait de la mise en route du serveur Apache et de MySQL. A l'installation, un raccourci vers EasyPHP est créé dans le répertoire &quot;Démarrer/Programmes/EasyPHP&quot;. Une fois EasyPHP lancé, une icone se place dans la barre des tâches à coté de l'horloge. Un clic droit permet d'accéder à différents menus :   • Fichier Log : renvoie aux erreurs générées par Apache et MySQL   • Configuration : donne accès aux différentes configurations d'EasyPHP   • Web local : ouvre la page &quot;http://localhost/&quot;   • Démarrer/Arrêter : démarre/arrête Apache et MySQL   • Quitter : ferme EasyPHP
  • 14.
    Par défaut leserveur Apache crée un nom de domaine virtuel (car local) http://127.0.0.1 ou http://localhost . Ainsi, quand on choisit &quot;Web local&quot; dans le menu d'EasyPHP, le navigateur s'ouvre sur cette URL et affiche la page index.php de ce site qui correspond en fait au contenu du dossier www d'EasyPHP.
  • 15.
    QUELQUES MOTS SURPHP Le PHP(Personal Home Page) est né mi-1993. C’est un language développé à l’origine en C par Rasmus Lerdorf. Le script PHP commence par les balises <? et se termine par ?> C’est en 1994 que la première version de PHP a été publiée. Rasmus Lerdorf remplace commence par remplacer le serveur HTTP par APACHE.
  • 16.
    Apache serveur plusperformant . Ce qui a permis d’installer la partie script du PHP directement sur le Serveur plutôt que sur l’ordinateur d’accueil (client). PHP version 2 voit le jour en 1995. Aujourd’hui on en est à PHP V. 6 et tourne sur de nombreux système d’exploitation(Windows, Linux, Unix..)
  • 17.
    INTERPRETEUR PHP Appeld’un script PHP
  • 18.
    Les avantages dePHP Les scripts PHP peuvent être inclus dans les pages HTML. Les scripts PHP sont exécutés directement sur le serveur avant l’envoi de la page au client. (Ce qui permet de réduire la quantité de données téléchargées vers l’ordinateur client et de plus, le client, même doté d’un ordinateur peu puissant peut consulter des pages d’une construction complexe. Les outils qui sont utilisés dans la chaîne PHP(Apache, Mysql, etc.) sont gratuits. PHP fonctionne sur tous les systèmes d’exploitation. PHP peut se connecter sur de nombreuses bases de données(Dbase, Oracle, Sql Server..) même si Mysql(gratuite) est la plus couramment utilisée.
  • 19.
    Attention PHP présentedans ses commandes des trous de sécurité. Certaines commandes PHP, si on ne prend pas le soin de bien tester ses scripts, peuvent permettre des intrusions sur le serveur et donc sur les bases de données. PHP et la Sécurité
  • 20.
    PHP et laSécurité Tout script PHP se doit d’être sécurisé. La première des sécurités consiste à développer et stocker tous les scripts sur le serveur. Transformer les caractères malicieux comme par exemple le ; par des caractères inoffensifs comme le _(caractère underscore).
  • 21.
    register_globals = On; Whether or not to register the EGPCS variables as global ; variables. You may want to turn this off if you don't want ; to clutter your scripts' global scope with user data. This makes ; most sense when coupled with track_vars - in which case you can ; access all of the GPC variables through the $HTTP_*_VARS[], ; variables. ; You should do your best to write your scripts so that they do ; not require register_globals to be on; Using form variables ; as globals can easily lead to possible security problems, if ; the code is not very well thought of. register_argc_argv = On ; This directive tells PHP whether to declare the argv&argc ; variables (that would contain the GET information). If you ; don't use these variables, you should turn it off for ; increased performance post_max_size = 8M ; Maximum size of POST data that PHP will accept. gpc_order = &quot;GPC&quot; ; This directive is deprecated. Use variables_order instead. ; Magic quotes magic_quotes_gpc = On ; magic quotes for incoming GET/POST/Cookie data magic_quotes_runtime= Off ; magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_sybase = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \') ; automatically add files before or after any PHP document auto_prepend_file = auto_append_file = ; As of 4.0b4, PHP always outputs a character encoding by default in ; the Content-type: header. To disable sending of the charset, simply ; set it to be empty. ; PHP's built-in default is text/html default_mimetype = &quot;text/html&quot; ;default_charset = &quot;iso-8859-1&quot; ;;;;;;;;;;;;;;;;;;;;;;;;;
  • 22.
    Retour d’expérience : La base de données AQUIPOL Base Cindoc Export des données sous forme d’un fichier Texte avec des balises Module d’intégration dans 4D
  • 23.
    Base AQUIPOL Productiond’un fichier Texte avec des balises Intégration dans la Base MYSQL
  • 24.
  • 25.
    TOUT SELECTIONNER([Transfert]) SUPPRIMERSELECTION([Transfert]) Fichier application([AQUIPOL]) TOUT SELECTIONNER([AQUIPOL]) DEBUT SELECTION([AQUIPOL]) C_ENTIER(y) C_ALPHA(1;sui;deb;virg) C_TEXTE(vti;mc) ok:=1 deb:=&quot;#&quot; sui:=&quot;&quot; sui:=&quot;# &quot; virg:=&quot;,&quot; y:=1 vti:=&quot;&quot; Tant que (Non(Fin de selection([AQUIPOL]))) CREER ENREGISTREMENT([Transfert]) $Au:=[AQUIPOL]Au+&quot; &quot;+[AQUIPOL]Am    ` [Transfert]REF:=deb+[AQUIPOL]ref+sui+virg [Transfert]AU:=deb+$Au+sui+virg vti:=sui+[AQUIPOL]Ti+sui [Transfert]Ti:=vti+virg vti:=sui+[AQUIPOL]So+sui [Transfert]So:=vti+virg vti:=sui+[AQUIPOL]Re+sui [Transfert]Re:=vti+virg [Transfert]DA:=sui+Sous chaine([AQUIPOL]Da;1;4)+sui+virg mc:=[AQUIPOL]Mc traitmc (mc) vti:=mc [Transfert]MC:=sui+vti+sui+virg mc:=[AQUIPOL]Geo traitmc (mc) vti:=mc [Transfert]GEO:=sui+vti+sui y:=y+1 STOCKER ENREGISTREMENT([Transfert]) ENREGISTREMENT SUIVANT([AQUIPOL]) Fin tant que
  • 26.
  • 27.
    Les logiciels libresMANGEZ-EN !!!!!!!!!!!!! En conclusion
  • 28.
    VRAI OU FAUX? Il ne faut pas confondre vitesse et précipitation Il ne répond pas forcément à toutes les qualités attendues La pérénité de la solution dépend de la communauté de développement(failles de sécurité,etc.) Ce n’est pas parce que l’Internet regorge de documentation sur le libre qu’on doit tout apprendre par soi-même
  • 29.
    D’un point devue financier, et pour maîtriser les délais, il conviendra d’évaluer, comme ailleurs ce qui peut-être sous-traité Il reste à identifier le niveau d’exigence et les prestataires à même de répondre, ce qui est loin d’être simple
  • 30.
    Contribuer : unenécessité Dans la vie d’un projet il est nécessaire de collaborer avec d’autres acteurs Communiquer avant tout Assurer une veille régulière La nécessité de mutualiser les coûts de maintenance (patches) afin d’assuer le maintien en condition opérationnelle
  • 31.
    Chaque projet informatiqueest singulier Dans les projets libres les règles du jeu sont chamboulées Par contre avec de la méthode et le jeu vertueux des contributions au logiciel libre, la mutualisation de l’effort et des coûts et en valorisant le travail des informaticiens, il est possible d’avancer. Le chemin reste difficile et le rôle du management des projets sera la clé de la réussite