Programmer en php , un outils necessaire : WAMP, LAMP ou XAMP.
Je reviens sur ces questions récurentes des debutants qui font leur premier pas avec le monde web et surtout la programmation en "Backend" et qui font des confusions sur le roles des acteurs dans le pipline qui produit la page web visible par l'utilisateur à travers son naviguateur(beaucoup me pose les memes questions et les memes problemes inbox).
Pour developper en php, donc faire du site dynamique il faut avoir:
1.=> Un Navigateur (Google chrome, Mozilla, Microsoft edge, Safari etc..), bref si vous avez un ordinateur alors par defaut vous avez au moins un navigateur, si c'est windows alors vous avez soit internet explorer(qui va quitte le marche et ne sera plus present dans windows) ou microsoft edge. Mais en tant que developpeur, prenez le soin d'installer tous les autres navigateurs comme cela vous pouvez voir à quoi ressemble votre site dans tous les navigateurs, ne dite jamais que si votre site fonctionne bien dans google chrome ça va, non.. si vous avez par exemple beaucoup d'utilisateurs de votre site dans un coin du monde qui utilise Mozilla et que votre site ne fonctionne pas bien sur Mozilla, vous les perdrez...that all.
2=> Vous avez besoin d'un editeur de texte. votre ordinateur si c'est windows a au moins notepad, mais vous avez nodepad++(https://notepad-plus-plus.org/downloads/) qui est plus complet et supporte meme les langages. Cependant un bon developpeur doit avoir dans sa machine l'editeur Visual Studio Code (VCS)(https://code.visualstudio.com/download), c'est le top des top et il supporte tous les langages de programmation car il fonctionne sous le modele des extensions, donc en fonction de ce que vous voulez developpez et du langage , vous installer son extension et hop vous etes chez vous.
3.=> il faut un serveur web, vous avez bien compris? il faut un serveur qui soit capable de recevoir les requetes HTTP du navigateur, les interpreter, puis les passer à une application backend puis recevoir la reponse de l'application backend et retourner une reponse avec le HTML au navigateur, il y a plusieurs serveur gartuit online, apache, ngnix, tomcat, IIS(internet information service) etc.. normalement le serveur doit etre installé sur une autre machine et etre performante car la machine la ou il est installe doit etre pret à recevoir des millions de requetes par seconde, imaginez un site comme facebook, google, amazon etc.. ils reçoivent des millions voir des milliards de requetes par seconde, cependant comme vous etes seulement en phase de developement et ce n'est que vous qui devez faire les requetes sur votre site quand vous etes entrain de developper, alors il vous faut installer un serveur web sur votre machine, oui.. votre machine va se transformer en un serveur pendant le development.
4.=> il vous faut egalement installer un environnement d'execution du code PHP, votre application backend etant ecrit en php, il vous faut l'executable de php pour pouvoir par exemple interagir avec une base de données Mysql , faire des requetes sql, combiner par exemple avec du HTML et retourner la reponse au serveur web qui va le passer au navigateur, php peut aussi lire l'image dans un repertoire etc...
5.=> il vous faut une base de données, bref un serveur de base de donnèes, comme le serveur web, il doit egalement etre dans sa propre machine qui doit avoir une bonne resource, une bonne RAM, beaucoup de giga d'espace sur le disque dure car il doit etre a mesure de stoker une quantité enorme de données et pouvoir elaborer des millions de requetes SQL qui lui viennent du serveur web. Mais en phase de developpement, vous devez l'avoir dans votre machine en locale comme le serveur web, il existe beaucoup de serveur de database gratuit online, Mysql, MariaDB, postgres, Mysql server, sqlite etc..
Pour simplifier la Vie au developpeur php, les GURU du web on crée une solution tout en un WAMP(https://www.wampserver.com/en/) pour windows, ou LAMP pour linux ou simplement XAMP c'est la meme chose.
WAMP contient donc une seule solution qui en fait contient, un service pour faire executer le site web donc un serveur apache, deux serveur de base de données donc Mysql, et MariaDB, un environement d'execution de PHP, puis aussi un site web appellé phpmyadmin qui est l'interface web utilisé pour manipuler sa base de données mysql ou mariadb, donc à travers phpmyadmin, on peut creer la base de données, ajouter les tables dans la base de données, bref faire du CRUD(Create-Read-Update-Delete) donc faire des requetes sql dans sa base de données, en bref pour travailler avec une BDD il y a 3 possibilités:
A>= en ligne de commande en utilisant la console de mysql par exemple: c'est à eviter pour tout debutant.
B=> à travers phpmyadmin, la plus recommandee
C=> installer un client lourd Mysql comme MySql workbench (https://dev.mysql.com/downloads/workbench/) ou heidisql(https://www.heidisql.com/)
la B c'est le chemin le plus facile pour le débutant, la B si on veut avoir une interface un peu plus pratique.
En plus tous les sites web repondront dans votre machine à l'addresse : http://localhost, Localhost c'est en fait un nom de domaine qui renvoie a votre machine car comme votre machine est devenue à la fois un serveur web, un serveur de base de données et donc peut passer du traffic HTTP à l'interieur de votre ordinateur, on fait tout par ce nom "fictif" localhost, on l'appelle en fait addrees de loopback et elle correspnd à une IP standard = 127.0.0.1 donc quand le navigateur rencontre Localhost il le traduit immediatement en 127.0.0.1 et tout le routage est fait internement a votre machine.
Dans la barre de tache, quand vous lancez wamp, verifiez que son icone est verte, si elle n'est pas verte et est orange, cela signifit que tous les services ne sont pas actifs, vous devez le faire redemarrer.
verifiez que les portes de Mysql ou de Mariadb ne sont pas dejà prises dans votre machine, en fait chaque application qui doit communiquer à l'exterieur dans un ordinateur est attachée à quelque chose qu'on appelle une porte, qui est en fait un numero unique que le systhème d'exploitation utilise pour identifier le processus de cette application quand il faut lui passer les données, donc en regle generale, les requetes http sont envoyés au serveur à travers un protocol qu'on appelle TCP/IP (Transfert Control Protocol/Internet Protocol), IP c'est le protol qui gere les adresses IP donc j'ai parlé dans l'article sur la DNS, TCP c'est ce protocole qui s'occupe de decouper les requetes HTTP en petit pacquet et les reconstruit à leur arrivé sur le serveur et TCP travaille etroitement avec la notion de porte et c'est une notion importante qui sert enorment quand on veut parler de la securite d'une application sur une machine serveur, par exemple de default, apache le serveur web de WAMP repond sur la porte 80, donc normalement on devrait ecrire http://localhost:80 comme http://www.google.com:80 car la porte de defaut d'un serveur web c'est le 80, cependant ci dans votre machine par meguarde cette porte est dejà occupée par une autre application, on peut bien parametre apache de maniere qu'il reponde à une autre porte, par exemple 8088 donc on pourra acceder au site à travers l'adresse http://localhos:8088 etc..
En image vous avez les captures d'ecran de mon ordinateur ou je vous faire voir les portes de defauts des differentes applications sur WAMP.
n'oubliez pas que vous devez mettre votre site web dans le sous repertoire WWW du repertoire dans lequel vous avez installé WAMP.
Je ferai un post exclusivement dedié à l'utilisation de Docker et Docker-compose car avec l'avancée technologique, il vaut mieux comprendre cet outils qui permet de developper dans toutes les technologies sans presque plus rien installer dans sa machine, nous ferons un exemple concret de l'utilisation de docker pour deployer un site complet fait en php.
Abonnez vous au blog pour ne rien manquer car certains contenus sont exclusifs rien qu'aux abonnées.
Mon Post sur cet article peut etre aussi lu ici sur ma page facebook
Happy coding
LarrySig Guest
24.05.2024, 18:18
Post: Comment fonctionnent Internement les guichets automatiques ?
Orvilledop Guest
22.05.2024, 00:57
Post: Comment fonctionnent Internement les guichets automatiques ?
Orvilledop Guest
15.05.2024, 16:04
Post: Comment fonctionnent Internement les guichets automatiques ?
Franck Guest
14.05.2024, 19:34
Post: Comment deployer un site web statique sur github?