SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribs sur SPIP-Zone, 185 visiteurs en ce moment

Accueil du site > Documentation > SPIP en local > SPIP sur Mac OSX > Développer en SPIP sous Mac OS X > Comment créer un environnement de travail pour développer du SPIP sur un MAC (...)

Comment créer un environnement de travail pour développer du SPIP sur un MAC avec MAMP

21 janvier 2012 – par Alexandra – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

6 votes

Cet article est le premier de la série :
-  Comment créer un environnement de travail pour développer du SPIP sur un MAC avec MAMP
-  Ouvrir MAMP sur l’extérieur : Vhost, routeur, Domaine et DNS
-  Quelques outils pour développer du SPIP sous Mac

Nous allons utiliser MAMP 2 en version gratuite et licence GPL comme serveur web local (différent de MAMP Pro version payante). MAMP est l’acronyme de Macintosh Apache MySQL PHP et permet de lancer un serveur web local sous mac os X.

C’est donc une solution toute clé en main et tout-en-un, qui comprend Apache, PHP5 et PHP4, MySQL, PHPMyAdmin et SQLiteManage ...

Avantage par rapport à d’autres solutions :
-  MAMP ne compromettra pas une autre installation d’Apache.
-  MAMP peut se copier sur un autre mac pour être tout de suite opérationnel quand on change d’environnement.
-  MAMP permet de switcher de version php.
-  MAMP ne modifie aucun fichier du système.

Cet article se veut un complément à l’excellent article de Fil qui reste toujours d’actualité, pour configurer au mieux votre environnement sous Mac OS X. Il est valable pour du Léopard, Snow Léopard et Lion. Un petit clin d’œil à Xdjuj que je remercie :-)

Plan de la première partie : MAMP

-  I/ Installation et lancement de MAMP
-  II/ Structure du MAMP
-  III/ Réglages de l’interface
-  IV/ Les réglages avancés et personnalisés
-  V/ Mettre à jour sa version de MAMP en toute tranquillité, sans rien perdre de ses sites et de ses bases de données SQL
-  VI/ En cas de problèmes

I/ Installation et lancement de MAMP

1. On télécharge MAMP sur le site officiel

http://www.mamp.info/en/index.html

On récupère donc le pacquage zippé nommé MAMP_MAMP_PRO_2.0.x.zip, on le dé-zippe puis on lance l’installation. Suivre les différentes étapes de l’installeur. MAMP s’installe à la racine du dossier Applications. On doit avoir un compte administrateur sur le mac et connaitre son mot de passe d’admin.

2. On lance le logiciel en cliquant sur l’icône de l’application MAMP

Une fenêtre s’ouvre nous permettant de contrôler le bon lancement du serveur apache et du serveur de données MySQL.

Les voyants sont verts en cas de réussite, et rouges en cas d’échec. Il y a deux diodes correspondant l’une au serveur Apache, l’autre au serveur MySQL.

Une deuxième fenêtre, celle de la page d’accueil s’ouvre aussi. Cette page prouve également que tout fonctionne et que l’installation de MAMP a réussi.

L’URL par défaut du serveur web local sous MAMP est :

http://localhost:8888/MAMP

Mais on peut également y accéder en tapant l’adresse ip de localhost :

http://127.0.0.1:8888/MAMP

On peut utiliser l’adresse Rendez-Vous du partage web, Préférence système/partage/ avec l’option partage web de cochée. Les ordinateurs de votre réseau local peuvent accéder à votre ordinateur par le biais de l’adresse : imacalex.local

http://imacalex.local:8888/MAMP

On peut aussi ouvrir son serveur local vers l’extérieur, au prix de quelques opérations que l’on détaillera par la suite sur son modem (mappage de port, DMZ …), sur son fichier hosts et ses zones DNS, et utiliser l’adresse ip sortante fourni par son FAI, un domaine ou un dyndns.org :
-  http://mondomaine.info:8888/MAMP/
-  http://monipfixe:8888/MAMP/
-  http://mondyndns.org:8888/MAMP/

