rss
twitter
  • Showcase
  • Carrières
  • Support
  • GitLab
  • Espace client
  • Contact

Environnement de travail sous Mac pour développeur web

5

Dernière mise à jour : 27 juin 2012

Cet article sera mis à jour régulièrement.
Cet article s’applique à Mac OS X.6 (Snow Leopard) mais devrait fonctionner sous Lion.


INDEX

Hôtes multiples (vhosts)

Soyons sérieux : pour travailler correctement vous devez être autonome, donc travailler localement (ne pas dépendre d’un serveur extérieur pour visualiser vos fichiers, ne pas vous battre avec un FTP à chaque modification de virgule).
Vous devez également être en mode client-serveur : vos fichiers sont interprétés par un serveur web (au hasard, Apache) qui s’exécute en local. Sinon difficile de travailler avec des fichiers php, shtml et compagnie. Ce qui signifie que vous accédez à votre fichier via https://hostname.local/page.html et non via file:///Volumes/Data/italic/page.html

Si cela vous paraît obscur vous devriez changer de site immédiatement et revenir après avoir étudié les bases, achetez un « Pour les nuls » par exemple (no offense).

À moins d’être embauché à demeure chez le Client, il n’est pas rare de travailler sur plusieurs projets à la fois. Il vous faudra donc plusieurs hôtes (virtual hosts, ou vhosts).
Pour gagner du temps, j’utilise MAMP Pro. C’est pas cher et ça rox. Ce gestionnaire de vhosts installe une version récente d’Apache (vous n’aurez ensuite plus besoin de toucher à celle fournie en standard avec OS X) et pareil pour MySQL, + d’autres trucs bien pratiques (genre phpMyAdmin et Postfix).
Le frontal permet de gérer plusieurs vhosts. La technique est :

  • ne touchez pas à localhost pour l’instant
  • créez autant de vhosts que de projets en cours, en leur donnant comme nom projet.localhost et cochez « Local name resolution »
  • vous pourrez y accéder simplement via https://projet.localhost/ !
  • vous pouvez également spécifier un hostname réel (un vrai site web), ce qui vous permet de tester des appels « live » en pointant directement sur votre machine (oui j’ai conscience que cette phrase mériterait des explications mais là j’ai pas le temps)

img1

À quoi sert localhost ?
Foncièrement, à rien.
Dans la pratique, si vous travaillez en équipe et que vos collaborateurs ne peuvent pas éditer leurs fichiers d’hôtes / pas accéder à leur routeur, ce qui est fréquent quand on loue des bureaux cela dit, vous pouvez utiliser localhost pour pointer sur un site en particulier.

  • J’ai un projet « Air France »
    • Fred travaille à 20 m de moi et voudrait contrôler mon travail sans venir jusqu’à mon écran
    • Fred connaît mon adresse IP sur le LAN, par exemple 192.168.13.37. S’il accède à cette URL depuis son navigateur il tombera sur le site correspondant à l’hôte « localhost » de mon Mac
  • Cet hôte ne pouvant être supprimé, on ne peut pas l’ajouter comme alias du vhost airfrance.localhost
  • Mais comme MAMP Pro est très bien fait il suffit de copier/coller le chemin de airfrance.localhost dans localhost et voilà : Fred tombe sur le bon répertoire.

Ça rend service.

Machines virtuelles

Pour tester les sites sous d’autres plate-formes que le Mac, la solution la plus simple est de virtualiser des machines sous Windows.
Trouvez quelques licences de Windows XP pour 10 euros pièce sur eBay, 50 € pour Parallels, et c’est parti !

img2

  • J’utilise Parallels Desktop (toujours dans sa version 6 pour l’instant)
  • Une version de navigateur par version de Windows, par exemple :
    • VM « Win XP IE6 » :
      • Pas de service pack
      • IE6
      • Firefox 3.6
    • VM « Win XP IE7 » :
      • SP1
      • IE7
      • Firefox 4.0
      • Opera 9.22
    • VM « Win XP IE8 » :
      • SP2
      • IE8
      • Dernière version de FF
      • Dernière version d’Opera
      • Dernière version de Safari
    • Etc… (pensez aux VM sous 7 pour IE9, et sous Linux si un client raisonnable mais fou vous demander de tester un site sous Konqueror)

img3

Ne jamais appliquer les mises à jour Windows (les désactiver), et bien sûr refuser le passage aux versions plus récentes d’IE.
Si vous upgradez Parallels, les « Outils Parallels » (des composants qui permettent à la VM de « parler » correctement avec son Mac hôte) se mettent à jour automatiquement.

