Serveur LAMP : Problème connexion MySql ? [RESOLU]

Applications, problèmes de configuration réseau
Avatar de l’utilisateur
joker_vb
yeomen
Messages : 239
Inscription : lun. 30 juil. 2007, 23:32

Serveur LAMP : Problème connexion MySql ? [RESOLU]

Message par joker_vb »

Salut,

Oui c'est encore moi, si je bloque à chaque étape c'est pas gagné...

J'ai un problème que je ne comprends pas, encore un truc qui me saute aux yeux mais que je ne vois pas...

J'ai installé un serveur LAMP : apache, php, mysql, phpadmin.

Si je mets une lance une simple page php ça marche : fichier = test.php

Code : Tout sélectionner

 <head>
        <title>Test serveur PHP</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <h2>Test PHP Seul sans SQL</h2>
        
        <p>
            En langage HTML : t'as un probl&egrave;me joker.<br />
            <?php echo "En langage PHP : il a du mal on dirait^^"; ?>
        </p>
    </body>
Mais dès que je souhaite interroger une base de données ça ne marche pas. La page du navigateur est vide de chez vide, même pas un petit message d'erreur :cry: : fichier = coursphp.php

Code : Tout sélectionner

<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("coursphp"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT * FROM jeux_videos"); // Requête SQL


// On fait une boucle pour lister tout ce que contient la table :

while ($donnees = mysql_fetch_array($reponse) )
{
?>

<p>
<strong>Jeu</strong> : <?php echo $donnees['nom']; ?><br />
Le possesseur de ce jeu est : <?php echo $donnees['possesseur']; ?>, et il le vend à <?php echo $donnees['prix']; ?> euros !<br />
Ce jeu fonctionne sur <?php echo $donnees['console']; ?> et on peut y jouer à <?php echo $donnees['nbre_joueurs_max']; ?> au maximum<br />
<?php echo $donnees['possesseur']; ?> a laissé ces commentaires sur <?php echo $donnees['nom']; ?> : <em><?php echo $donnees['commentaires']; ?></em>
</p>

<?php
}

mysql_close(); // Déconnexion de MySQL
?>
Alors je me demande si ce n'est pas mysql qui cloche, parce que le code :

Code : Tout sélectionner

mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("coursphp"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT * FROM jeux_videos"); // Requête SQL
est bon! Au début j'avais fait des petites erreurs d'étourderies, mais-là..; la preuve :
Image

Et pour en remettre une couche : j'ai fini par craquer, et rebooter sous win (ouah comment ça faisait longtemps^^) pour installer wamp et tester les mêmes pages, et ça marche bien.

Mais alors?! Tchi qu'il a bouiné?
  • - mysql a un problème?
    - j'ai modifié le mot de passe root et je ne m'en rapelle plus :smt017
    - un problème de droits?
Bref, maintenant que je suis certain que ç vient plutot de ma configuration Linux je viens ici :wink:

Code : Tout sélectionner

<?php echo $donnees['nom']; ?>
N.B : on ne sait jamais, j'ai suivi ce tuto pour installer tout ça.

Que dire de plus? Merci d'avance :wink:
Dernière modification par joker_vb le ven. 07 sept. 2007, 03:11, modifié 1 fois.
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

dans /etc/mycnf.xxx,
commente la ligne "skip networking"

et pour savoir ce qui merde essaie avec des lignes du genre:
mysql_connect(...) or die('connection merde');
Avatar de l’utilisateur
joker_vb
yeomen
Messages : 239
Inscription : lun. 30 juil. 2007, 23:32

Message par joker_vb »

Merci _alexmyself :
Bon pour l'instant je n'ai pas encore fait ce que tu m'as dit car j'ai tenté autre chose...

1) on m'a dit :
j'ai déjà eu un soucis équivalent, c'était le serveur apache qui ne gérait pas correctement les fichiers php (à modifier ça dans la conf)

AddType application/x-httpd-php5 .php5
ou
ddHandler x-httpd-php .php .php3 .php4 .php5
Donc j'ai essayé de trouver le fameux fichier de conf pour apache, forcément je ne savais pas... Sur #archlinux-fr on m'a dit

Code : Tout sélectionner

/etc/http.conf
/etc/http.d
mais chez moi

Code : Tout sélectionner

ls -l /etc/
car ce fichier n'est pas dans /etc
donc je me suis dit que je devais aller voir dans

Code : Tout sélectionner

/etc/httpd/conf/httpd.conf
Si j'ai trouvé ça :

Code : Tout sélectionner

<IfModule dir_module>
    <IfModule mod_php5.c>
        DirectoryIndex index.php index.html
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    </IfModule>
    DirectoryIndex index.html
</IfModule>
je n'ai pas osé ajouter ces lignes ici :oops: et je me suis arrêté là

2) sur le chan #lpln, un habitué des BDD m'a aidé

