# MAMP et PHP



## Pierre-Jean GOULIER (25 Août 2005)

Bonjour à toute l'équipe du magazine,

J'ai lu avec beaucoup d'intérêt les articles consacrés à MAMP et PHP... Tout ceci m'a l'air passionnant, mais... il y a un mais...

J'aime beaucoup votre magazine, mais il me semble parfois que vous ne structurez pas assez progressivement vos articles, surtout lorsque vous touchez à un domaine aussi complexe que les bases de données, les serveurs, etc. Vous êtes capables parfois de faire une page entière avec 3 photo d'écrans sur "comment copier un fichier", et éluder plein d'infos sur des sujets plus complexes... Ok, l'exemple cité est une caricature...

Bien sûr, vous faites référence à des articles déjà parus, et vous n'allez pas continuellement refaire ce qui a été fait, mais il me semble que l'article sur MySQL et PHP passe un peu trop vite sur des points qui doivent laisser pas mal d'ombre dans la tête de vos lecteurs...

A mon avis, il faudrait reprendre ce qu'est "Apache", le SQL et le PHP : à quoi ça sert, dans quel domaine, etc. C'est quoi un serveur, le partage Web, ...

Vous avez peut-être voulu éviter d'être "barbant", et avez opté pour l'exemple concret à saisir au clavier... Mais taper quelque chose que l'on ne comprend pas, sans savoir où on veut en venir, est très frustrant !

A noter :