3. Configurer les préférences de MAMP selon ses besoins.

Si vous débutez, laissez les options cochées par défaut.

- L’onglet Démarrer / Arrêter :

-  Cocher lancer les serveur au démarrage de MAMP
-  Cocher Arrêter les serveurs en quittant MAMP
-  Décocher Vérifier MAMP Pro au démarrage de MAMP. On n’utilise pas la version payante
-  Cocher la page d’accueil au démarrage, URL de la page d’accueil /MAMP/ qui correspond donc à http://localhost:8888/MAMP ou http://127.0.0.1:8888/MAMP

- L’onglet Port :

Par défaut ce ne sont pas les ports traditionnels qui sont utilisés par MAMP pour Apache et MySQL, pour ne pas rentrer en conflit avec d’autres serveurs. MAMP propose en standard le port 8888 pour Apache, le port 80 étant normalement le port utilisé par défaut pour le serveur web. MAMP propose en standard le port 8889 pour MySQL, le port 3306 étant normalement le port utilisé par défaut.

On peut switcher depuis cet onglet sur les Ports par défaut d’Apache et de MySQL ou revenir aux Ports par défaut de MAMP selon ses besoins. Mais on peut aussi définir ses propres ports si on le souhaite.

- L’onglet PHP :

MAMP a l’énorme avantage de proposer deux versions de PHP :
-  La version 5.2.17
-  et la 5.3.6

Ceci s’avère très utile pour tester et développer sous différentes versions de PHP. Par défaut on prendra la version proposée qui est à plus récente, à savoir le 5.3.6.

MAMP nous propose aussi des extensions PHP pour le cache, à savoir XCache eAccelerator et APC. J’avoue ne pas trop savoir à quoi cela correspond. Nous avons laissé le XCache proposé par défaut.

- L’onglet Apache :

Il faut définir ici le Document Root. Par défaut il s’agit de /Applications/MAMP/htdocs Mais on peut choisir un répertoire n’appartenant pas à MAMP si on le souhaite, n’importe où dans sa maisonnette d’utilisateur mac.

Traditionnellement, ceux qui n’utilisent pas /Applications/MAMP/htdocs se servent du répertoire Sites de leur dossier utilisateur /Users/user/Sites. L’avantage de conserver en Document Root le répertoire htdocs est que l’on peut copier l’application MAMP sur un autre mac et être tout de suite opérationnel. On centralise en un même endroit tous les éléments. Mais les autres choix de Document Root peuvent tout aussi bien se justifier et de défendre. Il s’agit donc du choix du document racine du serveur web, et c’est là qu’il conviendra de déposer tous ses répertoires de sites web.

- Créer une base SQL :

depuis l’onglet PhpMyadmin, dans la case créer une nouvelle base de données en entrant son nom.

Dans interclassement pour la connexion MySQL cocher utf8_general_ci et cliquer ensuite sur créer. On pourra éventuellement créer un user spécifique pour cette base de donnée avec les privilèges qu’il convient. Pour ce faire, cliquer sur l’onglet Privilèges de PhpMyAdmin, puis cliquer sur ajouter un utilisateur et remplir les cases du formulaire.

II/ Structure du MAMP

MAMP.app sert à lancer l’application. Elle a été installée dans Applications, et elle devra impérativement y rester. Les répertoires principaux de MAMP sont les suivants :

