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

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 peut aussi créer un fichier .my.cnf à la racine du dossier user, et mettre le code suivant :

alex$ sudo pico .my.cnf
[client]
user=root
password=root

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

ou

/Applications/MAMP/Library/bin/mysqldump -h localhost -u root -proot -rnomdemabase.sql nomdematable

ou encore

mysqldump -h localhost -u root -proot -rnomdemabase.sql nomdematable

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

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...

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom