Transcript MYSQL

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.
QUELQUES SERVEURS HTTP
HTTP
SERVEUR IIS Internet
Information
Service(Microsoft)
SERVEUR ZEUS
SERVEUR APACHE
SERVEUR JAVA(Sun Java System)
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
http://www.google.fr
PAGE HTML
Les composantes d’une
application web dynamique
Client
Serveur
PHP
MYSQL
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
1) PHP
2) MYSQL
3) APACHE
4) PHPADMIN qui permet l’administration du produit.
On dit aussi que le package EASYPHP est un package WAMP qui
signifie Windows – Apache – Mysql - Php
•
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é mi1993. 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..)
Appel d’un script PHP
INTERPRETEUR 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.
PHP et la Sécurité
• 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é
• 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
=
"GPC"
; 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 = "text/html"
;default_charset = "iso-8859-1"
;;;;;;;;;;;;;;;;;;;;;;;;;
Retour d’expérience : La base de données AQUIPOL
Module d’intégration dans 4D
Base Cindoc
Export des
données
sous forme
d’un fichier
Texte avec
des balises
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:="#"
sui:=""
sui:="# "
virg:=","
y:=1
vti:=""
Tant que (Non(Fin de selection([AQUIPOL])))
CREER ENREGISTREMENT([Transfert])
$Au:=[AQUIPOL]Au+" "+[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
En conclusion
•
Les logiciels libres
MANGEZ-EN !!!!!!!!!!!!!
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