[Aide] Je me noie entre FTP, SQL, localhost et PHP...

Résolu/Fermé
Shize815 Messages postés 5 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 30 septembre 2017 - 3 oct. 2014 à 16:24
 Celinette - 11 juil. 2021 à 00:32
Bonjour,

Je vous fais un bref topo : je suis en stage d'informatique après seulement un an de formation durant lequel j'ai brièvement vu la SQL mais sinon j'ai essentiellement fait du C.

Me voilà donc en stage et ma mission pour la semaine à venir consiste à retravailler un site, mais en local, pour pouvoir tester mes améliorations avant de les mettre en ligne (jusque là tout va bien).
Je m'en sentais capable ayant bien appris mes cours de HTML et de PHP et potassant occasionnellement ma SQL mais voilà, dans la pratique je n'y comprends rien...

Mon problème : Mon patron m'a donc fait télécharger Filezilla pour récupérer son FTP (je sais toujours pas ce que c'est dans la pratique, je saisis pas la différence entre ça et une base de donnée SQL...). Il m'a ensuite envoyé sa bdd par skype (format .sql compressée en zip, jusque là tout va bien).
Puis il m'a fait téléchargé easyPHP pour le PHPmyAdmin et le localhost... Et là il m'a dit "bon week-end, avance comme tu peux jusqu'à lundi !"

Donc voilà à partir de ça comment je fais pour lancer son site en local avec son ftp à la racine de mon DD, sa bdd dans mes téléchargements et easyPHP dont je me suis jamais servi ?

Merci de m'aiguiller ou de m'expliquer quelques choses, je suis perdu... j'ai appris à coder moi, pas à manipuler tout ça ^^'
En plus il a ajouté que je devais aller modifier des trucs dans la bdd pou travailler sans mot de passe enfin bref, je crois qu'il m'a un peu surestimé j'ai peur de le décevoir sur ce coup... Help ? :)

3 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
3 oct. 2014 à 19:07
Salut, salut !
Je vais essayé de t'aider, n'hésite pas à m'indiquer si tu a besoin de plus d'éclaircissement sur certains points.

En gros, pour que le code PHP puisse s'exécuter, il faut qu'un serveur s'en occupe.
Ton Patron à donc un Serveur quelque part, pour pouvoir lire/modifier les fichiers qui sont dessus (Tes pages php, html, ...) tu doit passer par un logiciel FTP (File Transfert Protocole).

Pour développer en Local, tu est obligé d'installer un logiciel pour simuler le comportement d'un serveur (easyPHP sert à ça, tout comme Wamp).
(Bon, en local pas besoin de FTP vue que tout est sur ton PC).
L'adresse pour accéder au site est localhost

EsayPhp te permet d'avoir une base de donnée, et PHPmyadmin te permet de la gérer.
Le fichier .sql te permet d'importer la base de donnée de ton Patron.

Tu doit donc :
- Installer EsayPHP pour avoir un "serveur" local.
- Récupérer les fichiers du serveur FTP de ton Patron et les mettent dans le bon dossier d'easyPHP (Fais gaffe à pas supprimer les fichiers du FTP, ton patron ne serait pas content)
- Créer une base de donnée, et y importer le(s) fichier(s) sql.

Il faudra ensuite changer les connexion à la base de donnée (Ou le fichier de config) pour qu'il se connecte à la tienne.
Change ensuite dans la base de donnée le mot de passe de l'admin (Via PhpMyAdmin)


Par contre, ton Patron de fait bosser le Week-End ? C'pa très classe ça.
2
Shize815 Messages postés 5 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 30 septembre 2017
5 oct. 2014 à 22:28
Ok merci beaucoup c'est très gentil et en plus étonnamment clair !
Du coup quelques questions subsistent :
Comment savoir dans quel dossier d'easyPHP mettre les fichiers récupérés en FTP ? Dans les dossiers "project" quand on ouvre l'onglet "développer en local" (ou équivalent je sais plus bien), ça le fait ?
Comment créer une base de donnée je devrais m'en sortir mais comment importer la sienne ensuite ? Est-ce que sa localisation sur mon DD a une importance ?

Mais ça a la rigueur je pense que je peux trouver, Google est mon ami !

La vraie précision dont j'aurais besoin en revanche porte sur ça :
"Il faudra ensuite changer les connexion à la base de donnée (Ou le fichier de config) pour qu'il se connecte à la tienne.
Change ensuite dans la base de donnée le mot de passe de l'admin (Via PhpMyAdmin)"