Ma botte secrète : j’ai deux versions de chaque VM :
– Une version « safe » que je garde sur un HDD externe
– Une version de travail qui me sert au jour le jour
En effet il est bien connu que Windows devient « sluggish » avec le temps. De plus vous êtes parfois amenés à bricoler votre VM pour les besoins d’un client (par exemple certains grands groupes ont des versions d’IE customisées pour leur compagnie). Profitez-donc de la facilité qu’offre Parallels pour régénérer une machine en un click (drag’n’drop).
De plus il devient inutile de se prendre la tête avec les backups, points de restauration, et autres snapshots Parallels.

Warning Performances :
Comptez entre 500 Mo et 1 Go de RAM par VM pour une utilisation fluide. Autant dire que dans un environnement productif avec quelques applications sympa en tâche de fond (genre Photoshop) vous serez à l’étroit dans 8 Go de RAM et il vous faudra faire des choix.
Fort heureusement, les MacBook Pro 2011 supportent (officieusement) ENFIN 16 Go de RAM, pour la modique somme de 775 euros chez MacWay. Bah oui je sais mais le temps c’est de l’argent, et vous n’imaginez pas le temps que vous allez gagner en pouvant ouvrir toutes vos VM d’un coup, alongside with Photoshop, Mail, Fanurio, Chrome, Firefox, Safari, iChat, Skype, Yammer, Tweetdeck, iCal, Spotify, Word, PowerPoint, Gitbox, MAMP Pro, DropSync, TextMate, Dreamweaver, Fetch, 1Password, Dropbox, Terminal, et donc vos 4 VM. Je ne compte pas tous les process en tâche de fond, c’est « juste » 2 Go (bwahahar).

Combiner les vhosts et les VM

Pour accéder à vos hôtes virtuels (créés dans MAMP Pro) dans vos machines virtuelles (gérées par Parallels Desktop), vous êtes tentés d’utiliser la même adresse que sur votre Mac :

img4
Veuillez noter la débilité profonde du message d’erreur d’Internet Explorer 8.

