Profitez des offres Memoirevive.ch!
MAMP : un serveur en deux coups de cuillère à pot

Vous avez bien à la maison un vieux (ou pas) Mac qui traîne et qui n'est plus trop utilisé, non ?

Et bien moi oui. J'ai récupéré un vieux MacMini G4 avec 40 Go de disque dur. A côté de l'iMac 24", du MacBook Pro ou du MacBook Air, ce pauvre mini faisait plutôt pâle figure. Il était inutile d'espérer le vendre, mais je ne voulais pas le jeter.

L'avantage du MacMini, c'est sa taille et sa faible consommation d'énergie, c'était donc le candidat idéal pour en faire un petit serveur maison.

Comme je m'occupe du site de Joca (je suis sûr que vous en avez entendu parlé par Puzzo), et également de mon site personnel, j'avais besoin de pouvoir mettre en ligne des versions de test. Pour cela j'avais besoin d'un certain nombre de choses:

  • un serveur (le Mac)
  • un logiciel de serveur web (Apache)
  • une base de donnée (MySQL)
  • une couche programmable pour accéder à la base et créer des pages dynamiques (PHP)

Mac + Apache + MySQL + PHP = MAMP

Voici l'équation gagnante !

(ce logiciel existe également pour Linux, il s'appelle... LAMP)

 

MAMP est un intégré qui offre tous ces composants, préinstallés, prêts à être utilisés en un clic de souris.

Une fois MAMP installé par un simple glissé-déposé dans le dossier Applications, il ne vous reste plus qu'à le lancer.

image

Une fois lancé, MAMP démarrera automatiquement les serveurs et vous ouvrira une page d'accueil :

image

Sur cette page vous pouvez aisément vérifier que tout s'est bien installé. Grâce à "phpInfo" vous pouvez obtenir des informations sur le moteur PHP installé. Grâce à "phpMyAdmin" vous pourrez gérer vos bases de données MySQL.

C'est aussi simple que ça, vous n'avez rien d'autre à faire, si ce n'est évidemment créer du contenu.

Par défaut, ce contenu, vous le placerez dans le dossier "htdocs" du dossier MAMP.  Mais ceci est paramétrable.

Voyons un peu les différentes préférences. Elles sont divisées en quatre onglets, le premier gérant le démarrage des serveurs:

image

On y décide si les serveurs sont démarrés/arrêtés au démarrage de l'application.

C'est également ici qu'on décide si on veut être informé de la possibilité de passer à MAMP Pro qui offre un peu plus de possibilités.

Enfin, on y règle l'ouverture de la page d'accueil dont je vous parlais plus haut.

Le second onglet permet de régler les différents ports utilisés pour accéder au contenu de vos pages et à la base MySQL:

image

Par défaut, le port utilisé pour un accès HTTP normal (celui que vous utilisez tous les jours, et en particulier en ce moment même) et le port 80. Si MAMP est utilisé à des fins de tests, il est conseillé de ne pas utiliser ce port-là, c'est pourquoi il propose le port 8888. Cela signifie que dans votre navigateur Web vous devrez entrer une adresse du genre:

http://www.monserveur.com:8888

Mais libre à vous d'indiquer à MAMP que vous voulez utiliser le port standard (80), auquel cas votre adresse deviendra simplement :

http://www.monserveur.com

L'onglet PHP est très simple. Il vous permet de choisir la version de PHP que vous désirez utiliser :

image

Enfin, le dernier onglet vous permet d'indiquer où votre contenu web (i.e. vos pages HTML) se trouvent :

image

Comme je vous le disais plus haut, MAMP ira chercher par défaut dans le dossier "htdocs".

Comme vous pouvez le constater, tout cela reste très très simple et facile à configurer. Le plus dur sera évidemment de créer un contenu intéressant.

MAMP est gratuit, mais il existe une version PRO qui offre plus de réglages et en particulier la possibilité de gérer plusieurs sites web.

 

Note de l'auteur: je ne pourrai malheureusement pas répondre rapidement à vos commentaires (s'il y en a) car je suis en ce moment dans la région de San Francisco. Mais je suis passé à l'AppleStore de Stockton Street hier pour dire bonjour à Steve... il n'était pas là.

24 commentaires
1)
François Cuneo
, le 25.02.2010 à 07:20
[modifier]

Super!

Ça m’a l’air vraiment à la portée de tout le monde.

J’aurais tout de même bien voulu une vidéo qui nous explique tout ça, comme avec Puzzo.