Je n'ai pas bien compris ce que je dois changer et dans quel but...? Je dois changer les requêtes du site pour qu'il pioche dans ma bdd au lieu de celle en ligne ?
Et pourquoi changer le mdp ?

Merci en tout cas c'est très gentil d'aider un débutant noyé comme ça ^^'
Et oui en plus il devait m'aider a lancer le site en local sur ma machine mais il a préféré partir en weekend a 12h30... Tant pis ! Haha
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
6 oct. 2014 à 08:27
Oui, ça doit être dans le dossier Projet, regarde dans l'aide de ce logiciel pour plus d'info. Phpmyadmin propose des option d'importation.

Pour le moment le code est configuré pour ce connecté à la vrai base de donnée, tu doit donc changer les paramètres de connexion (utilisés lors des mysql_connect) pour allez vers ta base en local,(JooS a bien expliqué ça dans son message), la plupart du temps les gens utilise un fichier de configuration pour stocker les données de la BDD, si il n'y a pas tu devra changer tout les mysql_connect.

J'ai supposé que tu n'avais pas le mot de passe admin, si tu l'a tant mieux, sinon, il faudra bien le changer pour pouvoir te connecter à l'interface du site.

PS : Lis bien le message de JooS si ce n'est pas fais , il est plus complet que moi et peut donc grandement t'aider.
0
C'est tellement clair!! merci milles fois!
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 5/10/2014 à 23:54
Salut,
Tout a été bien expliqué par Nhay, j'explique autrement !

Alors, avant d'avoir appris à coder en PHP, tu aurais du comprendre son fonctionnement !
PHP est un langage back-end, c'est à dire qu'il s'exécute coté serveur, pas comme le langage C ou C++ qui s'exécute sur ta propre machine (PC) !
Autre chose, ce n'est pas un langage compilé !
Lorsque tu programmes en C, après avoir terminer ton application, tu compiles ton code source afin qu'il soit traduit en code (instructions) machine (binaire), et grâce à l'exécutable, tu pourras accéder à ton application !
En revanche, avec PHP, lorsque tu termines ton application, il n'y a aucune phase de pré-complication, tu enregistres tes fichiers, et les instructions restent en langage moderne, et puisqu'il n'y a pas de pré-compilation, alors il n'y a pas d'exécutable !
Comment accéder à ton application, en exécutant directement les pages (scripts) voulues.

Donc si je tape "www.commentcamarche.net", le serveur (Apache) recherche la page "index" (par défaut), si il ne la trouve pas, alors il renvoie une erreur 404, sinon, il vérifie le type de fichier, si c'est ".html", alors il renvoie directement cette page au navigateur, sinon, si c'est ".php", alors il charge le module PHP (compilateur) en mémoire, et puis à chaque fois qu'il trouve la balise ouvrante "<?php" il passe la main au compilateur PHP, alors le compilateur compile et exécute la suite d'instructions jusqu'à qu'il rencontre la balise fermante "?>", donc il rend la main au serveur, et cette opération se répète jusqu'à la fin du fichier.
Une fois la fin du fichier atteinte, un résultat qui a été généré sera renvoyé au navigateur, ce résultat ne contiendra forcement aucune instruction PHP, mais généralement que du HTML, CSS et Javascript.

Donc si tu as tout compris, alors tu as bien saisi que pour le bon fonctionnement de toute ses opérations, on a besoin d'un serveur Apache pour interpréter les requêtes HTTP, un module (compilateur) PHP pour exécuter les pages PHP.

Maintenant, si ton application PHP doit "à un certain moment" interagir avec une base de donnée (via MySQL par exemple), alors il faut également un serveur de base de données.
Donc PHP envoie la requête SQL au serveur de base de donnée ou plus précisément au gestionnaire de base de données (MySQL par exemple), MySQL exécute la requête SQL et retourne un résultat, PHP récupère ce résultat ...

EasyPHP et Wampserver sont deux logiciels qui installent tous ces outils (Apache, PHP, MySQL) au complet sur ta machine, d'ailleurs le mot WAMP veut dire (Windows, Apache, MySQL, PHP).

Donc comme ça a été dit plus haut, tu dois installer l'un de ces logiciels afin de simuler le comportement d'un serveur web sur ta machine.

Pour le répertoire, c'est généralement "www", moi je travaille sous Wampserver, donc je ne peux le confirmer.