il a commencé par me demander de taper

Code : Tout sélectionner

#mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
et en a déduit que je n'avais pas de mot de passe root pour me connecter

Ensuite

Code : Tout sélectionner

#mysqladmin -u root password 'mon_mot_de_passe_BDD'
puis

Code : Tout sélectionner

mysql
[13:48]mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Puis m'a demandé de me connecter à phpyadmin
mais là je ne pouvais pas entrer mon login et mdp
Voir page phpmyadmin
après j'ai cliqué sur le premier lien : le lien
Ensuite il m'a demandé de désinstaller phpmyadmin et de le réinstaller, ce que j'ai fait...

Pour l'instant j'en suis là... Donc je suis revenu en arrière :(
Sur le wiki que j'avais suivi il est inscrit :
Plusieurs modes d'identification sont disponibles (variable auth_type) : config (le nom d'utilisateur et le mot de passe sont enregistrés dans le fichier de configuration), http et cookie. Pour ma part, j'ai choisi http. Si vous choisissez config, vous devez renseigner les variables user et password.
Dns ce fichier, je vois :

Code : Tout sélectionner

$cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (valid choices: config, http, HTTP, signon or cookie)
$cfg['Servers'][$i]['user']          = 'root';      // MySQL user
$cfg['Servers'][$i]['password']      = '';          // MySQL password (only needed
J'ai bien le droit de laisser comme ça, non? et dans ce cas je peux me connecter avec
  • - login = "root"
    - password= "" (vide quoi)
Non :?:

Bon bah voila, tu comprendras qu'avant de tester ton astuce j'aimerais bien que vous me confirmiez tout ça, parce que je ne veux pas faire de boulettes...

Merci d'avance :wink:

Edit : sinon voila le fichier config.default.php
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

si t'as :

Code : Tout sélectionner

[13:48]mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
c'est donc que tu as un mot de passe (apparement tu l'as ajouté avec la commande mysqladmin -u -pass...)
et donc que tu doit l'indiquer dans le fichier de conf de phpmyadmin
pour savoir si t'as le bon pass fait ça en console:
mysql -u root -p ou -password je sait plus..ça va te le demander et tu verras bien si c'est ça ou pas
Avatar de l’utilisateur
joker_vb
yeomen
Messages : 239
Inscription : lun. 30 juil. 2007, 23:32

Message par joker_vb »

Re,
Après réinstallation de phpmyadmin , pas moyen de me connecter, alors j'ai édité le fichier config.default.php :

Code : Tout sélectionner

$cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (valid choices: config, http, HTTP, signon or cookie)
$cfg['Servers'][$i]['user']          = 'root';      // MySQL user
$cfg['Servers'][$i]['password']      = '**********';          // MySQL password (only needed
en indiquant un password
ensuite, un petit

Code : Tout sélectionner

mysql -u root -p
m'a permis de me connecter et d'accéder à phpyadmin :lol:

Bon ok, mais à part avoir un mot de passe pour accéder à phpmyadmin je n'ai pas plus de réussite...
Alors je me suis résolu à faire ce qe tu me conseillais, à savoir commenter la ligne "skip networking" dans /etc/my.cnf, pas mieux

j'ai ensuite essayer de créer un autre user (j'espère qu'il a été correctement créé^^)

Code : Tout sélectionner

mysql_connect("localhost", "User", "mot-de-passe-du-user"); // Connexion à MySQL
mysql_select_db("coursphp"); // Sélection de la base coursphp
J'ai testé en root et password root, puis en user et mdp_uder, pareil

Enfin :

Code : Tout sélectionner

mysql_connect("localhost", "marcel", "*****") or die('connection merde');
Pareil, page blanche.
Je suis complètement perdu :?
Avatar de l’utilisateur
joker_vb
yeomen
Messages : 239
Inscription : lun. 30 juil. 2007, 23:32