Tu aurais pu te déguiser en maître d’hôtel, je ne sais pas moi…

2)
djtrance
, le 25.02.2010 à 08:37
[modifier]

Comme François: Super!

Ultra facile, ultra simple et gratuit… Je me laisserais même tenter par la version Pro! Le seul soucis avec un serveur “pro” at home, le changement automatique de l’adresse IP, mais ça, c’est tout un autre article :)

Merci pour l’article et la découverte de ce logiciel!!

A vous San Francisco.

3)
monmac
, le 25.02.2010 à 09:01
[modifier]

Super ce Mamp, je l’utilise depuis pas mal de temps en local avec l’adresse http://localhost:8888. J’ai fait l’acquisition récemment de Mamp Pro en me disant que je pourrais utiliser des vrais noms de domaine en local au lieu de localhost… mais pas pu, pas très bien compris comment ça marche avec dyndns.org.

4)
Lindes
, le 25.02.2010 à 09:43
[modifier]

J’utilise la version Pro pour le serveur de bibliothèque, au boulot. Très facile à gérer. Pour utiliser avec accès extérieur par internet, il faut configurer l’adresse 192.168.1.X:8888/monsiteweb (par exemple, où 192.168.1.X serait l’adresse locale où tourne MAMP ) puis dans le routeur créer une redirection du port 8888 vers l’adresse 192.168.1.X. Il faut bien entendu aussi configurer dyndns.org pour qu’il suive les changements de l’adresse ip ext.

6)
6ix
, le 25.02.2010 à 10:02
[modifier]

Jusque-là, j’utilisais toujours les outils installés par défaut sur Mac OS X; n’oublions pas que le système à tout ce qu’il faut pour ça (apache, php), même s’il faut installer mysql soi-même et mettre un minimum la main à la pâte.

J’aimais bien ce côté intégré au système, qui évitait de dupliquer les fonctionnalités. Mais c’est vrai qu’avec MAMP, on s’épargne bien des ennuis: les màj des divers composants se font au travers de l’application, pas besoin de tout reconfigurer en cas de réinstallation du système, gestion centralisée depuis MAMP,…

Bref, c’est du bon ! =)

7)
Cesium133x
, le 25.02.2010 à 10:04
[modifier]

@François: Pitié, il faut lever le pied avec les vidéos, ce n’est vraiment pas la panacée. Il y a des choses pour lequelles du texte et des images sont bien plus efficaces, comme ici l’installation et la configuration de logiciels. Essayez un peu de “regarder une vidéo en diagonale” parce que le début vous avez pu le faire vous-même mais il vous manque juste un petit détail. Il est pratiquement impossible de trouver la partie de la vidéo qui en parle parce qu’en la passant plus vite on zappe le son et il faut essayer de déduire ce qui se passe rien qu’avec l’image. Et quand le bonhomme se borne à parler devant une image de son bureau, c’est gratiné. Alors il faut se coltiner la vidéo de quinze minutes en entier alors qu’une recherche sur la version texte aurait pris trente secondes.

L’autre jour j’ai voulu installer Zena, qui s’annonce comme le CMS révolutionnaire. Sauf que la documentation est pratiquement inexistante et qu’une fois qu’on a effectivement réussi à l’installer on ne connaît pas le mot de passe admin par défaut, à moins de s’être tapé la rontudju de vidéo. C’est quand-même un comble !

8)
felix-fi
, le 25.02.2010 à 10:06
[modifier]

Va plutot a celui d’University Av. a Palo Alto… c’est le plus proche de son domicile…

9)
Chichille
, le 25.02.2010 à 10:11
[modifier]

Question à tous, puisque Fabien ne nous entend pas très bien d’où il est. Apple commercialise un Mac Mini “serveur”, avec une version spécifique de Snow Léopard : cette version serveur de SL est-elle utile, voire indispensable, pour créer un serveur ? Qu’apporte-t-elle ? La solution MAMP paraît se contenter d’un SL tout à fait banal.

10)
Lindes
, le 25.02.2010 à 10:16
[modifier]

La version Mini serveur tourne sous Snow Leopard Server qui a plus de fonctionnalités que MAMP: serveur mail, serveur de fichiers, carnet d’adresses et calendriers partagés, DNS, etc. Il s’agit d’un vrai serveur, complet mais pas évident à configurer pour le peu de temps que j’y ai passé.

11)
Alain Le Gallou
, le 25.02.2010 à 11:18
[modifier]