Concernant Filezilla, tu ne vas rien faire avec, il ne va te servir que pour télécharger les fichiers PHP (et autres) du serveur de ton patron, et pourquoi pas le jour ou tu aura terminer ton application et que ton patron t'aura donné le feu vert, tu pourras la déployer sur son serveur afin qu'elle soit accessible à travers son nom de domaine.

Comment créer la base de donnée, et ben si tu as tout compris, tu dois envoyer une requête SQL à MySQL, MySQL va exécuter cette requête et te retourner un résultat.
Maintenant, si tu ne maîtrise pas le langage SQL, alors tu peux créer ta base de donnée à l'aide de phpMyAdmin, c'est une application web qui te facilite la création, modification, suppression de tout ce qui est relié à une base de données, mais aussi l'IMPORTATION et l'exportation de bases de données (ou autres) sous forme de fichier SQL (ou autre types de fichier).
PhpMyAdmin s'installe aussi avec EasyPHP ou Wampserver.

Voila, à un certain moment, on a dit que PHP doit envoyé la requête SQL à MySQL, et MySQL se chargera de l'exécuter, mais c'est deux entités sont indépendante, donc pour que PHP puisse communiquer avec MySQL, il doit connaitre son adresse, le nom d'utilisateur qu'on lui attribué, et le mot de passe.
C'est pour ça qu'il t'a dit (plus haut) de changer la configuration initiale.

Puisque tu as exécuter EasyPHP sur ton PC, alors le serveur Apache, ainsi que le serveur de base de données sont tous installés sur ton PC, donc ils sont tous accessible via l'adresse local de ton PC (127.0.0.1) ou localhost, et puisque Apache doit traduire des requêtes HTTP afin de comprendre quelle page tu veux afficher, alors on doit y accéder via le protocole HTTP, or on ajoute seulement le http "http://localhost".

Donc dans ton nouveau fichier de configuration de base de données, tu auras :
Adresse du serveur (host) : "localhost"
Utilisateur : root (par défaut)
Mot de passe : (Aucun, par défaut)

et biensure le nom de ta base de données (si tu veux le changer) que tu va créer grâce à phpMyAdmin (en important le fichier SQL que ton patron t'a envoyé).

Bon courage.

Mettez en résolu quand c'est résolu ...
1
Shize815 Messages postés 5 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 30 septembre 2017
6 oct. 2014 à 11:05
Merci beaucoup c'est très très complet j'ose à peine imaginer le temps qu'il t'a fallu pour écrire tout ça !
Je vais essayer de m'en sortir aujourd'hui (mais je suis en arrêt maladie) et demain à mon retour au travail, et si j'y arrive je classe ce sujet en résolu.

En tout cas merci mille fois de votre dévotion et de votre temps les gars :)
0
Shize815 Messages postés 5 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 30 septembre 2017
7 oct. 2014 à 10:37
Voilà alors j'ai installé easyPHP j'ai mis les fichiersde mon patron téléchargés avec Filezilla dans le dossier "project" du coup quand je vais dans "web local', section "projet", il y est, sauf que quand je clique dessus j=ça m'affiche ça :

Link to database cannot be established: SQLSTATE[HY000] [1045] Access denied for user 'mobilier'@'localhost' (using password: YES)
bon par contre j'ai réussi à importer sa bdd mais je trouve pas le fichier de config...
Bref, une demi-victoire en somme !
Désolé d'être aussi lent à la détente ^^' je suis lent à comprendre mais une fois que j'ai compris, j'ai compris, ça reste et c'est limpide !
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
7 oct. 2014 à 12:02
Et ben il faut que tu recherches le fichier de configuration.
Essaye de trouver la ligne et le fichier ou l'erreur est engendré, puis tu pourra remonter à la source (là ou les paramètres de connexion à ta BD sont définies), sinon au pire dés cas, tu demandes à ton patron si il s'y connait (mais je pense que ça fera une mauvaise impression car c'est facile de trouver le fichier de config).

Sinon tu peux faire une recherches via notepadd++, tu lui fournit le répertoire de ton projet, et le mot clé "mobilier", et il t'affichera tout les fichiers ou ce mot clé est présent, et tu n'aura qu'à reconnaître le bon fichier.
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
3 oct. 2014 à 20:38
Bonjour,

Vous dites: "....pour récupérer son FTP (je sais toujours pas ce que c'est dans la pratique, je saisis pas la différence entre ça et une base de donnée SQL"

C'est pas grave. Vous êtes en stage. Donc vous apprenez..... Et c'est en stage que vous devez l'apprendre. Et si vous savez pas, vous demandez en stage.

A+
0