Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/05/2008, à 14:54

Zubaran

Prob Mysql sous Debian

Bonjour à tous,

Voilà j'ai un site qui tourne très bien sur mon hébergeur actuel. Cependant je viens de me prendre un serveur dédié ( Dedibox ) que je viens entièrement de configurer sous Debian Sarge 4.0 ( je sais que le site est tourné vers ubuntu mais je pense que mon problème n'a rien à voir avec le système d'exploitation ).

J'ai installé php5, mysql, apache2, phpmyadmin, etc... Configuré les divers fichiers et installations. J'ai réglé et créer un utilisateur dans les privilèges de phpmyadmin et viré les accès root. Tout marche parfaitement bien, donc je décide d'envoyer tous mes fichiers du site sur mon FTP, la aussi tout va bien.

Une fois cela fait je me connecte sur mon serveur et la c'est le drame j'ai des erreurs mysql de partout et je ne comprend pas pourquoi, du style :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
fopen(data.dat) [function.fopen]: failed to open stream: Permission denied in...

Il y a donc un problème sur mes fonctions et mes permissions mais je n'arrive pas à régler le problème. Etant donné que les mêmes fichiers et requêtes marchent sur mon hébergeur je pense qu'il s'agit uniquement de la configuration du serveur.

Aucune requête SQL ne marche, je dois donc avoir des problèmes de configurations mais je ne sais pas où. Quelqu'un pourrait-il m'aider à ce sujet, ai-je sauté quelque chose ?

Je vous laisse des petits bout de code de mon index pour vous montrer le style de mes requêtes mysql.

index.php
<?php
$link=mysql_connect ("localhost", "moncompte", "monpassword") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("mabasededonnée");
$db="mabasededonnée";

// Recup info visiteur et Date

$Visiteur = $_SERVER['REMOTE_ADDR'];
$date=date("Y-m-d");

// Liens bas de page

$liste_liens="SELECT * FROM Liens ";
$env_liste_liens=mysql_db_query($db,$liste_liens);
$num_liens=mysql_num_rows($env_liste_liens);

$liste_part="SELECT * FROM Amis ";
$env_part=mysql_db_query($db,$liste_part);
$num_part=mysql_num_rows($env_part);

// News

$datedujour=date("Y-d-m");
$annee=date("Y");
$mois=date("m");
$annee_prec=$annee-1;
$annee_suiv=$annee+1;

$recup="SELECT * FROM News WHERE Annee > '$annee_prec' AND Annee < '$annee_suiv' AND Mois = '$mois' ORDER BY Date DESC LIMIT 0,4 ";
$envoye=mysql_db_query($db,$recup);
$nb_col=mysql_num_rows($envoye);

Si vous avez besoin de plus d'infos ( mon php.ini, apache2.conf, etc.. ) demandez moi je rajouterai les bouts de codes.

Merci d'avance pour la moindre piste ou solution.

#2 Le 01/05/2008, à 15:02

azimuth024

Re : Prob Mysql sous Debian

Salut,
Est-ce que les droits sur les fichiers php sont corrects ? Il me semble que l'utilisateur www-data doit pouvoir les lire et les executer.
Le mieux, si tu as un serveur dédié, c'est d'oublier FTP. Connecte-toi en SSH et copie tes fichiers en SCP. Les droits seront plus faciles à gérer.
D'abord connecte-toi en console (une fois pour générer le fingerprint du serveur) :

ssh ton_user@domaine_ou_ip

Tape ton mot de passe, répond "y" à la question posée.
Puis dans nautilus, va sur l'url :

ssh://ton_user@domaine_ou_ip

Tape ton mot de passe et te voilà avec le contenu de ton serveur dans nautilus.
Ensuite fais tes transferts par ce biais.

Hors ligne

#3 Le 01/05/2008, à 16:42

Zubaran

Re : Prob Mysql sous Debian

Salut et merci pour ta réponse.

J'utilise déjà Putty pour me connecter en SSH. Le ftp sert à envoyer les fichiers en masses sur le serv, c'est beaucoup plus pratiques quand même ^^

Je ne connais pas Nautilus, kezako ? smile

Ce qui est bizarre c'est que j'ai déjà configuré le www-data sad Ce que je ne comprend vraiment pas c'est pourquoi aucune requête sql ne marche sad

#4 Le 01/05/2008, à 17:03

sombrero

Re : Prob Mysql sous Debian

Déjà je pense que tu as 2 problèmes distincts :
- le warning sur la requête sql
- le problème avec fopen.


Pour le premier problème, le message indique qu'y a un problème avec mysql_fetch_array() or dans le bout de code que tu nous as donné, cette fonction n'est pas utilisée. Donne-nous donc le passage avec la ligne concernée par l'erreur


Pour le second problème, c'est clairement un problème de droit d'accès :www-data n'a pas les droits pour lire data.dat ,  parce-que les permissions ne sont pas suffisantes soit sur ce fichier, soit quelque part dans l'arborescence pour accéder à ce fichier.
Attention car par défaut sur debian un fichier est créé en 640 alors que sous ubuntu c'est du 644. Si t'ouvres le fichier en lecture / écriture, www-data doit alors avoir les droits d'écriture sur ce fichier.


Sinon pour info debian 4.0 c'est Etch, pas Sarge tongue


Debian unstable sur MacBook Pro.

Hors ligne

#5 Le 01/05/2008, à 18:39

Zubaran

Re : Prob Mysql sous Debian

Merci pour ta réponse sombrero.

En effet j'avais pas vu qu'il n'y avait pas de fetch_array dans mon code, en voilà un présent dans mon index :

$dernier_solution="SELECT * FROM Solutions WHERE Valider = 'Oui' ORDER BY Date DESC LIMIT 0,1 ";
$envoie_dernier_solution=mysql_db_query($db,$dernier_solution);
$ligne_dernier_solution=mysql_fetch_array($envoie_dernier_solution);