CocoaMySQL semble buggé : il ne prend aucun mot de passe (pb d'encryptage) ; il faut laisser cette ligne vide...
L'exemple que vous avez fourni s'arrête à la 2e étape : Erreur de connexion - base 
J'ai pourtant vérifié ma saisie (enfin, je crois...).

Question subsidiaire : où est stockée la base créée ?

Amicalement, PJG


----------



## avosmac (25 Août 2005)

Effectivement, le n°54 sans le n°53, c'est plus difficile. Effectivement, nous pourrions détailler à quoi servent tous ces machins. C'est une excellente idée. 
Mais nous avons voulu entrer tout de suite dans le concret. On met les gens au volant avant de leur expliquer à quoi sert la pipe d'admission. 
Sans doute n'est pas assez clair. Dieu sait pourtant si nous essayons d'être didactique. 

Pour l'exemple, nous l'avons réalisé au préalable. Il fonctionne chez nous.

CocoaMySQL accepte les mots de passe et tout le reste, il fonctionne chez nous régulièrement.


L'erreur que vous rencontrez semble provenir d'une erreur de votre part. Avez vous le n°53 ?

En plus, un détail n'a pas été mentionné dans ce numéro car nous l'avons noté trop tard, il faut effectuer une modification lorsqu'on travaille avec des champs texte :
il faut éditer le fichier « php.ini » qui se trouve dans le répertoire lib de php5 et php4 (eux-mêmes situés dans le répertoire bin du dossier MAMP que vous avez enregistré dans les Applications).
Ouvrez avec TextEdit en mode texte le fichier php.ini et trouvez la ligne contenant le terme : 

register_globals = Off

Il ne reste plus qu'à changer le Off en On, à sauvegarder ce fichier au même endroit et à relancer les serveurs PHP et MySQL depuis le panneau de MAMP.


----------



## Pierre-Jean GOULIER (25 Août 2005)

"Pour l'exemple, nous l'avons réalisé au préalable. Il fonctionne chez nous."

OK. On va ré-essayer ça tranquillement...

"CocoaMySQL accepte les mots de passe et tout le reste, il fonctionne chez nous régulièrement.
L'erreur que vous rencontrez semble provenir d'une erreur de votre part. Avez vous le n°53 ?"

Là, je suis un peu plus dubitatif... J'ai le n° 53 (je suis abonné)
Hypothèses : 
1 - Je n'ai pas compris ce qu'il faut rentrer... Voilà ce que je saisis :
Host => je tape "localhost" (sans les guillemets)
User => je tape "root"
Password => je tape "root"
Je me doute d'une gauffre à ce niveau là... !! J'ai aussi essayé de taper mon nom d'utilisateur (de session) à la place de localhost, pas mieux... Peut-être pourriez-vous essayer d'être plus clair et m'expliquer ce qui'l faut saisir et dans quel but ?

2 - Je fais tout bien comme y faut, mais la version de CocoaMySQL est incompatible avec le 10.4.2... possible, vu que ce prg date de 2003.

Merci d'avoir répondu si vite, ça renforce encore un peu plus mon intérêt pour votre travail !

PJG


----------



## avosmac (25 Août 2005)

je sens que je vais être rabat joie mais 

CocoaMySQL fonctionne chez avosmac 10.4.2 (je peux envoyer une copie d'écran pour appuyer mes dires)


il faut bien sur activer MySQL et PHP avant de faire quoi que ce soit. L'utilitaire MAMP sert à ça

essayez d'entrer votre IP suivie de :8888

exemple :

localhost:8888

ou

10.0.1.1:8888


----------



## Pierre-Jean GOULIER (25 Août 2005)

avosmac a dit:
			
		

> je sens que je vais être rabat joie mais
> CocoaMySQL fonctionne chez avosmac 10.4.2 (je peux envoyer une copie d'écran pour appuyer mes dires)
> il faut bien sur activer MySQL et PHP avant de faire quoi que ce soit. L'utilitaire MAMP sert à ça
> essayez d'entrer votre IP suivie de :8888
> ...



Bon, bah, j'ai un G5 en bois alors...   
Je ne peux me connecter qu'en host = localhost, User = root et Password laissé vide...

J'ai essayé toutes vos solutions : localhost:8888, mon adresse IP, l'adresse IP du localhost (avec ou sans :8888), nada, nothing, que tchi...
Mais, attention, ne me faites pas écrire ce que je n'ai pas écrit ! Je vous fait ENTIEREMENT confiance !
y'a forcément un truc qui n'est pas conforme chez moi, ou que je n'ai pas pigé, ou les 2 !

Je réfléchis 5' et je vous en recause, si vous me permettez de vous "tenir" avec ça !

PJ


----------



## p4bl0 (25 Août 2005)

Bonjour, j'utilise MAMP depuis un certain temps (mais pas CocoaMySQL) et je voudrais juste signaler au magazine que contrairement à ce que vous dites dans le dernier numéro, le dossiers ou les pages PHP sont interpréter est "htdocs" dans le dossiser MAMP (celui dans /Applications) Car le dossiers dont vous parlez est utiliser par le logiciels pour ses propores fichiers er un lecteur d'AVM pourrait en effacer un sans faire exprès. 
Ensuite, voir ici.

Autre erreur : vous dîtes que TOUTES les lignes de code PHP divent se finir par un ; : c'est faut. De plus, toutes les instructions les plus utiliser (if else elseif while etc...) sont en générale sur plusieurs lignes et ne nécessitent pas de ;

```
exemple:
<?php
$n = 0;
while ($n < 10) {
    echo '$n = ' . $n . '<br />';
    $n++;
}
?>
```
Mais ce n'est pas le plus grave : dans le premier exemple, vous ne le mettez pas (le ; ) même si dans ce cas là c'est censé marcher quand même, je ne trouve pas ça bien... (je crois de tête que l'exemple c'est : echo "essai" ou un truc comme ça.

Ensuite, vous devriez expliquer un peu le XHTML avant le PHP et surtout utiliser du XHTML à la place du HTML dans vos exemple : un exemple tout bête, mettez <br /> à la place de <BR> etc....


Bon mais à part ça, AVM, c'est géniale (j'achète tout les numéro depuis le HS n°11 sur l'open-source , évitez de me dire "abonnement = mons chère", c'est prévu )



Sinon pour le problème de Pierre-Jean GOULIER, essaye d'utiliser PHPMyAdmin (fourni avec MAMP) : Tu ouvre MAMP, il ouvre une page web (sinon tu clique sur le boutton "page d'accueil" de la fenetre de MAMP), et là, tu aurras un lien dans la barre de menu vers phpmyadmin. il est préconfigurer donc aucun soucis 


personnelement, j'utilise eSKUel (http://eskuel.sourceforge.net je crois...)


Pablo.


----------



## DeniX (5 Septembre 2005)

Pierre-Jean GOULIER a dit:
			
		

> Bon, bah, j'ai un G5 en bois alors...
> Je ne peux me connecter qu'en host = localhost, User = root et Password laissé vide...
> 
> J'ai essayé toutes vos solutions : localhost:8888, mon adresse IP, l'adresse IP du localhost (avec ou sans :8888), nada, nothing, que tchi...
> ...



Bonjour 
J'avais le meme problème jusqu'à ce matin.
CocoaMySQL s'est connecté avec la saisie les champs comme suit :

Host => localhost
User => root
Password => root
Socket => le chemin spécifé dans la page Bienvenue dans Mamp «ou vous pouvez vous connecter à l'aide d'un socket UNIX »

j'en suis la et pour le reste c'est une autre histoire&#8230;
DeniX


----------



## Lumierex (7 Septembre 2005)

Bonsoir

Moi aussi je rencontre quelques problèmes pour faire fonctionner ce CocoaMysql, dont ce cher Avosmac nous a mis l'eau à la bouche.

La seule manière que j'ai trouvé pour rentrer dans CocoaMysql c'est de lui indiquer /Applications/MAMP/tmp/mysql/mysql.sock dans le socket. Sans rien d'autre ! pas d'utilisateur ni de mot de passe. 

En haut de la fenêtre CacaoMysql (sorry !) je lis @localhost/ (Mysql 4.1.12) Ça me cause pas vraiment comme nom mais dans le menu Choose Database je vois Test. Ça me rappelle quelque chose. Oui j'avais vu une Db avec ce nom sur MAMP avec le sqliteManager. 

En fouillant un peu dans le dossier mamp, je peux donc dire que les bases sont stockées dans le répertoire Db. Dans ce répertoire on trouve 2 sous répertoire mysql et sqllite. Dans le répertoire mysql on trouve un repertoire Test et aussi un répertoire mysql. Je pense que c'est dans le répertoire Db/mysql/ que l'on trouve les bases créées avec Phpmyadmin (j'ai vu une de mes bases de test)

Je vous raconte tout ça pour faire avancer le débat, car j'aimerai vraiment comparer les interfaces de saisie entre PhpMyAdmin, que je trouve un poil technique. 

Question suivante : je suis sur d'avoir vu un bouton sqlliteManager sur MAMP, mais il a disparu !!
Pourquoi tant de tracas ! 

Alain


----------



## avosmac (8 Septembre 2005)

Sous Tiger, effectivement, le fonctionnement de CocoaMySQL semble difficile avec le serveur local.


essayez :

http://yoursql.ludit.it/download.php


----------



## avosmac (8 Septembre 2005)

Vérification faite, CocoaMySQL fonctionne en local avec les coordonnées :

localhost (ou 127.0.0.1)
root (utilisateur)
root (mot de passe)

8889 (noté, il s'agit d'un 9 > port)


lorsque vous ouvrez en revanche un epage dan sun navigateur c'est :


http://localhost:8888/...


----------



## Lumierex (11 Septembre 2005)

avosmac a dit:
			
		

> Vérification faite, CocoaMySQL fonctionne en local avec les coordonnées :
> 
> localhost (ou 127.0.0.1)
> root (utilisateur)
> ...



Merci pour vos informations. Malheureusement je n'arrive toujours pas à faire fonctionner CocoaMySql. Mon Mac est sous 10.3.9 et la version de Cocoa 0.5 (v0.5) 

Mais bonne nouvelle, Yoursql (http://yoursql.ludit.it/download.php) fonctionne et m'affiche bien les bases / tables créées avec PhpMyadmin

A bientôt
Alain


----------



## uocram (14 Septembre 2005)

Voici une solution pour la connexion à MySQL avec CocoaMySQL (qui fonctionne pour Mac OS 10.4.2 et MAMP 1.0.1 dernière version à ce jour) :
MAMP étant démarré, renseignez dans l'invite de CocoaMySQL comme suit :

Host : laisser vide
User : root
Password : root
Database : laisser vide
Socket : /Applications/MAMP/tmp/mysql/mysql.sock
Port : laisser vide

Vous validez et pouvez enfin créer sauvagement votre base d'abonnés pour continuer le pas-à-pas de Avosmac.

Quand vous avez créé une base vous pouvez la rajouter dans l'invite de connexion de CocoaMySQL.


----------



## ThiGre (14 Septembre 2005)

Bonjour,

Je suis dans le même cas d'un certain nombre d'entre vous. Ayant besoin de gérer une base MySQL, je me suis dit que les numéros 53 et 54 sur php tombaient à pic.

Mais si MAMP fonctionne correctement, impossible de lancer CocoaMySQL.

Je suis sous Tiger 10.4.2 US avec MAMP-1.0.1 en US, et CocoaMySql 0.5 US
que je teste localhost, 127.0.0.1, 10.0.0.1, mon login ou rien comme host, rien n'y fait.
J'ai aussi essayé avec seulement l'adresse socket, et toutes les combinaisons intermédiaires.
Pourtant http://localhost:8888/MAMP/?language=English fonctionne correctement ainsi que phpMyAdmin et j'ai pu créer une structure de base identique à celle que vous présentez.

Il y a donc bien un problème quelque part. j'ai essayé sur un MAMP1.0.1 installé soit à partir du disque image, soit à partir du package. J'ai aussi essayé avec différent réglages du Firewall.

J'ai également cherché les fichiers php.ini dans MAMP>bin>phpX>lib que vous conseillez de modifier sans succès. En fait ils sont dans MAMP>conf>phpX.

YourSQL ne me permet pas non plus d'accéder à la base, ce qui me conforte dans l'idée d'un mauvais réglage quelque part, mais où ?
J'ai aussi essayer de vérifier les permissions sur les dossiers et fichiers de MAMP, mais ne sachant pas ce qui doit être correct, je suis pour l'instant dans l'impasse.

Pour rejoindre la remarque initiale de Pierre-Jean Goulier, je trouve que pour ce genre de dossier, un peu plus d'explication ne serait pas inutile, compte-tenu des problèmes potentiels rencontrés. D'autant plus que dans mon numéro 53, la photo de la boite de connexion de CocoaMySQL est imprimée à la "DaVinci" et à l'envers (inversée Gauche - Droite et Haus - Bas !!!), ça n'aide pas la lecture 

Bref, un tutorial sur phpMyAdmin dans un numéro à venir serait un bon plan puisque c'est le seul qui semble vouloir fonctionner chez tout le monde.


----------



## avosmac (14 Septembre 2005)

Nous y reviendrons, en plus claire, promis, juré, craché

L'explication de notre légèreté tient au fait que CocoaMysSQL fonctionne parfaitement chez nous...


----------



## avosmac (14 Septembre 2005)

Petit détail pour tous, il ne faut évidemment pas oublier de lancer l'utilitaire Mamp qui lance les serveurs...


La solution proposée plus haut avec :
/Applications/MAMP/tmp/mysql/mysql.sock
fonctionne à merveille avec CocoaMySQL


----------



## ThiGre (14 Septembre 2005)

Trouvé...

Il y a bien une incompatibilité entre la version v0.5 de CocoamySQL et la version 4.1 de MySql (http://cocoamysql.sourceforge.net/faq.php).
Pour que cela fonctionne, il faut la version v0.6.4 qu'on trouve ici (c'est d'ailleurs un des 2 liens que vous donnez dans le vol53 sans préciser qu'il ne vaut pas prendre la version0.5).
http://www.theonline.org/cocoamysql/

Ensuite une connexion sans host mais avec le socket:
/Applications/MAMP/tmp/mysql/mysql.sock
et les user: root
password: root

 marche chez moi


----------



## ThiGre (14 Septembre 2005)

Je ne veux pas en rajouter, mais 

La bonne syntaxe de recherche page 40 du n53 est :

SELECT * FROM *Abonnes* WHERE Nom='Tchocanape'

et non 

SELECT * FROM *MaBase* WHERE Nom='Tchocanape'

comme écrit



En tout cas ça marche ainsi chez moi !

Dès qu'on touche à la programmation, la moindre petite erreur... se voit de suite


----------



## avosmac (14 Septembre 2005)

Vous avez raison si la table s'appelle Abonnes. Mais dans l'exemple précise que vous citez, la table s'appelle MaBase et non Abonnes. Donc chez nous, ça fonctionne avec MaBase. Il n'y a pas d'erreur même si le terme "MaBase" peut effectivement prêter à confusion. MaTable aurait été plus logique, je vous l'accorde.


----------



## avosmac (14 Septembre 2005)

CocoaMySQL fonctionne chez nous sous les deux versions. Je tiens les preuves à disposition.


Ce qu'il faut en fait éviter c'est le nom du poste (localhost, avosmac, etc) mais utiliser plutôt l'adresse IP : 127.0.0.1 pour le poste en local et l'adresse IP pour les postes en réseau.


----------



## ThiGre (15 Septembre 2005)

avosmac a dit:
			
		

> Vous avez raison si la table s'appelle Abonnes. Mais dans l'exemple précise que vous citez, la table s'appelle MaBase et non Abonnes. Donc chez nous, ça fonctionne avec MaBase. Il n'y a pas d'erreur même si le terme "MaBase" peut effectivement prêter à confusion. MaTable aurait été plus logique, je vous l'accorde.



Ok je pensais que c'était la suite de la page précédente où justement la table s'appelle "Abonnes" et la base "MaBase" !

Il n'en reste pas moins que ça devient difficile de suivre si d'un exemple à l'autre les bases ne sont pas référencées de la même manière !
Pensez aux pauvres utilisateurs incompétents qui doivent recréer une nouvelle base à chaque nouvel exercice !


----------



## ThiGre (15 Septembre 2005)

avosmac a dit:
			
		

> CocoaMySQL fonctionne chez nous sous les deux versions. Je tiens les preuves à disposition.


Je n'en doute pas une seule seconde 


			
				avosmac a dit:
			
		

> Ce qu'il faut en fait éviter c'est le nom du poste (localhost, avosmac, etc) mais utiliser plutôt l'adresse IP : 127.0.0.1 pour le poste en local et l'adresse IP pour les postes en réseau.


C'est tout le problème des logiciels en beta... Sur mon installation il m'est totalement impossible d'utiliser la version 0.5 de MySql, de même qu'il m'est totalement impossible de me connecter en utilisant n'importe quel moyen d'appel du host y compris 127.0.0.1.
Ça ne marche que si j'utilise le socket et la version 0.6.4.
Cela reste problématique pour l'utilisation en Web avec la variable $hote="localhost:8889".

D'ailleurs le fichier /MAMP/bin/mamp/index.php, utilise aussi le socket dans l'appel de la base.

Apparemment je ne suis pas le seul dans ce cas, mais vous n'êtes pas non plus les seuls dans le votre... Ce sont les mystères de l'informatique


----------



## Pixel44 (16 Septembre 2005)

Bonjour

Je me suis lancé à mon tour dans cette aventure (j'avais connu php 4 et Mysql 4 mais à la main) et j'ai eu les mêms problèmes.... mais maintenant tout marche : 

dans l'ordre : 

- lancer MAMP et démarrer les serveurs (les voyants passent en vert)
- aller dans les préférences et mettre comme ports, ceux d'apache et sql (80 et 3306)
- lancer cocoamysql version 0.6.4 (exclusivement)
- mettre dans host : 127.0.0.1 (et pas autre chose)
- user : root
- password : root

pour les pages PHP/html, les mettre dans le dossier htdocs du dossier MAMP (ça se change dans les préférences de MAMP et je vous le conseille si vous mettez à jour MAMP, vous ne risquerez pas de supprimer vos pages html par inadvertance)

Pour Safari, taper http://127.0.0.1/lenomdevotre page.html ou .php

ça devrait marcher. Seul bémol, lancer MAMP au démarrage de macox impose la saisie du mot de passe administrateur : dommage !

N/b : le partage web personnel n'est pas à activer dans macosx !


----------



## pattes (16 Septembre 2005)

Je suis désolé mais je ne vois pas très bien ce que ce sujet a à faire avec *La vie du magazine*... A mon humble avis il devrait être déplacé.


----------



## uocram (19 Septembre 2005)

La solution de Pixel44 semble propre.
Elle fonctionne sans avoir à renseigner le socket et surtout elle permet une connexion avec mon appli cocoa interrogeant une base de donnée MySQL :

rappel des valeurs renseignées :
- lancer MAMP et démarrer les serveurs (les voyants passent en vert)
- aller dans les préférences et mettre comme ports, ceux d'apache et sql (80 et 3306)
- lancer cocoamysql version 0.6.4 (exclusivement)
- mettre dans host : 127.0.0.1 (et pas autre chose)
- user : root
- password : root

Merci Pixel44


----------



## Pierre-Jean GOULIER (21 Septembre 2005)

Ce qu'il faut en fait éviter c'est le nom du poste (localhost, avosmac, etc) mais utiliser plutôt l'adresse IP : 127.0.0.1 pour le poste en local et l'adresse IP pour les postes en réseau.[/QUOTE]

Et ben, voilà !   avec la version 0.6.4 trouvée par ThiGre, ça marche...
Tout vient à point ... etc.
En tous cas, cela aura eu le mérite de booster le propos, et AVosMac va nous concocter des articles passionnants sur MySQL, j'en suis sûr !   

Merci à tous pour vos recherches !

@+ 

PJ


----------



## ThiGre (28 Septembre 2005)

Bien, bien je progresse, mais je n'arrive toujours pas à accéder à la base au moyen d'une page web php comme indiqué dans les numéros 54 et 55.

Que je mette les valeurs d'hôte a
$hote="locahost:8889"
$hote="locahost:3306" (mes ports sont réglés en 80 pour Apache et 3306 pour MySQL dans MAMP)
$hote="127.0.0.1:8889"
$hote="127.0.0.1:3306"


J'arrive sur une page blanche avec l'adresse suivante:

http://localhost:80/MAMP/recherche.php

Quelqu'un pourrait-il me dire comment on arrive à accéder à la base au travers du web ?
Que doit-on utiliser comme connexion ?

Merci de votre aide


----------



## eljoakim (14 Décembre 2005)

Je vous conseille à tous XAMPP, qui vous installe un serveur apache  sur votre mac tout simplement.
Plus besoin de se prendre la tête à ouvrir MAMP à chaque fois que l'on veut coder en PHP, après cette installation, le serveur PHP s'en occupe sans que vous n'ayez rien à faire, il le fait sans ouvrir aucune application ! La seule chose à faire est de démarrer le serveur une bonne fois pour toutes !
Au passage il vous installe tout sa : Apache, MySQL, PHP & PEAR, SQLite, Perl, ProFTPD, phpMyAdmin, OpenSSL, GD, Freetype2, libjpeg, libpng, zlib, Ming, Webalizer, mod_perl, eAccelerator, phpSQLiteAdmin ! Pas mal nan ? (sa pèse à peu près 50mo) et même si ce n'est que la béta, je n'ais pas eue un seul problème depuis que je l'ai installé


----------



## ThiGre (15 Décembre 2005)

eljoakim a dit:
			
		

> Je vous conseille à tous XAMPP


Et il faut quel niveau d'étude PHP pour s'en sortir, car moi c'est niveau 0, mais j'aurais besoin d'une base MySQL pour gérer un projet au boulot et comme personne ne peut m'installer ça !


----------