Comme Cesium133 je suis anti-vidéo. Inutilisable pour trouver une information. Juste bon pour faire une introduction, et surtout bon pour le créateur fainéant, car c’est facile de papoter en cliquant sur quelques boutons. Cela ne fait en aucun cas un manuel de référence.

12)
pioum
, le 25.02.2010 à 11:39
[modifier]

La vidéo peut être complémentaire du manuel de référence. Ils n’ont pas le même rôle.

13)
Matkinson
, le 25.02.2010 à 13:27
[modifier]

Perso je suis pas trop fan de PHPMyAdmin pour gérer les bases, je lui préfère SequelPro qui a fait des gros progrès depuis la reprise de CocoaMySQL.

En plus, il y a (pour moi) un truc génial avec ce soft-là, c’est qu’on peut récupérer le framework de connectivité et requêtes vers les bases MySQL pour l’intégrer à d’autres programmes Cocoa quand on a besoin d’implémenter une interface.

14)
François Suter
, le 25.02.2010 à 13:50
[modifier]

C’est vrai que MAMP est très pratique. Le gros reproche que je lui fait est de ne pas suivre assez vite avec les mises à jour de PHP. Evidemment, là, je suis pénible, parce que c’est mon pain quotidien.

Du coup, je suis passé à MacPorts, mais c’est beaucoup moins simple à installer.

16)
Chichille
, le 25.02.2010 à 21:33
[modifier]

Je plaisantais avec la vidéo, mais voilà, j’ai oublié le ”:-)”

Ah ! Ça me rappelle quelque chose, mais quoi ?

;) ;) ;) ;) ;) ;) ;) ;) ;) ;) ;) ;) ;) ;) ;) ;) ;) ;)

17)
Migui
, le 25.02.2010 à 21:45
[modifier]

Fabien, tu ne peux pas t’imaginer comme je suis heureux de ton article: depuis un certain temps déjà, j’avais l’intention d’écrire un article sur deux CMS (“Content Management System”) que je connais un peu: WordPress et Drupal. Ce qui me freinait un peu, c’était de me dire qu’il fallait introduire MAMP, que je trouve vraiment bien fait pour un profane comme moi!

Mon prochain article, ce sera sans doute sur WordPress, et le suivant pourrait coïncider avec l’événement majeur de Drupal cette année: la sortie de Drupal 7 qui s’annonce prometteur. A titre d’exemple, ce système d’origine belge (cocorico!) est utilisé pour le site de la Maison Blanche… Je pense que sa sortie pourrait avoir lieu en fin d’été ou en automne.

18)
Cesium133x
, le 26.02.2010 à 02:20
[modifier]

@fsuter: Entre MAMP et MacPorts il y a Zend Server CE (Community Edition, la version gratuite). On peut choisir entre PHP 5.2 et 5.3 et ils en sont à la 5.2.12 et 5.3.1 respectivement, je crois que c’est assez récent :-)

Zend Server installe Apache 2.2, MySQL 5.1 (.43), PHPMyAdmin et Zend Framework (mon pain quotidien depuis peu), le tout dans /usr/local/zend, et il y a une interface d’administration à travers le navigateur. Ne supporte que les processeurs Intel sur Mac (je dis ça parce que l’article parle de recycler une vieille machine) et il y a aussi des versions Linux et Windows.

L’argument que donnent Zend en leur faveur par rapport aux [LMWX]AMP c’est que Zend Server est fait pour être utilisé aussi en production et pas seulement pour le développement. Je ne sais pas qu’en penser, mais si c’est vrai ça peut être pratique. En tout cas tout se lance au démarrage du Mac sans intervention requise (MAMP demande un mot de passe admin à chaque fois si on veut lancer Apache sur le port 80), c’est bien pratique.

19)
f.red
, le 26.02.2010 à 07:58
[modifier]

Bonjour à tous, C’est mon premier post sur cuk, alors j’ai un peu le trac :-)

J’utilise MAMP depuis quelques années, et lui ai trouvé une alternative il y a peu. Parce qu’en l’utilisant avec des CMS un peu gourmands (SPIP, Joomla…), il pouvait y avoir des latences gênantes, voire carrément bloquantes. Certainement pas grand chose à régler lorsqu’on sait configurer un serveur Apache, mais ce n’est pas mon cas. Par exemple, impossible de transférer une “grosse” base de données venant d’un hébergement mutualisé tout à fait standard, ou impossible de redimensionner de grandes images via GD. Les requêtes serveur restaient en suspend…