-  /Applications/MAMP : répertoire racine de l’application MAMP
-  /Applications/MAMP/cgi-bin
-  /Applications/MAMP/library : on y mettra notamment le my.cnf
-  /Applications/MAMP/bin : répertoire contenant les exécutables d’Apache, PHP4, PHP5, MySQL5 et SQLite.
-  /Applications/MAMP/conf : répertoire contenant les fichiers de configuration d’Apache (httpd.conf), et SQLiteManager (config.db).
-  /Applications/MAMP/tmp : répertoire contenant les fichiers temporaires créés par les exécutables. Le répertoire /tmp/php contient notamment les fichiers temporaires des sessions PHP.
-  /Applications/MAMP/db : répertoire contenant les bases de données SQLite et MySQL.
-  /Applications/MAMP/logs : répertoire contenant les fichiers de logs d’erreurs de PHP, Apache et MySQL.
-  /Applications/MAMP/htdocs : répertoire contenant les différents projets de sites Web si un autre dossier n’a pas été sélectionné.

III/ Réglages de l’interface

- Onglet Start Sur la page d’accueil où dans l’onglet start, se trouvent les informations importantes dont on a besoin pour configurer un CMS, à savoir le hôte : localhost, le port SQL : 8889, l’user : root, le mot de passe : root

- Onglet Phpinfo Toutes les informations au niveau de la configuration de PHP. On y trouve notamment les informations du traditionnel php.info, avec la version de PHP active, ici Version 5.3.6, le chemin du fichier php.ini, il peut changer selon les versions de MAMP, /Applications/MAMP/bin/php/php5.3.6/conf/php.ini. On pourra y lire les valeurs par défaut de max_execution_time à 30 et de memory_limit à 32M du php.ini qu’il conviendra d’augmenter d’office pour une utilisation sereine de MAMP avec un CMS dont SPIP.

- Onglet : Xcache On y touche pas. Je sais même pas trop à quoi ça sert.

- Onglet Phpmyadmin L’interface de contrôle de MySQL.

- Onglet SQLiteManager l’interface de contrôle de SQLite pour ceux qui utilise du SQLlight nativement proposé avec SPIP 3. Même si le manager nous semble beaucoup moins au point que le traditionnel Phpmyadmin. Nous continuons pour notre part à utiliser MySQL avec SPIP 3.

- Onglet Faq Foire aux questions en anglais

- Onglet Try MAMP Pro On ne l’abordera pas ici, mais nos différents réglages nous permettront d’avoir plus ou moins les mêmes options que la version Pro.

IV/ Les réglages avancés et personnalisés

Voici quelques réglages et quelques éléments de personnalisation du MAMP à faire pour travailler sereinement comme sur un vrai serveur dédié mais en local. Toutes ne seront pas obligatoires, à vous de voir selon vos besoins.

1. Ajuster les valeurs de php.ini

Il conviendra de modifier le php.ini de chacune des versions php proposées par MAMP. Le chemin vers le php.ini peut changer selon les versions de MAMP. Ne pas hésiter à faire dans le terminal ces lignes :

alexmacapple:~ alex$ cd /Applications/MAMP
alexmacapple:~ alex$
alexmacapple:MAMP alex$ find / -name php.ini 2>/dev/null

Qui nous donnera les bons chemins :

/Applications/MAMP/bin/php/php5.2.17/conf/php.ini

/Applications/MAMP/bin/php/php5.3.6/conf/php.ini

memory_limit set est à 8MB par défaut dans MAMP, il conviendra de lui donner une valeur de 32 MB pour être tranquille. Ce réglage là est impératif pour lancer confortablement un SPIP récent sous peine d’obtenir des erreurs de timeout.

On pourra également vérifier que max_execution_time est à 30 MB

On peut également rajouté ces lignes pour activer les erreurs php

error_reporting : E_ALL
display_errors : On

2. Créer dans MAMP le fichier de configuration MySQL (my.cnf)

Si vous avez besoin d’ajuster vos paramètres SQL, il conviendra de créer un fichier my.cnf dans le répertoire suivant /Applications/MAMP/Library/my.cnf

Il faut copier et surcharger le fichier qui se trouve dans /Applications/MAMP/Library/support-files/my-­medium.cnf et le placer dans le répertoire /Applications/MAMP/Library/ et le renommer en my.cnf

On peut le faire en ligne de commande à l’aide des lignes suivantes

