Journal Apache Mysql ...

Posté par  .
Étiquettes : aucune
0
3
avr.
2004
Salut mon journal préféré ... c'est le newbie qui t'écrit :

J'ai un ptit probleme avec le service apache et mysql tournant sur ma Box ... j'essaie de t'expliquer :

apache tourne avec les droits 'apache' les pages statiques s'affichent correctement dans mon fureteur

mysql tourne avec root:passwd et donc en local une comme 'mysql -p' sous root me permet d'interroger mes bases, sous un autre utilisateur ca ne marche pas (normal)

parcontre, avec des scripts php, apperement, il ne lit pas le contenu des fichiers config (ou j'ai mis l'acces a la base via root:paswd) mais utilise l'utilisateur 'propriétaire' des scripts php (apache:apache) pour se connecter à la base

As-tu une idée mon piti journal steuplé ?? et n'oublies pas que je suis un newbie ;)
  • # Re: Apache Mysql ...

    Posté par  (site web personnel) . Évalué à 1.

    C'est plutôt une question pour un forum php/mysql...
    Est-ce que tu passes bien les paramètres de connexion dans ton script php ? du genre :
    mysql_connect("localhost", "root", "ton_pass") ?
  • # Re: Apache Mysql ...

    Posté par  . Évalué à 1.

    Il faut que tu lises la doc depuis le début là je crois.

    Les users du système et les users de mysql ne sont pas les mêmes.
    Les users de mysl sont définis dans la table "user" de la base "mysql".

    Essaye d'installer phpMyAdmin, tu y verras sans doute + clair.
  • # Re: Apache Mysql ...

    Posté par  . Évalué à 1.

    Un peu plus d'explication :

    dans phpmyadmin :

    $cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
    $cfg['Servers'][$i]['user'] = 'root'; // MySQL user
    $cfg['Servers'][$i]['password'] = 'xxxxxx'; // MySQL password (only needed

    et quand je me connecte sur la base via phpmyadmin :

    #1045 - Access denied for user: 'apache@localhost' (Using password: NO)

    apache est le propriétaire des scripts

    au niveau de mysql sur le systeme :

    bashUser> mysql -u root -p
    Password : *****

    mysql> select * from user;
    +-------------------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
    | Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv |
    +-------------------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
    | localhost | root | xxxxxxxxxxxxxx | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
    | zebbox.brutele.be | root | xxxxxxxxxxxx | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
    +-------------------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+

    ca me parait pourtant correct tout ca
    • [^] # Re: Apache Mysql ...

      Posté par  (site web personnel) . Évalué à 2.

      Tu aurais du préciser que tu avais déjà installé phpmyadmin, ce n'est pas conseillé d'utiliser 'config' comme méthode d'identification, tu devrais essayer d'utiliser 'http' ou 'cookie' et ensuite créer au moins un utilisateur mysql avec moins de droits que root pour les tâches courantes.
      Le fait que tes scripts appartiennent à Apache n'a aucune incidence pour la connexion à Mysql. Dans ton cas, il semblerait que le fichier de conf de phpmyadmin ne soit pas pris en compte (phpmyadmin != mysql, le fichier de conf de mysql c'est my.cnf) et donc mysql prend l'utilisateur sous lequel s'exécute le script (apache).
      Une question bête : as tu spécifié :
      $cfg['Servers'][$i]['host'] = 'localhost'; dans config.inc.php ?
      • [^] # Re: Apache Mysql ...

        Posté par  . Évalué à 1.

        Je te remercie pour ta réponse, je viens de voir pourquoi cela ne fonctionne pas. Le problème ce situe au niveau de PHP et sa configuration, j'ai spécifié dans php.ini à la section

        [SQL]
        sql.safe_mode = On

        En changeant ce parametre vers Off, les scripts phpmyadmin fonctionnent correctement !!

        Je suis contient qu'il est dangereux de spécifier un utilisateur et son password dans un fichier en clair et de plus celui de root mais la connection en utilisant http ou cookie ne marchait pas non plus !!

        Pour la question bête ben oui j'avais bien spécifier localhost pour le host ;)

        Maintenant pourquoi le fait de changer ce parametre de Off -> On a fait que les connections se faisaient vers mysql avec l'utilisateur propriétaire des scripts plutot que tout autre moyen d'identification ??

        Bref, comme on me l'as déjà répété souvent ... si tu sais pas ... tu touches pas ;) lol

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.