Je savais que c’était une question de réglages serveur, et pas de performances de la machine, j’utilisais auparavant la distrib de Server Logistics (hébergeur spécialisé mac), qui fonctionnait très bien, mais qui n’a plus été mise à jour avant de disparaître… Bref, l’alternative que j’utilise aujourd’hui est XAMPP, qui pour l’instant me donne entière satisfaction. Spip tourne comme une horloge, ça me permet de vraiment travailler sur un clone local d’un site en production, ce qui est quand même l’objectif de tout çà…

Et en réponse à Chichille, il vaut mieux éviter d’utiliser MAMP ou XAMPP ou équivalent windows ou linux pour des sites en production : beaucoup de portes sont laissées ouvertes et seront sources de problèmes. Je n’en sais (comprends) pas beaucoup plus, mais les développeurs respectifs de ces solutions donnent les mêmes avertissements. Tant que c’est pour du développement en local, pas de soucis, mais attention si c’est accessible depuis “l’extérieur”…

++

20)
Le Corbeau
, le 26.02.2010 à 09:47
[modifier]

même pas besoin de mac server 1) récupérer PHP chez Mac Liyanage, toujours très récente et pleine de module (notamment GD), faire clicclic, c’est installé mais c’est pas obligatoire, le mac ayant son propre PHP

2) faire clic pour activer le partage web (apache2) et on a un site actif dès l’allumage de la machine, et autant de site web supplémentaires que d’utilisateurs dès l’ouverture des sessions correspondantes.

3) récupérer le package mysql, faire clicclic, c’est installé, faire cliclcic sur la prefpane qui s’installe dans vos préférences système pour lancer/arreter la base.

4) utiliser les outils livrés pour créer vos utilisateurs mysql

C’est fini et tout marche et c’est à la portée d’un utilisateur de base, le point le plus délicat étant la création des utilisateurs mysql

Vous voulez plusieurs sites sans utiliser ceux des utilisateurs?
créez en deux coups de cuillère à pot autant de configurations ethernet que de site avec des adresse IP différentes (préférences réseau)
Créez avec phpmyadmin, webmin ou autre les serveurs virtuels correspondants en indiquant le chemin de chaque répertoire et c’est terminé. en tapant l’adresse ip, vous visualisez le site correspondant

Vous en voulez plus? activez le DNS natif de MAC OS X client et créez vos zones de domaines, pensez à modifier vos serveurs virtuels pour indiquer le nom de domaine.

Je me retrouve dans une situation quasiment équivalente à une connexion internet et j’économise 30 euros par mois (je n’en ai besoin qu’au boulot)

21)
François Suter
, le 26.02.2010 à 21:02
[modifier]

@Cesium133x Je connais ZendServer, je l’ai testé. Et j’ai vraiment voulu l’utiliser, parce qu’on le déploie sur nos serveurs de prod. Hélas, je n’ai jamais réussi à faire fonctionner correctement ImageMagick en conjonction avec ZendServer, et ce n’est pas faute d’avoir essayé différents trucs.

22)
6ix
, le 27.02.2010 à 09:46
[modifier]

Je me retrouve dans une situation quasiment équivalente à une connexion internet

Tu entends quoi par là ??

23)
Fabien Conus
, le 27.02.2010 à 16:11
[modifier]

Bonjour et merci à tous pour vos commentaires. Me voici de retour sur sol helvète.

Va plutot a celui d’University Av. a Palo Alto… c’est le plus proche de son domicile…

J’y étais il y a deux ans, mais je n’ai pas eu plus de succès :-)

f.red Le Corbeau et fsuter (tchô) : c’est clair que MAMP n’est pas comparable à une installation personnalisée, mais il est facile d’utilisation et convient dans 90% des cas. Pour les 10% restants, MacPorts est une bonne alternative. Par contre je ne connais pas XAMPP, je vais y jeter un oeil.

24)
Le Corbeau
, le 01.03.2010 à 08:59
[modifier]

@ 6ix
J’entend que j’interroge mes sites de tests par leur nom de domaine réel et que tous les réglages sont identiques.
je peut écraser sans complexe mes bases de test par une sauvegarde de l’exploitation, il n’y a rien a changer, ni à régler.
Bien entendu, les liens externes n’aboutissent pas, sauf s’il s’agit d’un autre des sites présents sur mon Mac (puisque je n’ai pas internet)

Les avantages de MAMP semblent être ce que tu a déjà décrit (encore faut-il une connexion pour les mises à jours) En outre, si c’est comme sur PC, il doit être possible de l’installer sans être administrateur et avoir la quasi totalité des fonctionnalités.