sudo
cp
/Applications/MAMP/Library/support-­files/my-­medium.cnf
/Applications/MAMP/Library/my.cnf

Attention l’emplacement peut changer selon les versions de MAMP utilisées. On peut sinon rechercher le fichier par le terminal en tapant les commandes pour voir s’ils existent et où ils se trouvent :

find / -name my.cnf 2>/dev/null
find / -name my-medium.cnf 2>/dev/null

Éditer le fichier my.cnf et notamment modifiant la valeur de max_allowed_packet : passer de max_allowed_packet = 1M à max_allowed_packet = 128M pourra nous être d’un grand secours dans le cas de très grosses bases de données.

3. Utiliser MySQL en ligne de commande avec MAMP sans passer par PhpMyAdmin

Il faut ouvrir le terminal, dans /applications/utilitaires/Terminal Et taper la commande suivante :

/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot

On peut dès lors utiliser les commandes de MySQL. Taper par exemple : show databases ;

On peut aussi créer un lien symbolique pour n’avoir à taper que mysql depuis le shell

sudo ln -s /Applications/MAMP/Library/bin/mysql /usr/local/bin/mysql

Une autre méthode, alternative au lien symbolique, consiste à créer un fichier .profile, fichier caché, dans son répertoire de home du mac /users/nom, de façon à y renseigner le PATH, à savoir le chemin de recherche des fichiers exécutables de MySQL

export PATH=/Applications/MAMP/Library/bin:$PATH

On peut taper . .profile dans le terminal pour relancer son profile

alexmacapple:~ alex $ . .profile

puis écho $PATH pour s’assurer que la ligne a bien été prise en compte

alexmacapple:~ alex$ echo $PATH

On pourra alors désormais taper un simple mysql -u root -p pour se connecter à MySQL en ligne de commande

Injecter un dump SQL :

mysql -uUSER -pPASS spip_db < mabase_db.sql
cat Fichier.sql | mysql -uroot --password=root --database=nombase

Faire un sauvegarde SQL

mysqldump --opt spip > sauvegarde_spip.sql

4. Changer le password de MySQL :

Par défaut le login et le mot de passe de MySQL est root/root. Si vous n’ouvrez pas le serveur MAMP vers l’extérieur, aucun souci, vous pouvez laisser comme cela. En revanche si vous voulez l’ouvrir sur le monde extérieur, et que votre serveur est accessible sur internet, il sera préférable de changer le mot de passe attribué par défaut pour des raisons de sécurité.

Pour changer le mot de passe MySQL, il faudra faire deux choses :

1. Utiliser la ligne de commande suivante dans le terminal

/Applications/MAMP/Library/bin/mysqladmin -u root -p password [NEWPASSWORD]

2. Prendre un éditeur de texte pour modifier l’ancien mot de passe à quatre endroits différents :

/Applications/MAMP/bin/phpMyAdmin-X.X.X/config.inc.php
ligne 86

$cfg['Servers'][$i]['password'] = 'root';

/Applications/MAMP/bin/mamp/index.php
ligne 15

$link = @mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', 'root',
'root');

/Applications/MAMP/bin/stopMysql.sh
Remplacer -proot par -pvotrepass

On peut également le changer dans la page d’accueil de MAMP
/Applications/MAMP/bin/mamp/French/mamp.inc.php ligne 16 et ligne 23

5. Ouvrir MAMP automatiquement au démarrage du mac

Allez dans le menu pomme, puis Préférences Système

Puis dans l’onglet compte/ouverture, rajouter MAMP en ouverture automatique de session

Cliquer sur ajouter

Et c’est tout bon. Si votre mac s’éteint, le MAMP s’ouvrira automatiquement tout seul à la prochaine ouverture.

On peut même, toujours dans les préférences system et dans l’onglet économiseur d’énergie cocher la case démarrer automatiquement le mac après une panne de courant.

V/ Mettre à jour sa version de MAMP en toute tranquillité, sans rien perdre de ses sites et de ses bases de données SQL

