<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blogafab.com &#187; Mac OS X</title>
	<atom:link href="http://www.blogafab.com/tag/mac-os-x/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blogafab.com</link>
	<description>Le blog de Fabien Pennequin</description>
	<lastBuildDate>Sat, 22 Oct 2011 16:48:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Installer et utiliser NodeJS et le module Less sur Mac OS X</title>
		<link>http://www.blogafab.com/installer-et-utiliser-nodejs-et-le-module-less-sur-mac-os-x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installer-et-utiliser-nodejs-et-le-module-less-sur-mac-os-x</link>
		<comments>http://www.blogafab.com/installer-et-utiliser-nodejs-et-le-module-less-sur-mac-os-x/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 20:41:25 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Less]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[macport]]></category>
		<category><![CDATA[NodeJS]]></category>

		<guid isPermaLink="false">http://www.blogafab.com/?p=396</guid>
		<description><![CDATA[Connaissez-vous LESS ? Il s&#8217;agit d&#8217;une sur-couche de CSS apportant son lot d&#8217;améliorations pour faciliter l&#8217;écriture de feuille de styles. LESS vous permettra par exemple de définir des fonctions ou des variables que vous pourrez utiliser dans vos règles CSS. &#8230; <a href="http://www.blogafab.com/installer-et-utiliser-nodejs-et-le-module-less-sur-mac-os-x/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Connaissez-vous LESS ? Il s&#8217;agit d&#8217;une sur-couche de CSS apportant son lot d&#8217;améliorations pour faciliter l&#8217;écriture de feuille de styles. LESS vous permettra par exemple de définir des fonctions ou des variables que vous pourrez utiliser dans vos règles CSS. Pour en savoir plus, n&#8217;hésitez pas à consulter le site officiel de <a href="http://lesscss.org/">LESS</a>.</p>
<p>Pour utiliser LESS sur vos sites internet, vous devez « convertir » vos fichiers LESS en CSS afin que les styles soient interprétés par les navigateurs web. Le site officiel propose deux solutions, soit réaliser la conversion côté client avec le navigateur, soit côté serveur avec nodejs. La 1ère solution rend votre site web dépendant l&#8217;activation de Javascript par le visiteur, ce qui n&#8217;est pas une très bonne idée. J&#8217;ai donc choisi la solution &laquo;&nbsp;serveur&nbsp;&raquo;&#8230;</p>
<h2>Installation de NodeJS et LESS</h2>
<p>Nous allons voir ici comment installer NodeJS et le module less sur Mac OS X 10.6 (et 10.7) avec MacPort. L&#8217;installation de MacPort devra préalablement être réalisée.</p>
<ol>
<li>Commencez par installer NodeJS avec MacPort en utilisant la commande suivante :
<pre class="niji_code niji_shell" style="">port install nodejs</pre>
</li>
<li>Installez maintenant <abbr title="Node Package Manager">NPM</abbr> avec la commande ci-dessous. <abbr title="Node Package Manager">NPM</abbr> est un gestionnaire de packages/modules pour Node permettant de facilité l&#8217;installation de modules.
<pre class="niji_code niji_shell" style="">sudo port install npm</pre>
</li>
<li>Une fois l&#8217;installation de <abbr title="Node Package Manager">NPM</abbr> terminée, procédons à l&#8217;installation du module LESS pour NodeJS. A noter la présence du &laquo;&nbsp;-g&nbsp;&raquo; dans la commande afin de précéder à une installation globale (pour tous les utilisateurs)
<pre class="niji_code niji_shell" style="">sudo npm install less -g</pre>
</li>
<li>Vous avez terminé l&#8217;installation de NodeJS, NPM et LESS</li>
</ol>
<h2>Utilisation</h2>
<p>Écrivez un fichier less. Vous pouvez prendre un exemple du site officiel par exemple.</p>
<pre class="niji_code niji_shell" style="">lessc styles.less</pre>
<h2>Conclusion</h2>
<p>Voilà, vous êtes maintenant fin prêt pour l&#8217;utilisation de LESS dans vos projets web. Je vous recommande de faire un tour sur GitHub où vous trouverez des fichiers LESS pour facilité l&#8217;utilisation CSS3 sur les principaux navigateurs.</p>
<p>Personnellement, j&#8217;utilise LESS depuis presque 1 an et c&#8217;est un réel plaisir d&#8217;écrire des styles CSS avec un tel outil. Essayez-le !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogafab.com/installer-et-utiliser-nodejs-et-le-module-less-sur-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installer Apache 2, MySQL 5 et PHP 5.3 sur Mac OS 10.7 Lion avec MacPort</title>
		<link>http://www.blogafab.com/installer-apache-2-mysql-5-et-php-5-3-sur-mac-os-10-7-lion-avec-macport/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installer-apache-2-mysql-5-et-php-5-3-sur-mac-os-10-7-lion-avec-macport</link>
		<comments>http://www.blogafab.com/installer-apache-2-mysql-5-et-php-5-3-sur-mac-os-10-7-lion-avec-macport/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 21:00:04 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[macport]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.blogafab.com/?p=402</guid>
		<description><![CDATA[Bien que Apache et PHP soient pré-installés sur Mac OS X, j&#8217;évite depuis plusieurs années de les utiliser. Au départ pour un problème de compilation d&#8217;une extension PHP, aujourd&#8217;hui pour ne plus être dépendant d&#8217;Apple dans la mise à jour &#8230; <a href="http://www.blogafab.com/installer-apache-2-mysql-5-et-php-5-3-sur-mac-os-10-7-lion-avec-macport/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bien que Apache et PHP soient pré-installés sur Mac OS X, j&#8217;évite depuis plusieurs années de les utiliser. Au départ pour un problème de compilation d&#8217;une extension PHP, aujourd&#8217;hui pour ne plus être dépendant d&#8217;Apple dans la mise à jour de ces logiciels.</p>
<p>J&#8217;utilise donc MacPort, un excellent gestionnaire de packages pour Mac OS X, qui permet de compiler et d&#8217;installer toutes sortes de logiciels open-source bien utiles.</p>
<p>La sortie récente de Mac OS X Lion, la nouvelle version du système d&#8217;exploitation d&#8217;Apple pour ordinateur, a été l&#8217;occasion de ré-installer complétement mon environnement LAMP&#8230;</p>
<p>Je vous propose ici un guide sur l&#8217;installation et la configuration d&#8217;Apache, MySQL et PHP avec MacPort&#8230;<br />
<span id="more-402"></span></p>
<h2>Installation de votre environnement LAMP</h2>
<p>Nous allons dans une premier temps procéder à l&#8217;installation d&#8217;Apache 2, MySQL 5 et PHP 5.3 et ses extensions. Pour cela, nous devons installer MacPorts 2.0&#8230;</p>
<h3>Installation MacPorts 2.0</h3>
<p>MacPorts 2.0 nécessite au préalable que les outils développeur Mac OS X Lion soient installés. Vous les obtiendrez en installant Xcode 4, disponible sur le Mac App Store d&#8217;Apple.</p>
<ol>
<li>Téléchargez MacPorts 2.0 sur <a href="http://www.macports.org/">le site officiel</a></li>
<li>Ouvrez le fichier .dmg que vous venez de télécharger</li>
<li>Lancez le fichier .pkg et suivez les instructions</li>
</ol>
<p>A noter que dans la suite de l&#8217;article, les commandes données sont à exécuter dans le terminal et en mode &laquo;&nbsp;super-admin&nbsp;&raquo;, d&#8217;où le <em>sudo</em> au début des commandes.</p>
<h3>Installation Apache 2</h3>
<ol>
<li>Téléchargez et installez Apache2 et ces dépendances :
<pre class="niji_code niji_shell" style="">sudo port install apache2</pre>
</li>
<li>Une fois l&#8217;installation terminée, vous pouvez activer lancement automatique de Apache au démarrage de l&#8217;ordinateur :
<pre class="niji_code niji_shell" style="">sudo port load apache2</pre>
</li>
</ol>
<h3>Installation MySQL 5</h3>
<ol>
<li>Téléchargez et installez MySQL 5 et ces dépendances :
<pre class="niji_code niji_shell" style="">sudo port install mysql5</pre>
</li>
<li>Installez/Activez le serveur MySQL 5 :
<pre class="niji_code niji_shell" style="">sudo port install mysql5-server</pre>
</li>
<li>Une fois l&#8217;installation terminée, vous pouvez activer le lancement automatique de MySQL au démarrage de l&#8217;ordinateur :
<pre class="niji_code niji_shell" style="">sudo port load mysql5-server</pre>
</li>
<li>Terminez l&#8217;installation de MySQL :
<pre class="niji_code niji_shell" style="">sudo -u _mysql mysql_install_db5</pre>
</li>
<li>Une fois l&#8217;installation terminée, vous pouvez lancer MySQL au démarrage de l&#8217;ordinateur :
<pre class="niji_code niji_shell" style="">sudo port load mysql5</pre>
</li>
</ol>
<h3>Installation PHP 5.3</h3>
<ol>
<li>Téléchargez et installez PHP 5.3 et ces dépendances. A noter ici que je choisi également d&#8217;activer le PEAR, d&#8217;où le <em>+pear</em>.
<pre class="niji_code niji_shell" style="">sudo port install php5 +pear</pre>
</li>
<li>Ajoutez le module PHP pour Apache 2 :
<pre class="niji_code niji_shell" style="">sudo /opt/local/apache2/bin/apxs -a -e -n <span class="niji_string">&quot;php5&quot;</span> /opt/local/apache2/modules/libphp5.so</pre>
</li>
<li>Créez le fichier de configuration <em>php.ini</em>de PHP :
<pre class="niji_code niji_shell" style="">sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini</pre>
</li>
<li>Installez et activez MySQL pour PHP :
<pre class="niji_code niji_shell" style="">sudo port install php5-mysql</pre>
</li>
<li>Étape optionnelle : Installez quelques extensions utiles pour PHP (apc, curl, gd, iconv, mbstring, &#8230;).
<pre class="niji_code niji_shell" style="">sudo port install php5-apc php5-curl php5-gd php5-iconv php5-intl php5-mbstring php5-mcrypt php5-posix php5-sqlite php5-xdebug php5-zip</pre>
</li>
</ol>
<h2>Configuration de votre environnement LAMP</h2>
<p>Les logiciels sont maintenant installés, reste à les configurer correctement&#8230;</p>
<h3>Configuration Apache 2</h3>
<p>Les étapes ci-dessous permettent de configurer le support de PHP dans Apache et d&#8217;activer le module UserDir (facultatif).</p>
<ul>
<li>Activer PHP dans Apache<em></em>
<ol>
<li>Éditez le fichier /opt/local/apache2/conf/httpd.conf</li>
<li>Ajoutez à la fin du fichier
<pre class="niji_code niji_shell" style=""><span class="niji_comment"># Include PHP configuration
</span>Include conf/extra/mod_php.conf</pre>
</li>
</ol>
</li>
<li>Ajouter index.php dans les pages d&#8217;index reconnues par Apache<em></em>
<ol>
<li>Éditez le fichier /opt/local/apache2/conf/httpd.conf</li>
<li>Recherchez la ligne ci-dessous :
<pre class="niji_code niji_shell" style="">DirectoryIndex index.html</pre>
</li>
<li>Ajoutez sur la même ligne, à la fin :
<pre class="niji_code niji_shell" style=""> index.php</pre>
</li>
</ol>
</li>
<li>Étape optionnelle : Activer l&#8217;extension UserDir pour Apache. Cette extension permet d&#8217;avoir des urls dédiées pour chaque utilisateur de l&#8217;ordinateur du type <em>http://localhost/~utilisateur/</em>
<ol>
<li>Éditez le fichier /opt/local/apache2/conf/httpd.conf</li>
<li>Recherchez et décommentez la ligne ci-dessous :
<pre class="niji_code niji_shell" style="">#Include conf/extra/httpd-userdir.conf</pre>
</li>
<li>Étape optionnelle : Autoriser l&#8217;ajout/suppression d&#8217;options via un .htaccess (exemple <code>Options +FollowSymLinks</code>)
<ol>
<li>Éditez le fichier /opt/local/apache2/conf/extra/httpd-userdir.conf</li>
<li>Recherchez la ligne ci-dessous :
<pre class="niji_code niji_shell" style="">AllowOverride FileInfo AuthConfig Limit Indexes</pre>
</li>
<li>Ajoutez sur la même ligne, à la fin :
<pre class="niji_code niji_shell" style=""> Options</pre>
</li>
</ol>
</li>
</ol>
</li>
<li>Une fois les modifications effectuées, vous pouvez (re)démarrer Apache :
<pre class="niji_code niji_shell" style="">sudo /opt/local/apache2/bin/apachectl restart</pre>
</li>
</ul>
<h3>Configuration MySQL 5</h3>
<p>Les étapes ci-dessous ont pour objectif de configurer et sécuriser votre serveur MySQL.</p>
<ul>
<li>Démarrez le serveur MySQL
<pre class="niji_code niji_shell" style="">sudo /opt/local/lib/mysql5/bin/mysqld_safe &amp;</pre>
</li>
<li>Sécurisez votre serveur MySQL. Je vous recommande de configurer le mot de passe root et de répondre &laquo;&nbsp;Yes&nbsp;&raquo; à toutes les questions.
<pre class="niji_code niji_shell" style="">sudo /opt/local/lib/mysql5/bin/mysql_secure_installation</pre>
</li>
</ul>
<h3>Configuration PHP 5</h3>
<ul>
<li>Configurer MySQL pour PHP<em></em>
<ol>
<li>Éditez le fichier /opt/local/etc/php5/php.ini</li>
<li>Recherchez les paramètres <code>pdo_mysql.default_socket</code>, <code>mysql.default_socket</code>, <code>mysqli.default_socket</code>et mettez comme valeur ceci :
<pre class="niji_code niji_shell" style="">/opt/local/var/run/mysql5/mysqld.sock</pre>
</li>
</ol>
</li>
<li>Configurer le fuseau horaire par défaut<em></em>
<ol>
<li>Éditez le fichier /opt/local/etc/php5/php.ini</li>
<li>Recherchez la ligne suivante :
<pre class="niji_code niji_shell" style="">;date.timezone =</pre>
</li>
<li>Remplacez par :
<pre class="niji_code niji_shell" style="">date.timezone = <span class="niji_string">&quot;Europe/Paris&quot;</span></pre>
</li>
</ol>
</li>
<li>Étape optionnelle : Activer les archives Phar<em></em>
<ol>
<li>Éditez le fichier /opt/local/etc/php5/php.ini</li>
<li>Recherchez et décommentez la ligne ci-dessous
<pre class="niji_code niji_shell" style="">;phar.readonly = On</pre>
</li>
</ol>
</li>
<li>Une fois les modifications terminées, redémarrez votre serveur Apache 2.</li>
</ul>
<h2>Bonus</h2>
<h3>Bonus #1 : Installation et configuration de PhpMyAdmin</h3>
<p>Si vous souhaitez installer l&#8217;outil PhpMyAdmin afin d&#8217;administrer vos bases de données MySQL depuis une interface web, voici les étapes à suivre.</p>
<ol>
<li>Installez PhpMyAdmin
<pre class="niji_code niji_shell" style="">sudo port install phpmyadmin</pre>
</li>
<li>Activez PhpMyAdmin dans Apache
<ol>
<li>Créez le fichier /opt/local/apache2/conf/extra/mod_phpmyadmin.conf avec comme contenu ceci :
<pre class="niji_code niji_conf" style="">AliasMatch ^/phpmyadmin(?:/)?(/.<span class="niji_keyword">*</span>)?$ <span class="niji_string">&quot;/opt/local/www/phpmyadmin$1&quot;</span>

<span class="niji_keyword">&lt;</span>Directory <span class="niji_string">&quot;/opt/local/www/phpmyadmin&quot;</span><span class="niji_keyword">&gt;</span>
  Options <span class="niji_keyword">-</span>Indexes
  AllowOverride None
  Order allow,deny
  Allow from all

  LanguagePriority en de es fr ja ko pt<span class="niji_keyword">-</span>br ru
  ForceLanguagePriority Prefer Fallback
<span class="niji_keyword">&lt;</span>/Directory<span class="niji_keyword">&gt;</span></pre>
</li>
<li>Éditez le fichier /opt/local/apache2/conf/extra/mod_php.conf</li>
<li>Recherchez la ligne ci-dessous :
<pre class="niji_code niji_conf" style=""><span class="niji_keyword">&lt;</span>/IfModule<span class="niji_keyword">&gt;</span></pre>
</li>
<li>Ajoutez au-dessus les lignes suivantes :
<pre class="niji_code niji_conf" style=""><span class="niji_comment"># PhpMyAdmin configuration
</span>Include conf/extra/mod_phpmyadmin.conf</pre>
</li>
<li>Redémarrez Apache 2</li>
</ol>
</li>
<li>Étape optionnelle : Utiliser l&#8217;authentification HTTP plutôt que par cookies
<ol>
<li>Éditez le fichier /opt/local/www/phpmyadmin/config.inc.php</li>
<li>Recherchez la ligne ci-dessous et remplacez <code>cookie</code> par <code>http</code>
<pre class="niji_code niji_php" style=""><span class="niji_variable">$cfg</span>[<span class="niji_string">'Servers'</span>][<span class="niji_variable">$i</span>][<span class="niji_string">'auth_type'</span>] <span class="niji_keyword">=</span> <span class="niji_string">'cookie'</span>;</pre>
</li>
</ol>
</li>
</ol>
<h3>Bonus #2 : Restauration de base de données MySQL volumineuses</h3>
<p>Si vous essayez d&#8217;importer une base de données assez volumineuses (plusieurs Mo), vous obtiendrez une message d&#8217;erreur de MySQL :</p>
<blockquote><p>Got a packet bigger than &#8216;max_allowed_packet&#8217;</p></blockquote>
<p>Pour éviter ce problème vous devez personnaliser le fichier de configuration de MySQL. Voici les étapes à suivre.</p>
<ol>
<li>Créez le fichier de configuration
<pre class="niji_code niji_shell" style="">sudo cp /opt/local/share/mysql5/mysql/my-medium.cnf /opt/local/etc/mysql5/my.cnf</pre>
</li>
<li>Éditez le fichier /opt/local/etc/mysql5/my.cnf</li>
<li>Recherchez la ligne ci-dessous :
<pre class="niji_code niji_shell" style="">max_allowed_packet = 1M</pre>
</li>
<li>Remplacez par :
<pre class="niji_code niji_shell" style="">max_allowed_packet = 16M</pre>
</li>
<li>Redémarrez le serveur MySQL</li>
<li>Si vous obtenez toujours cette erreur, éditez à nouveau le fichier de configuration et augmentez la valeur de <code>max_allowed_packet</code></li>
</ol>
<h2>Conclusion</h2>
<p>Votre environnement LAMP est maintenant prêt et vous pouvez commencer ou prendre vos développements PHP/MySQL avec Mac OS X Lion en plaçant vos fichiers PHP dans votre dossier <em>Sites</em>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogafab.com/installer-apache-2-mysql-5-et-php-5-3-sur-mac-os-10-7-lion-avec-macport/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Ecrire des tests unitaires en C++ avec Xcode</title>
		<link>http://www.blogafab.com/ecrire-des-tests-unitaires-en-c-avec-xcode/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ecrire-des-tests-unitaires-en-c-avec-xcode</link>
		<comments>http://www.blogafab.com/ecrire-des-tests-unitaires-en-c-avec-xcode/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 19:40:49 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Test Unitaire]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://www.blogafab.com/?p=241</guid>
		<description><![CDATA[Il y a quelques jours, à l&#8217;Université, dans le cadre du TP de &#171;&#160;Flots de Multiflots dans les Réseaux&#160;&#187;, j&#8217;ai dû stocker et manipuler des graphes en implémentant les algorithmes de Dikjstra, de Bellman-Ford, de Johnson, de Floyd-Warshall afin d&#8217;obtenir &#8230; <a href="http://www.blogafab.com/ecrire-des-tests-unitaires-en-c-avec-xcode/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Il y a quelques jours, à l&#8217;Université, dans le cadre du TP de &laquo;&nbsp;Flots de Multiflots dans les Réseaux&nbsp;&raquo;, j&#8217;ai dû stocker et manipuler des graphes en implémentant les algorithmes de Dikjstra, de Bellman-Ford, de Johnson, de Floyd-Warshall afin d&#8217;obtenir un plus court chemin.</p>
<p>Les graphes c&#8217;est sympa mais je m&#8217;en méfie toujours, peut-être parce qu&#8217;en licence 3 j&#8217;ai dû perdre quelques cheveux lorsque j&#8217;ai coder 2-3 algorithmes, relativement simples par rapport à ceux cités avant, sur les graphes. Cette année pour ne pas me faire avoir, j&#8217;ai décidé d&#8217;utiliser des tests unitaires afin vérifier mon code. C&#8217;était en plus une bonne occasion pour découvrir un framework de tests en C++</p>
<p><span id="more-241"></span></p>
<p>Pour développer en C++ j&#8217;utilise le logiciel de développement proposé par Apple à savoir Xcode. Il est relativement bien fait, rapide à lancer, propose l&#8217;auto-complétion et surtout, on peut débugger facilement son programme. En plus de ça, Xcode intègre un framework de tests nommé CPlusTest. Pour ceux que cela intéressent, voici comment écrire des tests unitaires en C++ avec Xcode&#8230;</p>
<ol>
<li>Ouvrez ou créez un projet.</li>
<li>Créez une cible pour les tests unitaires
<ol>
<li>Dans le panneau latéral gauche, faites un clic droit sur &laquo;&nbsp;Targets&nbsp;&raquo; et cliquez sur &laquo;&nbsp;Add&#8230;&nbsp;&raquo; &gt; &laquo;&nbsp;New Target&#8230;&nbsp;&raquo;.</li>
<li>Dans la fenêtre qui apparaît, choisissez &laquo;&nbsp;Carbon&nbsp;&raquo; puis &laquo;&nbsp;Unit Test Bundle&nbsp;&raquo; et cliquez sur &laquo;&nbsp;Next&#8230;&nbsp;&raquo;.</li>
<li>Entrez un nom pour votre cible, &laquo;&nbsp;UnitTest&nbsp;&raquo; par exemple, et appuyez sur &laquo;&nbsp;Finish&nbsp;&raquo;.</li>
</ol>
</li>
<li>Créez une classe à tester
<ol>
<li>Il nous faut maintenant une classe à tester. Pour cela, clic droit sur le dossier &laquo;&nbsp;Source&nbsp;&raquo;, puis &laquo;&nbsp;Add&#8230;&nbsp;&raquo; &gt; &laquo;&nbsp;New File&#8230;&nbsp;&raquo;.</li>
<li>Choisissez &laquo;&nbsp;C++ File&nbsp;&raquo; dans le groupe &laquo;&nbsp;Carbon&nbsp;&raquo; puis appuyez sur &laquo;&nbsp;Next&#8230;&nbsp;&raquo;.</li>
<li>Entrez le nom de votre classe, exemple MyFirstClass. Dans la partie &laquo;&nbsp;Targets&nbsp;&raquo;, vérifiez que &laquo;&nbsp;UnitTest&nbsp;&raquo; est bien coché puis cliquez sur &laquo;&nbsp;Finish&nbsp;&raquo;.</li>
<li>Codez une classe MyFirstClass, avec une méthode HelloWorld qui renvoie une string (std::string)<br />
Le .h :</p>
<pre class="niji_code niji_cpp" style=""><span class="niji_comment">#ifndef FIRST_H
</span><span class="niji_comment">#define FIRST_H
</span>
<span class="niji_comment">#include
</span>
<span class="niji_keyword">class</span> MyFirstClass
{
    <span class="niji_keyword">public</span>:
    MyFirstClass();
    std<span class="niji_keyword">::</span>string HelloWorld();
};

<span class="niji_comment">#endif
</span></pre>
<p>Le .cpp :</p>
<pre class="niji_code niji_cpp" style=""><span class="niji_comment">#include &quot;MyFirstClass.h&quot;
</span>
MyFirstClass<span class="niji_keyword">::</span>MyFirstClass()
{
}

std<span class="niji_keyword">::</span>string MyFirstClass<span class="niji_keyword">::</span>HelloWorld()
{
    std<span class="niji_keyword">::</span>string hello <span class="niji_keyword">=</span> <span class="niji_string">&quot;Hello World&quot;</span>;
    <span class="niji_keyword">return</span> hello;
}
</pre>
</li>
</ol>
</li>
<li>Créez les tests unitaires
<ol>
<li>Il faut maintenant créer un fichier de tests. Pour cela, clic droit sur le nom du projet dans le panneau gauche, &laquo;&nbsp;Add&#8230;&nbsp;&raquo; &gt; &laquo;&nbsp;New File&#8230;&nbsp;&raquo;.</li>
<li>Cliquez sur &laquo;&nbsp;Carbon&nbsp;&raquo; puis sur &laquo;&nbsp;C++ Test Case&nbsp;&raquo; et appuyez sur &laquo;&nbsp;Next&nbsp;&raquo;.</li>
<li>Entrez un nom pour votre fichier de test, &laquo;&nbsp;MyFirstClassTest&nbsp;&raquo; par exemple. N&#8217;oubliez pas de vérifier que dans la partie &laquo;&nbsp;Targets&nbsp;&raquo;, la cible &laquo;&nbsp;UnitTest&nbsp;&raquo; est bien coché puis cliquez sur &laquo;&nbsp;Finish&nbsp;&raquo;.</li>
<li>Créez votre première méthode de tests dans MyFirstClassTest.cpp :
<pre class="niji_code niji_cpp" style=""><span class="niji_keyword">void</span> MyFirstClassTest<span class="niji_keyword">::</span>test_HelloWorld()
{
    MyFirstClass <span class="niji_keyword">*</span>instance <span class="niji_keyword">=</span> <span class="niji_keyword">new</span> MyFirstClass();
    CPTAssert(instance<span class="niji_keyword">-</span><span class="niji_keyword">&gt;</span>HelloWorld() <span class="niji_keyword">=</span><span class="niji_keyword">=</span> <span class="niji_string">&quot;Hello World&quot;</span>);
    CPTAssert(instance<span class="niji_keyword">-</span><span class="niji_keyword">&gt;</span>HelloWorld() <span class="niji_keyword">=</span><span class="niji_keyword">=</span> <span class="niji_string">&quot;Hello&quot;</span>);
}</pre>
<p>(N&#8217;oubliez pas d&#8217;ajouter l&#8217;entête de la méthode dans le .h)</li>
<li>Enregistrez le test. Pour cela dans le fichier MyFirstClassTest.h, ajoutez à la fin :
<pre class="niji_code niji_cpp" style="">MyFirstClassTest test1(<span class="niji_int">TEST_INVOCATION</span>(MyFirstClassTest, test_HelloWorld));</pre>
</li>
</ol>
</li>
<li>Lancez les tests unitaires
<ol>
<li>Dans le menu, cliquez sur &laquo;&nbsp;Project&nbsp;&raquo;, allez à &laquo;&nbsp;Set Active Target&nbsp;&raquo; et choisissez &laquo;&nbsp;UnitTest&nbsp;&raquo;.</li>
<li>Toujours dans le menu, cliquez sur &laquo;&nbsp;Build&nbsp;&raquo; puis &laquo;&nbsp;Build and Go (Run)&nbsp;&raquo;.</li>
<li>Erreur devrez vous être rapportée, c&#8217;est le 2e test qui échoue. Si vous supprimez ce test et que vous refaite les étapes 5.1 et 5.2 tout devrait passer sans problème.</li>
</ol>
</li>
</ol>
<p>Voilà, vous êtes fin prêt pour écrire des tests unitaires en C++ avec Xcode. A noter que c&#8217;est la version 3.1 d&#8217;Xcode qui a été utilisé pour réaliser ce tutoriel. Il peut y avoir quelques changements selon la version de l&#8217;IDE que vous utilisez.</p>
<p>Pour plus d&#8217;informations sur les tests unitaires avec Xcode : http://developer.apple.com/documentation/developertools/Conceptual/UnitTesting/UnitTesting.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogafab.com/ecrire-des-tests-unitaires-en-c-avec-xcode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installer Apache, MySQL et PHP sur Mac OS 10.5 avec MacPorts</title>
		<link>http://www.blogafab.com/installer-apache-mysql-php-sur-mac-os-105-avec-macports/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installer-apache-mysql-php-sur-mac-os-105-avec-macports</link>
		<comments>http://www.blogafab.com/installer-apache-mysql-php-sur-mac-os-105-avec-macports/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 10:02:16 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.blogafab.com/?p=216</guid>
		<description><![CDATA[Suite la récente mésaventure que j&#8217;ai eu avec mon MacBook, j&#8217;ai dû ré-installer un environnement AMP sur mon ordinateur. L&#8217;occasion pour moi d&#8217;écrire ce billet et de présenter un outil génial pour Mac&#8230; J&#8217;en ai déjà parlé, la version de &#8230; <a href="http://www.blogafab.com/installer-apache-mysql-php-sur-mac-os-105-avec-macports/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Suite la récente mésaventure que j&#8217;ai eu avec mon MacBook, j&#8217;ai dû ré-installer un environnement AMP sur mon ordinateur. L&#8217;occasion pour moi d&#8217;écrire ce billet et de présenter un outil génial pour Mac&#8230;</p>
<p>J&#8217;en ai déjà parlé, la version de PHP fournie avec Mac OS X Leopard est assez&#8230; épurée : pas de GD ou de PEAR par exemple et la compilation d&#8217;extensions ne marchent pas (cf. mon billet sur Runkit). Pour une utilisation (très?) basique de PHP cela suffira mais si vous voulez, par exemple, manipuler des images il faudra utiliser une autre solution&#8230;</p>
<p><span id="more-216"></span></p>
<p>Parmi les autres solutions possibles, j&#8217;ai choisi d&#8217;utiliser MacPorts et de compiler &laquo;&nbsp;moi-même&nbsp;&raquo; PHP. Certains auraient peut-être choisi <a href="http://www.mamp.info/en/index.html">MAMP</a> qui est une solution plus simple et plus &laquo;&nbsp;rapide&nbsp;&raquo; mais peut-on compiler des extensions avec ? A priori oui mais je n&#8217;en suis pas sûr. L&#8217;objectif est aussi de pouvoir installer d&#8217;autres packages que le trio Apache-MySQL-PHP et de mettre à jour ces packages très simplement (une ligne de commande).</p>
<p>Pour ceux que cela intéresse, voici la procédure pour installer et configurer Apache-MySQL-PHP avec MacPorts sur Leopard. A noter que je suppose que vous avez déjà installé les “Developper Tools” d’Apple.</p>
<h4>Installation de MacPorts</h4>
<ol>
<li>Téléchargez MacPorts sur le site officiel : http://www.macports.org/</li>
<li>Ouvrez l&#8217;image disque (.dmg)</li>
<li>Lancez le .pkg et suivez les instructions.</li>
<li>Une fois l&#8217;installation terminée, allez dans le terminal et lancez la commande :
<pre class="niji_code niji_shell" style="">sudo port selfupdate</pre>
</li>
</ol>
<h4>Installation d&#8217;Apache 2.2</h4>
<ol>
<li>Installez Apache 2.2 en exécutant la commande qui suit dans le terminal :
<pre class="niji_code niji_shell" style="">sudo port install apache2</pre>
</li>
<li>Une fois l&#8217;installation terminée, lancez Apache :
<pre class="niji_code niji_shell" style="">sudo /opt/local/apache2/bin/apachectl start</pre>
</li>
<li>Si vous allez à l&#8217;adresse http://localhost vous devriez voir &laquo;&nbsp;It works!&nbsp;&raquo; à l&#8217;écran.</li>
<li>Si vous souhaitez qu&#8217;Apache soit lancé au démarrage de votre ordinateur, lancez la commande ci-dessous :
<pre class="niji_code niji_shell" style="">sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist</pre>
</li>
</ol>
<h4>Configuration d&#8217;Apache 2</h4>
<p>Maintenant qu&#8217;Apache 2 est installé, nous allons le configurer pour qu&#8217;il fonctionne comme la version d&#8217;Apache fournie avec Mac OS X Leopard.</p>
<ol>
<li>Ouvrez le fichier /opt/local/apache2/conf/httpd.conf avec votre éditeur préféré.</li>
<li>Recherchez la ligne
<pre class="niji_code niji_shell" style="">#Include conf/extra/httpd-userdir.conf</pre>
<p>et enlevez le caractère <code>#</code> au début.</li>
<li>Editez le fichier /opt/local/apache2/conf/extra/httpd-userdir.conf et ajoutez à la fin les lignes ci-dessous :
<pre class="niji_code niji_shell" style=""><span class="niji_comment">#
</span><span class="niji_comment"># Include user configurations
</span><span class="niji_comment">#
</span>Include /etc/apache2/users/*.conf</pre>
</li>
<li>Si vous souhaitez accéder au manuel d&#8217;Apache à l&#8217;adresse http://localhost/manual/ :
<ol>
<li>Editez le fichier /opt/local/apache2/conf/httpd.conf</li>
<li>Recherchez la ligne ci-dessous et enlevez le <code>#</code> au début.
<pre class="niji_code niji_shell" style="">#Include conf/extra/httpd-manual.conf</pre>
</li>
</ol>
</li>
<li>Si vous souhaitez afficher la liste des éléments d&#8217;un dossier lorsqu&#8217;il n&#8217;y a pas de fichier index dedans :
<ol>
<li>Editez le fichier /opt/local/apache2/conf/httpd.conf</li>
<li>Recherchez la ligne la ligne ci-dessous et enlevez le <code>#</code> au début.
<pre class="niji_code niji_shell" style="">#Include conf/extra/httpd-autoindex.conf</pre>
</li>
</ol>
</li>
<li>Relancez Apache :
<pre class="niji_code niji_shell" style="">/opt/local/apache2/bin/apachectl restart</pre>
</li>
</ol>
<h4>Installation et configuration de Mysql 5</h4>
<ol>
<li>Dans le terminal, lancez la commande suivante :
<pre class="niji_code niji_shell" style="">sudo port install mysql5 +server</pre>
</li>
<li>Une fois l&#8217;installation terminée, exécutez la commande :
<pre class="niji_code niji_shell" style="">sudo -u mysql mysql_install_db5</pre>
</li>
<li>Démarrez le serveur MySQL :
<pre class="niji_code niji_shell" style="">sudo /opt/local/bin/mysqld_safe5 &amp;</pre>
</li>
<li>Sécurisez votre installation de MySQL :
<pre class="niji_code niji_shell" style="">sudo /opt/local/bin/mysql_secure_installation5</pre>
</li>
<li>Si vous voulez que MySQL soit automatiquement lancé au démarrage, lancez la commande suivante :
<pre class="niji_code niji_shell" style="">sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist</pre>
</li>
</ol>
<h4>Installation de PHP 5</h4>
<ol>
<li>Lancez l&#8217;installation de php5 :
<pre class="niji_code niji_shell" style="">sudo port install php5 +apache2 +mysql5 +sqlite +pear</pre>
</li>
<li>Une fois l&#8217;installation terminée, créez un fichier de configuration pour php (le php.ini) :
<pre class="niji_code niji_shell" style="">sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini</pre>
</li>
<li>Installez le module php pour Apache :
<pre class="niji_code niji_shell" style=""><span class="niji_function">cd</span> /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n <span class="niji_string">&quot;php5&quot;</span> libphp5.so</pre>
</li>
<li>Editez le fichier /opt/local/apache2/conf/httpd.conf, recherchez
<pre class="niji_code niji_shell" style="">DirectoryIndex index.html</pre>
<p>et remplacez par</p>
<pre class="niji_code niji_shell" style="">DirectoryIndex index.html index.php</pre>
</li>
<li>Editez le fichier /opt/local/apache2/conf/httpd.conf et ajoutez à la fin les lignes suivantes :
<pre class="niji_code niji_shell" style=""><span class="niji_comment"># Load the PHP module
</span>LoadModule php5_module modules/libphp5.so

<span class="niji_comment">#
</span><span class="niji_comment"># Include PHP configurations
</span><span class="niji_comment">#
</span>Include conf/extras-conf/mod_php.conf</pre>
</li>
<li>Relancez Apache :
<pre class="niji_code niji_shell" style="">/opt/local/apache2/bin/apachectl -k restart</pre>
</li>
<li>Vous pouvez maintenant créer dans votre dossier Sites (/Users/<em>votrePseudo</em>/Sites/) un fichier phpinfo.php</li>
</ol>
<p>Voilà, votre environnement de développement AMP est installé et prêt à acceuillir vos scripts et applications ! Pour aller un peu plus loin, vous pouvez installer phpmyadmin et xdebug, avec MacPorts bien sûr.</p>
<p>Concernant MacPorts, je l&#8217;utilise depuis maintenant plusieurs mois et j&#8217;en suis très content. J&#8217;ai pu installer tous les packages dont j&#8217;avais besoin très simplement et sans problème. Je regrette juste de ne pas l&#8217;avoir découvert plus tôt&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogafab.com/installer-apache-mysql-php-sur-mac-os-105-avec-macports/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>TimeMachine, you saved my files</title>
		<link>http://www.blogafab.com/timemachine-you-saved-my-files/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=timemachine-you-saved-my-files</link>
		<comments>http://www.blogafab.com/timemachine-you-saved-my-files/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 15:09:57 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MacBook]]></category>

		<guid isPermaLink="false">http://www.blogafab.com/?p=205</guid>
		<description><![CDATA[Jeudi, sans crier gare, mon MacBook a décidé de ne plus démarrer. L&#8217;écran de démarrage restait bloqué sur le logo d&#8217;Apple avec une roue de chargement qui tourne à l&#8217;infinie. Ma première réaction a été de mettre le dvd d&#8217;installation &#8230; <a href="http://www.blogafab.com/timemachine-you-saved-my-files/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jeudi, sans crier <span class="fiche_mot_libelle_mot_definition">gare</span>, mon MacBook a décidé de ne plus démarrer. L&#8217;écran de démarrage restait bloqué sur le logo d&#8217;Apple avec une roue de chargement qui tourne à l&#8217;infinie.</p>
<p>Ma première réaction a été de mettre le dvd d&#8217;installation de Mac OS X et de lancer une vérification du disque. Mauvaise surprise, il y a une erreur et l&#8217;utilitaire de disque n&#8217;arrive pas à la réparer. N&#8217;ayant pas plus d&#8217;information sur l&#8217;erreur, je redémarre mon MacBook en mode &laquo;&nbsp;console&nbsp;&raquo; et re-tente une vérification/réparation du disque cette fois avec la commande <code>fsck</code>. Ça échoue encore mais j&#8217;obtiens le nom de l&#8217;erreur : &laquo;&nbsp;Invalid sibling link&nbsp;&raquo;. Avec un autre ordinateur, je regarde sur Internet si une solution est possible. Apparemment, d&#8217;autres personnes ont déjà eu le problème et ont réussi à réparer le disque avec la commande <code>fsck_hfs -r /dev/disk0s2</code> (où <code>disk0s2</code> est l&#8217;identifiant de la partition). Je lance (plusieurs fois) la commande mais rien n&#8217;y fait, le formatage est inévitable&#8230;</p>
<p>C&#8217;est dans ce genre de situation où je suis bien content d&#8217;avoir activé TimeMachine, l&#8217;outil de sauvegardes de Mac OS 10.5. Le disque ne pouvant plus être monté, il m&#8217;était impossible de récupérer mes données via un autre ordinateur (avec le mode target) ou de ré-installer Leopard  avec l&#8217;option &laquo;&nbsp;Archiver et Installer&nbsp;&raquo; qui, comme son nom l&#8217;indique, archive l&#8217;ancien système avant d&#8217;en installer un nouveau. La seule solution, à ma connaissance, était donc d&#8217;avoir fait une sauvegarde lorsque le système était encore opérationnel.</p>
<p>Moralité de l&#8217;histoire, TimeMachine ça peut vous sauver <span style="text-decoration: line-through;">la vie</span> vos fichiers !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogafab.com/timemachine-you-saved-my-files/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ForkLift, un client FTP pour Mac</title>
		<link>http://www.blogafab.com/forklift-un-client-ftp-pour-mac/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=forklift-un-client-ftp-pour-mac</link>
		<comments>http://www.blogafab.com/forklift-un-client-ftp-pour-mac/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 09:00:07 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Logiciels]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.blogafab.com/?p=177</guid>
		<description><![CDATA[Depuis que j&#8217;ai acheté un Mac, c&#8217;est-à-dire en 2006, j&#8217;utilisais CyberDuck comme client FTP. C&#8217;est, à priori, le seul client FTP gratuit et open source pour Mac. Son utilisation me semblait assez facile et il disposait de toutes les fonctionnalités &#8230; <a href="http://www.blogafab.com/forklift-un-client-ftp-pour-mac/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><a href="http://www.blogafab.com/wp-content/uploads/2008/10/forklift.jpg"><img class="aligncenter size-full wp-image-181" title="forklift" src="http://www.blogafab.com/wp-content/uploads/2008/10/forklift.jpg" alt="" width="371" height="130" /></a></p>
<p>Depuis que j&#8217;ai acheté un Mac, c&#8217;est-à-dire en 2006, j&#8217;utilisais CyberDuck comme client FTP. C&#8217;est, à priori, le seul client FTP gratuit et open source pour Mac. Son utilisation me semblait assez facile et il disposait de toutes les fonctionnalités dont j&#8217;avais besoin. Je n&#8217;étais pas très exigeant puisque je voulais juste pouvoir déposer des fichiers sur un FTP. Déjà à l&#8217;époque, je me souviens qu&#8217;il plantait de temps en temps, au début, d&#8217;après le développeur, c&#8217;était dû aux machines Intel. Au fil des versions, les plantages et bugs se sont montrés de plus en plus nombreux. Je ne parle même pas de la consommation mémoire et du temps d&#8217;exécution devenus insupportable. Au final, je m&#8217;étais résigné à utiliser un WebFTP&#8230;</p>
<p>Heureusement, en août, j&#8217;ai découvert ForkLift. Au début, j&#8217;ai pris la version d&#8217;évaluation de 15 jours. Quel bonheur ce logiciel ! Très fluide, aucun plantage et plein des fonctionnalités très intéressantes. Il permet par exemple de créer une archive d&#8217;un FTP complet. Bon, c&#8217;est un peu long pour un FTP volumineux mais c&#8217;est très utile quand on n&#8217;a pas d&#8217;accès SSH sur le serveur. Il est également possible de faire du transfert serveur à serveur, très sympa pour faire une copie complète d&#8217;un FTP vers une autre machine.</p>
<p>J&#8217;ai fini par acheter ForkLift en août dernier et depuis je suis toujours aussi content de mon achat <img src='http://www.blogafab.com/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':-)' class='wp-smiley' /> Petit bémol, le cache du logiciel est trop puissant, du coup on ne voit pas les éléments ajoutés par un autre logiciel. Heureusement, on peut désactiver le cache dans les paramètres&#8230;</p>
<p><a href="http://www.binarynights.com/">Site officiel de ForkLift</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogafab.com/forklift-un-client-ftp-pour-mac/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Compiler et installer l&#8217;extension Runkit pour PHP sur Mac OS X</title>
		<link>http://www.blogafab.com/compiler-installer-runkit-php-mac/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=compiler-installer-runkit-php-mac</link>
		<comments>http://www.blogafab.com/compiler-installer-runkit-php-mac/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 09:01:42 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MacBook]]></category>

		<guid isPermaLink="false">http://www.blogafab.com/?p=113</guid>
		<description><![CDATA[Je parlais récemment sur ce blog de mon besoin de l&#8217;extension Runkit afin de supprimer une constante en PHP. Après plusieurs heures a essayer de compiler l&#8217;extension sur mon MacBook, j&#8217;avais finalement abandonné temporairement. Ayant remplacé le binaire php par &#8230; <a href="http://www.blogafab.com/compiler-installer-runkit-php-mac/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je parlais récemment sur ce blog de mon besoin de l&#8217;extension Runkit afin de <a href="http://www.blogafab.com/supprimer-une-constante-en-php/">supprimer une constante en PHP</a>. Après plusieurs heures a essayer de compiler l&#8217;extension sur mon MacBook, j&#8217;avais finalement abandonné temporairement.</p>
<p>Ayant remplacé le binaire php par celui de <a href="http://www.entropy.ch/home/welcome.php">Marc Liyanage</a>, j&#8217;ai essayé de nouveau de compiler de Runkit sur mon MacBook et là, oh surprise, ça fonctionne <img src='http://www.blogafab.com/wp-content/plugins/smilies-themer/Silk/emoticon_grin.png' alt=':D' class='wp-smiley' /> Pour les intéressés, je vous mets la démarche ci-dessous.</p>
<p><span id="more-113"></span></p>
<p>Il existe plusieurs méthodes pour installer une extension PECL. La version courante de Runkit ne semble pas fonctionner avec PHP 5.2 et supérieur, j&#8217;utilise donc la version de développement. Je sais, ce n&#8217;est pas bien mais bon c&#8217;est pour un environnement de développement donc c&#8217;est moins <em>grave</em>. A noter que, pour la suite, je suppose que vous avez déjà installé les &laquo;&nbsp;Developper Tools&nbsp;&raquo; d&#8217;Apple. Ces précisions étant maintenant faites, attaquons la compilation et l&#8217;installation de Runkit <img src='http://www.blogafab.com/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':)' class='wp-smiley' /> </p>
<ol>
<li>Lancer le Terminal</li>
<li>Nous allons dans un premier temps, récupérer les sources de l&#8217;extension.
<ul>
<li>Exécuter les commandes ci-dessous :
<pre class="niji_code niji_shell" style="">touch ~/.cvspass
<span class="niji_function">
cd</span> Desktop
cvs -d:pserver:cvsread@cvs.php.net:/repository login</pre>
</li>
<li>A ce stade, le Terminal devrait vous demander de saisir un mot de passe. Taper &laquo;&nbsp;phpfi&nbsp;&raquo; (sans les guillemets)</li>
<li>Récupérer maintenant les sources de l&#8217;extension avec la commande suivante :
<pre class="niji_code niji_shell" style="">cvs -d:pserver:cvsread@cvs.php.net:/repository <span class="niji_keyword">export</span> -r HEAD pecl/runkit</pre>
</li>
</ul>
</li>
<li>Ensuite, nous allons compiler et installer Runkit.
<ul>
<li>Exécuter les commandes suivantes :
<pre class="niji_code niji_shell" style=""><span class="niji_function">cd</span> pecl/runkit
/usr/local/php5/bin/phpize</pre>
</li>
<li>Si vous utiliser un processeur 64bits (Core2Duo par exemple), lancer cette commande :
<pre class="niji_code niji_shell" style="">MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS=<span class="niji_string">&quot;-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os  -pipe -no-cpp-precomp&quot;</span> CCFLAGS=<span class="niji_string">&quot;-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os  -pipe&quot;</span> CXXFLAGS=<span class="niji_string">&quot;-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os  -pipe&quot;</span> LDFLAGS=<span class="niji_string">&quot;-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load&quot;</span> ./configure --with-php-config=/usr/local/php5/bin/php-config</pre>
</li>
<li>Pour les processeurs 32bits, exécuter cette commande là :
<pre class="niji_code niji_shell" style="">./configure --with-php-config=/usr/local/php5/bin/php-config</pre>
</li>
<li>Ensuite, lancer les commandes ci-dessous :
<pre class="niji_code niji_shell" style="">make
make install</pre>
</li>
</ul>
</li>
<li>Runkit est installé, il nous faut maintenant activer l&#8217;extension.
<ul>
<li>Rechercher un fichier php.ini dans /usr/local/php5/lib/ si il n&#8217;existe pas copier le fichier php.ini-recommended et renommer-le en php.ini</li>
<li>Editer le fichier php.ini</li>
<li>Ajouter à la fin du fichier la ligne suivante :
<pre class="niji_code niji_shell" style="">extension=runkit.so</pre>
</li>
<li>Enregistrer le fichier</li>
</ul>
</li>
<li>Il ne nous reste maintenant plus qu&#8217;à redémarrer Apache, pour cela lancer cette commande :
<pre class="niji_code niji_shell" style="">sudo apachectl restart</pre>
</li>
<li>C&#8217;est fini. Vous devriez maintenant voir dans le phpinfo un bloc &laquo;&nbsp;runkit&nbsp;&raquo; <img src='http://www.blogafab.com/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':)' class='wp-smiley' /> </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.blogafab.com/compiler-installer-runkit-php-mac/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mac OS Leopard, PHP et GD</title>
		<link>http://www.blogafab.com/mac-os-leopard-php-et-gd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mac-os-leopard-php-et-gd</link>
		<comments>http://www.blogafab.com/mac-os-leopard-php-et-gd/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 20:42:50 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.blogafab.com/?p=116</guid>
		<description><![CDATA[En voulant utiliser pChart, une librairie en PHP pour la création de graphiques, je me suis aperçu que la version de PHP5 fournie de base avec Mac OS 10.5 n&#8217;a pas l&#8217;extension GD d&#8217;activée. Heureusement, j&#8217;ai trouvé une solution sur &#8230; <a href="http://www.blogafab.com/mac-os-leopard-php-et-gd/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En voulant utiliser <a href="http://pchart.sourceforge.net/">pChart</a>, une librairie en PHP pour la création de graphiques, je me suis aperçu que la version de PHP5 fournie de base avec Mac OS 10.5 n&#8217;a pas l&#8217;extension GD d&#8217;activée.</p>
<p>Heureusement, j&#8217;ai trouvé <a href="http://www.entropy.ch/phpbb2/viewtopic.php?t=2945">une solution</a> sur <a href="http://www.entropy.ch/phpbb2/viewforum.php?f=2">les forums Entropy.ch</a> qui consiste à remplacer le binaire php de Leopard par le binaire de <a href="http://www.entropy.ch/home/welcome.php">Marc Liyanage</a>. Ce n&#8217;est peut-être pas l&#8217;un des meilleures solutions (quoique&#8230;) mais c&#8217;est la plus rapide donc ça me va <img src='http://www.blogafab.com/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':-)' class='wp-smiley' /> </p>
<p><span id="more-116"></span></p>
<p>Pour ceux que cela intéresse, voici la procédure :</p>
<ol>
<li>Ouvrir le Terminal</li>
<li>Exécuter les commandes ci-dessous :
<ul>
<li>
<pre class="niji_code niji_shell" style="">curl -O http://www2.entropy.ch/download/php5-5.2.5-6-beta.tar.gz</pre>
</li>
<li>
<pre class="niji_code niji_shell" style=""><span class="niji_function">tar</span> -xzf php5-*-beta.tar.gz</pre>
</li>
<li>
<pre class="niji_code niji_shell" style="">sudo mv php5 /usr/local</pre>
</li>
<li>
<pre class="niji_code niji_shell" style="">sudo<span class="niji_function"> ln</span> -sf /usr/local/php5/entropy-php.conf /etc/apache2/other/+entropy-php.conf</pre>
</li>
</ul>
</li>
<li>Si vous aviez activé déjà PHP5 :
<ol>
<li>Éditer le fichier /etc/apache2/httpd.conf</li>
<li>Rechercher la ligne ci-dessous :
<pre class="niji_code niji_shell" style="">LoadModule php5_module        libexec/apache2/libphp5.so</pre>
</li>
<li>Ajouter au début de la ligne un dièse (#).</li>
<li>Enregistrer les modifications.</li>
</ol>
</li>
<li>Retourner dans le Terminal et exécuter la commande ci-dessous :
<pre class="niji_code niji_shell" style="">sudo apachectl restart</pre>
</li>
</ol>
<p>Voilà, maintenant vous devriez avoir PHP 5.2.5 avec, entre autre, l&#8217;extension GD <img src='http://www.blogafab.com/wp-content/plugins/smilies-themer/Silk/emoticon_smile.png' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogafab.com/mac-os-leopard-php-et-gd/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