Message par joker_vb »

Pourquoi ne pas essayer... ?

Alors, j'ai testé le premier conseil :

Code : Tout sélectionner

<IfModule dir_module>
    <IfModule mod_php5.c>
        DirectoryIndex index.php index.html
        AddType application/x-httpd-php5 .php5
        AddType application/x-httpd-php-source .phps .php .php3 .php4 .php5
    </IfModule>
    DirectoryIndex index.html
</IfModule>
dans httpd.conf; mais ça ne change rien :(
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

donc en ce moment quand tu tapes ca comme adresse ca donne quoi:
http://phpMyAdmin
pour que ca marche faudra peut etre ajouter ca dans /etc/hosts
127.0.0.1 phpMyAdmin localhost

et regarde aussi ce que donne dans une console:
nmap localhost
Avatar de l’utilisateur
joker_vb
yeomen
Messages : 239
Inscription : lun. 30 juil. 2007, 23:32

Message par joker_vb »

Re,

Quand je tape : http://phpMyAdmin
je suis redirigé vers cette page : http://www.phpmyadmin.net/home_page/index.php

Ensuite, j'ai modifier mon /etc/hosts comme ceci

Code : Tout sélectionner

#
# /etc/hosts: static lookup table for host names
#

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1 phpMyAdmin            localhost.localdomain   localhost

# End of file
Pas mieux...

EDIT: nmap localhost me renvoie

Code : Tout sélectionner

 nmap localhost

Starting Nmap 4.20 ( http://insecure.org ) at 2007-09-06 23:23 CEST
Interesting ports on phpMyAdmin (127.0.0.1):
Not shown: 1695 closed ports
PORT     STATE SERVICE
80/tcp   open  http
6000/tcp open  X11

Nmap finished: 1 IP address (1 host up) scanned in 0.146 seconds
Je commence à me demander si je vais m'en sortir :?
Avatar de l’utilisateur
joker_vb
yeomen
Messages : 239
Inscription : lun. 30 juil. 2007, 23:32

Message par joker_vb »

RESOLU : pour l'instant vous ne saurais que ça :
sur le chan
marc[1] a écrit : m'a dit, tu devrait aller sur un salon dédié au php, essai #php-fr
Là j'ai trouvé McPeter qui m'a bien aidé, je donnerait le détail plus tard. Il y avait des modifications à faire dans des fichiers de conf.

Voila, bonne nuit et merci _alexmyself :wink:

McPeter a carrément résumé tout ça, alors voila :


Salut


allez une synthèse des 2h30 passé avec joker_vb sous irc :p

Pour phpMyAdmin
permettre de s'identifier via cookie et donc d'utilsier phpMyAdmin en tant que root ou en tant qu'utilisateur (pratique pour simuler un vrai hébergement)
(c'est la config de joker : /home/httpd/html/phpMyAdmin/ )
copier le config.sample.inc.php en config.inc.php

Code : Tout sélectionner

#: cp config.sample.inc.php  config.inc.php
Éditer le config.inc.php
mettre à la ligne :

Code : Tout sélectionner

$cfg['blowfish_secret'] = '';
n'importe quel caractère comprit entre a-zA-Z0-9
un truc bien tordu genre : 'SJKqefjfsdg785gsd54gdFSDQdffertg586'

passer le $cfg['Servers'][$i]['auth_type'] en cookie

Code : Tout sélectionner

$cfg['Servers'][$i]['auth_type'] = 'cookie';
enregistrer ... relancer phpMyAdmin


pour s'aider en serveur de dev :
Éditer php.ini pour afficher les erreurs (apparemment c'est désactivé via l'install du paquet sous archlinux)

Code : Tout sélectionner

#: nano /etc/php/php.ini
chercher la ligne 360 (si le php.ini que j'ai vue est d'origine) sinon le terme (Ctrl + W sous nano) display_errors

mettre 'Off' à 'On'

Code : Tout sélectionner

display_errors = On
Activer la gestion de MySql avec PHP
toujours dans le php.ini
chercher : ligne 1301 ou le terme : extension et chercher 'mysql.so'
enlever le point virgule devant ';'

Code : Tout sélectionner

extension=mysql.so
enregistrer le tout
Relancer Apache

Code : Tout sélectionner

#: /etc/rc.d/httpd restart

et voilà :)
Répondre