-  1. On quitte l’application MAMP ce qui a pour effet d’arrêter les serveurs Apache et MySQL, et on arrête les process pouvant tourner grâce au moniteur d’activité.
-  2. On Quitte l’application MAMP ce qui a pour effet d’arrêter les serveurs Apache et SQL
-  3. On renomme dans Applications le dossier MAMP en MAMP.old
-  4. On lance la nouvelle installation de MAMP que l’on aura au préalable téléchargée sur le site officiel
-  5. On va copier certaines données de MAMP.old dans MAMP : Copier le contenu du sous-dossier /htdocs vers MAMP (Si vos sites sont dans ce Document Root). Copier le contenu du sous-dossier /db/mysql vers MAMP (Mais pas les sous-dossiers mysql/, performance_schema/ et le fichier mysql_upgrade_info)
-  6. Copier le fichier /conf/apache/httpd.conf vers MAMP si vous aviez modifié le fichier de conf (faire un diff pour voir ce qui a changé dans la nouvelle version et les répercuter)
-  7. Copier le fichier /bin/php/[Votre version]/conf/php.ini vers MAMP si vous aviez modifié le fichier (faire un diff pour voir ce qui a changé dans la nouvelle version, répercuter notamment le memory limait)
-  8. Relancer MAMP dans sa nouvelle version. La mise à jour est terminée

(Et si on est un brin para-no :-), on peut également, avant de mettre a jour le MAMP, faire un backup manuel de toutes les bases sql dans PhpMyAdmin, mais de toute façon pas de panique, on pourra toujours revenir à son ancien MAMP en supprimant le .old et en renommant le nouveau MAMP, puis en fermant les process.)

VI/ En cas de problèmes

Il est possible que le MySQL de votre version de MAMP parfois refuse de se lancer ou ne fonctionne plus. Il convient tout d’abord de fermer MAMP.

Il faut ensuite ouvrir le moniteur d’activité (Applications/Utilitaires/Moniteur d’activité/) et de fermer le ou les process sql qui pourraient être en conflit.

On peut également aller directement dans le terminal et taper le code suivant d’un seul coup, même si personnellement je préfère la méthode avec le moniteur d’activité qui liste précisément les process SQL ouverts qui pourraient rentrer en conflit

ps aux | grep mysql
lsof -i
killall -9 mysqld

On redémarre ensuite le mac (pas obligatoire mais c’est une bonne veille habitude), on ouvre le MAMP et les serveurs devraient redémarrer.

On peut aussi, par précaution, bien que cela ne soit pas forcément utile faire un chmod récursif 777 sur MAMP pour écarter tout problème de permission (sinon Pomme i, et donner les droits en écriture pour tous les répertoires)

# sudo chmod -Rfv 777 /Applications/MAMP

Lire la suite : Ouvrir MAMP sur l’extérieur : Vhost, routeur, Domaine et DNS

P.-S.

Nous n’avons pas abordé ici la question de la mutualisation, car nous ne l’avons jamais pratiqué, et surtout parce qu’un très bon article fait par Maïeul existe déjà. http://geekographie.maieul.net/Gere...

Retour en haut de la page

