mageekblog - Mot-clé - launchdLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearActiver httpd sous MacOS X « Mountain Lion »urn:md5:5b642ea8a5cd292cebc069fb37f1fab22012-07-31T15:30:00+02:002012-08-24T10:03:30+02:00mageekguyMac OS XapachehttpdlaunchdMacOS XMountain Lion<p>Comme beaucoup d'autres, j'ai migré sous <a href="http://www.apple.com/osx/">MacOS X <q>Mountain Lion</q></a> dès qu'il a été disponible, même si contrairement à d'autre, j'étais très bien sous Lion.</p>
<p>Cependant, cette nouvelle version du système d'exploitation de <a href="http://www.apple.com">Apple</a> intégre une fonctionnalité nommée <q>Power Nap</q> qui autorise notamment la sauvegarde des données de la machine sur une Time Capsule même lorsqu'elle est en veille.</p>
<p>Or, lorsque je suis à mon domicile, j'utilise assez rarement mon MacBook Air et du coup, il est la plupart du temps en veille et branché sur le secteur.</p>
<p>Mes sauvegardes étaient donc très irrégulières et ma migration vers <q>Mountain Lion</q> a donc résolu le problème.</p>
<p>Et elle en a posé un autre, puisque <a href="http://www.apple.com">Apple</a> a supprimé de cette version la possibilité pour l'utilisateur de démarrer un serveur <a href="http://httpd.apache.org">httpd</a> à partir des préférences systèm afin de lui permettre de partager ses documents via <abbr title="HyperText Transfert Protcol">HTTP</abbr>.</p>
<p>Dans sa grande sagesse, elle a peut être en effet estimé que des solutions comme iCloud ou AirDrop sont beaucoup plus adaptées pour cela, et j'avoue que je suis assez d'accord avec elle.</p>
<p>Cependant, n'étant pas Mme Michu mais un développeur, ça m'a positivement fait chier, d'autant plus que <a href="http://httpd.apache.org">httpd</a> est toujours fourni avec <q>Mountain Lion</q> mais qu'il n'est pas démarré automatiquement.</p> <p>En clair, <a href="http://www.apple.com">Apple</a> a juste supprimé la possibilité de le lancer via une interface graphique, et il est toujours possible de le démarrer via la ligne de commande, via un simple <code>sudo apachectl start</code> (respectivement <code>stop</code> pour l'arrêter).</p>
<p>C'est cependant un poil contraignant, car il faut exécuter cette commande à chaque fois que l'on s'authentifie, ou après chaque redémarrage de la machine.</p>
<p>J'ai donc créé le fichier <code>org.apache.httpd.plist</code> dans le répertoire /<code>System/Library/LaunchDaemons </code>en tant que super-administrateur, à l'aide de la commande suivante :</p>
<blockquote><pre><code># sudo vi /System/Library/LaunchDaemons/org.apache.httpd.plist</code></pre></blockquote>
<p>J'y ai ensuite ajouté le code XML suivant :</p>
<blockquote><pre><code><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>org.apache.httpd</string>
<key>EnvironmentVariables</key>
<dict>
<key>XPC_SERVICES_UNAVAILABLE</key>
<string>1</string>
</dict>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/httpd</string>
<string>-D</string>
<string>FOREGROUND</string>
</array>
<key>OnDemand</key>
<false/>
<key>SHAuthorizationRight</key>
<string>system.preferences</string>
</dict>
</plist></code></pre></blockquote>
<p>Il faut ensuite faire appartenir le fichier à <code>root</code> et au group <code>wheel</code>, puis lui attribuer les droits ad hocs, à l'aide des commandes suivantes :</p>
<blockquote><pre><code># sudo chown root:wheel /System/Library/LaunchDaemons/org.apache.httpd.plist
# sudo chmod 644 /System/Library/LaunchDaemons/org.apache.httpd.plist</code></pre></blockquote>
<p>Ainsi, <a href="http://httpd.apache.org">httpd</a> sera automatiquement démarré dès le démarrage de la machine.</p>
<p><a href="http://blog.mageekbox.net/public/MacOS/apache/itWorks.png" title="itWorks.png"><img src="http://blog.mageekbox.net/public/MacOS/apache/.itWorks_m.jpg" alt="itWorks.png" style="margin: 0 auto; display: block; " title="itWorks.png, juil. 2012" /></a></p>
<p>Cependant, si <a href="http://httpd.apache.org">httpd</a> est effecivement lancé, il ne permet pas encore d'accèder au contenu du répertoire <q>Sites</q> de votre répertoire d'accueil, accessible via l'<abbr title="Uniform Resource Locator">URL</abbr> <code>http://localhost/~votreNomUtilisateur</code>.</p>
<p><a href="http://blog.mageekbox.net/public/MacOS/apache/sites.png" title="sites.png"><img src="http://blog.mageekbox.net/public/MacOS/apache/.sites_m.jpg" alt="sites.png" style="margin: 0 auto; display: block; " title="sites.png, juil. 2012" /></a></p>
<p>Pour cela, il suffit d'exécuter la commande suivante une seule fois :</p>
<blockquote><pre><code># sudo echo -e "<directory \"="" users="" $user="" sites="">\nOptions Indexes MultiViews\nAllowOverride All\nOrder allow,deny\nAllow from all\n</directory>" > /etc/apache2/users/$USER.conf
# sudo chown root:wheel /etc/apache2/users/$USER.conf
# sudo chmod 644 /etc/apache2/users/$USER.conf
</code></pre></blockquote>
<p>Après un avoir forcé <a href="http://httpd.apache.org">httpd</a> à relire ses fichiers de configuration à l'aide de la commande <code>sudo apachectl graceful</code>, vous devriez pouvoir accèder sans problème au contenu de votre répertoire <q>Sites</q> à l'aide d'un navigateur sans aucun problème.</p>http://blog.mageekbox.net/?post/2012/07/31/Activer-httpd-sous-MacOS-X-Mountain-Lion#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/362