Donne-nous donc le passage avec la ligne concernée par l'erreur

Il n'y a pas qu'une ligne concernée ^^ tous les fetch_array sont retourné par une erreur hmm

Sinon pour info debian 4.0 c'est Etch, pas Sarge tongue

Exact, je suis resté sur mon ancienne config en sarge ^^

Pour le www-data, bin je vais essayer de voir cela

#6 Le 01/05/2008, à 18:54

sombrero

Re : Prob Mysql sous Debian

Mmmh en fait tu utilises mysql_db_query qui est obsolète depuis php 4.0.6, or sous Etch tu as soit du php 4.4.4 soit du php 5.2.0.
Comme expliqué dans la doc de php, il faut utilser mysql_select_db et mysql_query à la place.

Vu que tu as déjà un mysql_select_db en début de script, tu n'as qu'à bêtement faire un remplacement de toutes les occurences de mysql_db_query($db, par mysql_query( et ça devrait aller.


Debian unstable sur MacBook Pro.

Hors ligne

#7 Le 01/05/2008, à 19:19

Zubaran

Re : Prob Mysql sous Debian

Bah ca alors, moi qui suis resté avec mes habitudes du vieux mysql sad ca va faire bizarre quand je vais coder maintenant.

Bref, cela marche toujours pas lol Maintenant c'est le num_rows qui me fait chier lol

mysql_num_rows(): supplied argument is not a valid MySQL result resource in

Lui aussi serait-il obsolète ? Je n'ai rien vu à son sujet.

mysql_db_query($db, par mysql_query(

En faite ce n'est pas tout a fait ca, il faut remplacer

$liste_genre="SELECT * FROM Genre ORDER BY Genre ";

par exemple, par :

$liste_genre = mysql_query("SELECT * FROM Genre ORDER BY Genre ", $link);

Quel bordel, je vais en avoir pour des heures et des heures à tout recoder :'(

Sinon pour le num_rows, une petite idée ?

Merci déjà pour ce petit coup de pouce.

P.S : www-data, problème réglé ! ouf, ca fait toujours ca en moins ^^

#8 Le 01/05/2008, à 19:34

Zubaran

Re : Prob Mysql sous Debian

Bon bin ca y est j'ai réussi tongue

Il faut bien veiller à changer la connection aussi :

$dbbase="BDD";
$link=mysql_connect ("localhost", "USER", "PASS") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db($dbbase, $link);

$liste_part=mysql_query("SELECT * FROM Amis ", $link);
$num_part=mysql_num_rows($liste_part);

Je sais maintenant quoi faire ces 72 prochaines heures, mdr... Et encore que j'ai pas testé l'envoie d'email et d'upload de fichiers... encore des complications en vue.

Merci beaucoup pour le coup de main. A bientôt, c'est certain big_smile

#9 Le 01/05/2008, à 19:38

sombrero

Re : Prob Mysql sous Debian

Bon courage smile

C'est la raison pour laquelle avant de changer de serveur faut toujours s'assurer que son code sera compatible avec le versions des langages du nouveau serveur, car on s'expose à beaucoup de problèmes, surtout qu'il y a eu beaucoup de changements entre php 4 mysql 4 et php 5 mysql 5 (et encore dans ton cas c'était encore plus ancien qu'une migration vers php5, car la version 4.0.6 est sortie en juin 2001).


Debian unstable sur MacBook Pro.

Hors ligne

#10 Le 01/05/2008, à 22:12

Zubaran

Re : Prob Mysql sous Debian

Merci je vais en avoir besoin tongue

Le truc c'est que sur mon hébergeur actuel mon code php et mysql fonctionne toujours donc je ne me suis jamais posé la question sur les nouveautés du codage. Ca va me permettre de m'y habituer big_smile

#11 Le 04/05/2008, à 09:57

zubaran

Re : Prob Mysql sous Debian

Rebonjour à vous,

Voilà j'ai un autre petit soucis et je viens voir si vous pouviez me dépanner à nouveau big_smile

Cette fois il s'agit d'un problème de caractères par rapport à MYSQL, je m'explique :

Les résultats des mes requêtes mysql ne s'affichent pas correctement, les accents sont remplacés par des é.
De plus si j'ai effectue une requête qui comporte un accent ( ex : SELECT * FROM Jeux_abandonware WHERE Licencié = 'Non' ), celle-ci ne marche pas.

J'ai essayé de régler mon php.ini, apche2.conf en UTF-8 ou en ISO-8859-1 mais rien ne change. Pareil pour mes BDD, j'ai essayé latin_general_ci ou utf8_xxx_xx, aucun ne marche et rien ne change non plus.

Auriez-vous une idée sur ce que je pourrai essayer ?

Merci

Des ptits bouts de config :

apache2.conf

AddDefaultCharset UTF-8
ou j'ai essayé aussi
AddDefaultCharset ISO-8859-1

php.ini

en partant du même principe que j'ai aussi essayé ISO-8859-1 a la place de UTF-8

mssql.charset = "ISO-8859-1"

mbstring.language=ISO-8859-1
mbstring.internal_encoding= ISO-8859-1
mbstring.http_input=ISO-8859-1
mbstring.http_output=ISO-8859-1
mbstring.detect_order= auto

phpmyadmin

Jeu de caractères pour MySQL:  UTF-8 Unicode (utf8)
Interclassement pour la connexion MySQL: utf8_unicode_ci

Mes tables sont en : utf8_unicode_ci

J'ai aussi essayé avec latin1_german2_ci, latin1_general_ci, latin1_general_cs, etc... Rien ne change sad

Je sais vraiment plus quoi faire :'(