Vos commentaires

  • Le 29 janvier à 23:12, par tintinak En réponse à : Comment créer un environnement de travail pour développer du SPIP sur un MAC avec MAMP

    bonsoir, peut être que vous pourriez m’aider.
    J’utilise mamp pour créer mes sites en php sur mon serveur local.
    J’ai placé mes sites dans le dossier site/mon_site/
    dans le dossier mon site j’ai mon index.php
    le problème est le suivant :
    je lance mamp et tout va bien les serveurs sont lancés.
    Quand je me rends sur l’url http://localhost:8888/mon_site/index.php au lieu de m’interpréter la page web il me télécharge le fichier.php.
    Depuis deux jours je recherche une solution sur différents sites mais pour l’instant pas de réponses efficaces, ce qui marche pour les autre ne marche pas pour moi :s

    Merci d’avance et à très vite

    Répondre à ce message

  • Le 27 janvier à 09:58, par domiw En réponse à : Comment créer un environnement de travail pour développer du SPIP sur un MAC avec MAMP

    Belle série d’articles, peut-être à compléter par un pas d’installation de SPIP une fois MAMP configuré (je veux bien aider). Avant j’activais PHP et installais Mysql, mais pour ce dernier cela changeait avec les version de Mac OS, je ne regrette pas d’être passé à MAMP (et on a en plus gd, yaz et d’autres librairies installées).

    Dans le temps MAMP était livré avec un widget qui permettait de démarrer Apache et Mysql sans lancer MAMP, il a disparu de la livraison mais fonctionne toujours (MAMP 2.05 + Snow léopard).

    Personnellement j’ai choisi le dossier « Sites » du Mac pour mettre les dossiers de projets de sites. Cela permet de faire les mises à jour en toute tranquillité. Il faut renommer le fichier index.html qui s’y trouve et les dossiers des différents projets sont accessibles par http://localhost:8888/ ou directement http://localhost:8888/mom_projet/ ou toute autre url du même type suivant ce qu’on a choisi. (Une IP fixe permet d’accéder facilement depuis un PC pour debugage sous IE :-( ).

    Pour la base de données j’ai choisi aussi de la déporter dans mon dossier « Documents » avec un lien symbolique. Pour cela j’utilise Symboliclinker qui installe un Service pour créer facilement des liens symboliques (les alias ne fonctionneraient pas dans ce cas). Déplacer le dossier /MAMP/bd/ vers le dossier « Documents » (on peut au besoin alors le renommer « bd-MAMP » pour plus de clarté). Clic-droit et dans les services choisir « Créer un lien symbolique ». Il se crée alors à coté du dossier déplacé, le remettre alors dans le dossier MAMP (le lien symbolique) et le renommer au besoin « bd ». Ça fonctionne parfaitement chez moi sur plusieurs machines (fixe et portable).

    En utilisant le dossier « Sites » et le lien symbolique pour le dossier « bd », ça permet de faire ses mises à jours de MAMP en toute tranquillité (si on n’a rien modifié d’autre), c’est cohérent avec la place des données. Si on a un utilitaire de sauvegarde automatique type Time-machine ou autre on garde les réglages génériques qu’on a pour ses données autres.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Introduction à la création d’un livre

    17 janvier – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Pour produire un livre avec SPIP, on peut produire un PDF. Une des solutions est d’utiliser LaTeX. C’est celle que nous avons choisie. SPIP et LaTeX SPIP permet de produire n’importe quel fichier de type text. En général, il produit des fichiers (...)

  • Escal-V3

    16 février – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un jeu de squelettes proposant un affichage en 2 ou 3 colonnes avec un large choix de noisettes à insérer ou pas, fortement paramétrable depuis l’espace privé . A l’instar de sa petite soeur plugin Escal-V2 dont elle reprend toutes les (...)

  • SPIP 1.9.2n, 2.0.17, 2.1.12 disponibles

    17 novembre 2011 – 10 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Bonjour, Plusieurs failles de sécurité ont été repérées (Merci à High-Tech Bridge SA Security Research Lab, Davy et Arnault) dans les versions 1.9, 2.0 et 2.1 de SPIP. Nous rappelons à toutes et tous que le meilleur moyen pour signaler des failles, ou (...)

  • Table des Matières

    29 juillet 2007 – 50 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ajoute des ancres en fonction des intertitres et fournit une balise pour afficher la « table des matières » d’un article - autrement dit un « sommaire » -.

  • Navigation AJAX

    31 janvier – 30 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet de modifier automatiquement une parties des liens internes de manière à ce qu’ils ne déclenchent pas un chargement complet de la page cible, mais un chargement en AJAX de certains éléments spécifiés à l’avance. Il permet aussi de (...)