Pour que ça fonctionne, 2 solutions :
– À l’arrache : copier/coller le path de votre projet en cours (pour reprendre l’exemple précédent : airfrance.localhost vers localhost et tapez directement l’IP de votre machine dans votre VM (ici 192.168.13.37). Inconvénient : vous devez changer le path de localhost à chaque fois que vous switchez de projet. Moi ça m’arrive 10 fois par jour, so fuck it.
– En beauté : en mettant en place un serveur DNS qui supporte les wildcards sur votre machine virtuelle.

Et l’heureux vainqueur eeeeeeest : Acrylic DNS Proxy !
Le principe est le suivant :
– tous nos vhosts dans MAMP Pro ont un nom qui finit par *.localhost
– malheureusement le fichier hosts natif de Windows ne gère par les wildcards (le caractère *)
– heureusement Acrylic en tient compte ! On va donc dire à Windows d’utiliser Acrylic comme lieu de stockage des DNS, et non son fichier hosts (c’est techniquement un peu inexact mais je simplifie volontairement là)

Le but est bien de renvoyer toutes les requêtes terminées par « .localhost » dans la VM vers l’IP de la machine hôte (celle du Mac, donc). Cette IP s’obtient facilement dans les Préférences Systèmes, mais j’espère que vous avez eu la bonne idée d’acheter à bas prix iStat Menus. Cet add-on vous donne accès en permanence à des statistiques utiles sur votre système (RAM utilisée, etc) et à ce magnifique panneau, où se trouve l’IP locale :

img5

La marche à suivre, dans la VM :
1. Configurer la réponse aux alias
– Installer Acrylic DNS Proxy
– Démarrer > Programmes > Acrylic DNS Proxy > Config > Edit Custom Hosts File
– Mettez l’IP locale de votre Mac en face de *.localhost
– Redémarrez Acrylic.

img7

2. Demandez à Windows de consulter Acrylic au lieu du fichier hosts
Rappel : dans la réalité Windows va toujours consulter son fameux C:\Windows\System32\Drivers\etc\hosts mais je simplifie.
– Panneau de config
– Connexions Réseau
– Etat de votre connexion LAN
– Propriétés
– TCP/IP
– Général : saisir 127.0.0.1 comme serveur DNS. C’est l’IP locale de toute machine. Ça va donc forcer Windows à utiliser Acrylic comme serveur DNS, et non ceux configurés pour votre Mac (dont la VM hérite en cascade).

img8

Un coup de F5, et comme on pouvait s’y attendre : « EPIC WINNING LOL! » (comme disait l’autre)
img

DATE 26 Oct 2011
by : Germain
tag : featured
Author / Auteur

Social Share / Partager

    5 Comments
    1. jordan mesh 7 janvier 2013 at 11 h 51 min Répondre

      Hello, je ne suis pas developpeur et j’ai eu un souci avec une etape.

      Je me retrouve dans la meme situation que dans l’exemple du projet airfrance. Via MAMP, aucun probleme j’ajoute tous les projets avec des serveurs avec « .localhost » derrriere.

      Par contre je ne parviens pas a permettre a d’autres personnes sur le meme LAN d’acceder a mes autres projets. Ils tombent toujours sur localhost si jamais ils tapent l’IP de ma machine. J’ai du mal a savoir ou copier-coller la derniere etape.

    2. admin_i 7 janvier 2013 at 11 h 53 min Répondre

      Salut Jordan, c’est normal.
      Il faudrait que tes collaborateurs spécifient que ton ordinateur est un serveur DNS (et qu’il le soit vraiment).
      Il faut sur les postes distants si ce sont des PC installer Acrylic DNS et les configurer comme dans le tutoriel.
      Si ce sont des Mac je ne sais pas encore n’ayant pas été confronté à la situation.
      Regard du côté de Bind : https://www.macshadows.com/kb/index.php?title=How_To:_Enable_BIND_-_Mac_OS_X's_Built-in_DNS_Server

      Et tiens-moi au courant, je vais justement faire face à cette situation d’ici quelques mois…

    3. David P 7 janvier 2013 at 12 h 03 min Répondre

      Mon cher Germain,
      Merci d’avoir pris le temps d’essayer d’expliquer à la quantité de graphistes qui livrent des fichiers très sales aux intégrateurs les bases du métier !
      Je me permets d’apporter un peu d’eau à ton moulin :
      — sur le fait de ne pas modifier l’échelle horizontale ou verticale d’une typo : à mon avis, c’est presque pire que voler la typo à la personne qui l’a créée ! Ça ne se fait tout simplement pas.
      — sur le fait de définir l’interlignage, il y a 2 écoles. L’interlignage par défaut de la plupart des logiciels de graphisme équivaut à 1.2em, à savoir 120% de la taille de la typo de texte courant (texte de 12px > interlignage de 15px). Cet interlignage est plutôt juste puisqu’il nous vient des règles les plus ancestrales de la mise en page « print ». Un petit reset.css suffit à mettre tous les navigateurs d’accord sur le sujet ; je dis ceci parce que parfois, il vaut mieux un interlignage par défaut qu’un interlignage mal choisi…
      — au sujet du profil colorimétrique, plusieurs documents que j’ai été amené à lire m’ont enseigné qu’il convient tout simplement de le désactiver dans le logiciel de création, et de configurer son écran sur le profil par défaut… Mais je suis prêt à échanger là dessus bien évidemment !
      A bientôt !

    4. admin_i 7 janvier 2013 at 12 h 05 min Répondre

      David ! Quel plaisir et honneur de te voir par ici.
      Merci pour tes retours d’expérience.
      En ce qui concerne les profils, on a expérimenté ce problème de couleurs entre vous et moi et ça m’avait décidé à tester à l’époque… Effectivement aussi dans le dernier Smashing Book ils sont aussi favorables à la suppression.
      Je vais tester cela et mettre à jour l’article en conséquence. Tu seras prévenu !
      g

    5. Pingback: ITALIC™ » Nos bonnes pratiques dév front (HTML/CSS/JS)

    Répondre à jordan mesh Annuler la réponse

    *
    *

    More in Desktop : OS X

    • Autoriser le chargement de contenus mixtes non-https dans Chrome (Mac)
    • Quel php.ini (MAMP ou Linux), quelle valeur de phpinfo() ?
    • Ouvrir un dossier (ex : Corbeille) depuis la ligne de commande
    • LaCie 2big NAS / 5big NAS : SSH + rsync
    • Git avec SourceTree : ouvrir dans TextMate / ouvrir dans Sublime Text 2

    Search the blog

    Blog categories

    • Front-end : HTML, CSS (13)
    • Workflow (1)
    • Front-end : javascript, jQuery (33)
    • Back-end : PHP, CMS (42)
    • Back-end : SQL, MySQL (20)
    • Sysadmin : Linux, Apache, GIT (75)
    • Designers : tools, advice (2)
    • Desktop : OS X (37)
    • Desktop : Microsoft (12)
    • Uncategorized (8)

    ITALIC™ Resources

    • Paramètres de connexion au serveur mail
    • Graphistes : séduire un développeur web
    • Dév front : nos bonnes pratiques
    • Mailing : nos (bonnes ?) pratiques
    • Environnement de travail Mac

    Recent posts

    • Autoriser le chargement de contenus mixtes non-https dans Chrome (Mac)
    • Afficher les logs MySQL
    • Recevoir un mail lors de la connexion root à un serveur
    • Changer l’interclassement de plusieurs tables MySQL à la fois (ou presque
    • Maildev : tester l’envoi de mails durant ses développements
    © 2008-2017 ITALIC™ • 8 bis rue Abel • 75012 PARIS • Tel +33 (0)1 48 44 46 35 • RCS PARIS 508 228 772 • Powered by WordPress & GoodLayers
    Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web.
    Cookie settingsACCEPTER
    Manage consent

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
    Necessary
    Toujours activé
    Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
    Non-necessary
    Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
    Enregistrer & appliquer