<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://www.syndicatlibre.org/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Le syndicat Libre</title>
	<link>https://www.syndicatlibre.org/</link>
	<description>Un site Fourmi'dable ! Vous y trouverez toutes les informations utiles pour comprendre le monde du travail, profiter des formations du syndicat Libre, et, plus largement, mieux vivre votre vie professionnelle.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.syndicatlibre.org/spip.php?id_auteur=8&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>Le &lt;b&gt;syndicat&lt;/b&gt; &lt;span class='marque_synper'&gt;Libre&lt;/span&gt;</title>
		<url>https://www.syndicatlibre.org/local/cache-vignettes/L144xH144/logo_du_syndicat_libre_sans_fond_ni_url-4c82e.png?1777730715</url>
		<link>https://www.syndicatlibre.org/</link>
		<height>144</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>Les europ&#233;ennes et les l&#233;gislatives</title>
		<link>https://www.syndicatlibre.org/spip.php?article600</link>
		<guid isPermaLink="true">https://www.syndicatlibre.org/spip.php?article600</guid>
		<dc:date>2024-06-11T11:01:28Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent CALLIES</dc:creator>



		<description>
&lt;p&gt;Suite aux votes relatifs aux d&#233;put&#233;s europ&#233;ens, qui ont envoy&#233; en premi&#232;re liste une liste anti-europ&#233;enne, le Pr&#233;sident de la R&#233;publique, pro europ&#233;en, a dissout l'assembl&#233;e nationale , et demande aux fran&#231;ais de d&#233;cider de quels gouvernements ils veulent. 20% de nos lois vot&#233;es par le parlement fran&#231;ais sont une application du droit europ&#233;en &lt;br class='autobr' /&gt;
Les r&#233;sultats en &#206;le-de-France pla&#231;ant l'extr&#234;me droite et l'extr&#234;me gauche en t&#234;te, est pr&#233;occupant pour notre d&#233;mocratie, mais aussi pour l'Union (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.syndicatlibre.org/spip.php?rubrique99" rel="directory"&gt;Les id&#233;es&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Suite aux votes relatifs aux d&#233;put&#233;s europ&#233;ens, qui ont envoy&#233; en premi&#232;re liste une liste anti-europ&#233;enne, le Pr&#233;sident de la R&#233;publique, pro europ&#233;en, a dissout l'assembl&#233;e nationale&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir sur le site Vie Publique, le discours du Pr&#233;sident de la R&#233;publique du (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;, et demande aux fran&#231;ais de d&#233;cider de quels gouvernements ils veulent. 20% de nos lois vot&#233;es par le parlement fran&#231;ais sont une application du droit europ&#233;en&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Nombreux sont ceux qui disent que 80% de nos lois nationales sont une (&#8230;)&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Les r&#233;sultats en &#206;le-de-France&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voici les premi&#232;res listes retenues par les franciliens, pla&#231;ant l'extr&#234;me (&#8230;)&#034; id=&#034;nh3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt; pla&#231;ant l'extr&#234;me droite et l'extr&#234;me gauche en t&#234;te, est pr&#233;occupant pour notre d&#233;mocratie, mais aussi pour l'Union europ&#233;enne sachant que les valeurs humanistes et l'attachement &#224; la d&#233;mocratie lib&#233;rale de l'Union ne sont pas les valeurs des extr&#234;mes. Plus encore, les extr&#234;mes ne veulent pas d'une Europe forte dont nous avons tant besoin.&lt;/p&gt;
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt; est un syndicat qui place l'&#234;tre humain au centre de ses pr&#233;occupations, attach&#233; &#224; la protection des libert&#233;s de l'individu tout autant qu'au savoir &#171; vivre ensemble &#187;. Pour cela, on a rien trouv&#233; de mieux que la d&#233;mocratie lib&#233;rale qui d&#233;finit ses lois au travers de ses repr&#233;sentants ! Et ce savoir&#171; vivre ensemble &#187; il faut qu'il soit mondial, ce qui passe par des &#233;tapes, celui de la nation puis de l'Europe.&lt;/p&gt;
&lt;p&gt;Pour nous, l'entraide et la main tendue seront toujours plus int&#233;ressantes que le poing ferm&#233; de l'extr&#234;me gauche ou de l'extr&#234;me droite. Les extr&#234;mes sont la mort de la d&#233;mocratie car ils sont la mort du savoir &#171; vivre ensemble &#187;. Ce savoir &#171; vivre ensemble &#187; est tout &#224; la fois l'objectif et la m&#233;thode de la d&#233;mocratie lib&#233;rale. Et le paradoxe de la d&#233;mocratie, c'est qu'elle peut choisir de se donner la mort. On peut toujours choisir de ne pas aimer et de pr&#233;f&#233;rer ha&#239;r. &#171; I hope the russians love their children too &#187; chantait Sting.&lt;/p&gt;
&lt;p&gt;Nous vous appelons &#224; vous mobiliser pour les valeurs de la d&#233;mocratie pour les &#233;lections l&#233;gislatives organis&#233;es les dimanche 30 juin et dimanche 7 juillet 2024.&lt;/p&gt;
&lt;p&gt;En cas d'impossibilit&#233; de se d&#233;placer pour voter, vous pouvez demander &#224; un autre &#233;lecteur de voter &#224; sa place en r&#233;alisant une procuration. L'&#233;quipe du &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt;, dont vous connaissez les valeurs, est &#224; votre disposition pour vous trouver un coll&#232;gue de confiance si besoin.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Voir sur le site Vie Publique, le &lt;a href=&#034;https://www.vie-publique.fr/discours/294547-emmanuel-macron-09062024-dissolution-de-lassemblee-nationale&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;discours du Pr&#233;sident de la R&#233;publique du 6 juin 2024&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Nombreux sont ceux qui disent que 80% de nos lois nationales sont une application du droit europ&#233;en. Il n'en est rien et les scientifiques qui se sont pench&#233;s sur la question y voit plut&#244;t 20%. Voir en ce sens l'article de Vincent Lequeux sur le site Toute l'europe, intitul&#233; &lt;a href=&#034;https://www.touteleurope.eu/fonctionnement-de-l-ue/fact-checking-80-des-lois-francaises-viennent-elles-de-l-union-europeenne/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Fact-checking - 80 % des lois fran&#231;aises viennent-elles de l'Union europ&#233;enne ?&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3&#034; class=&#034;spip_note&#034; title=&#034;Notes 3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Voici les premi&#232;res listes retenues par les franciliens, pla&#231;ant l'extr&#234;me droite et l'extr&#234;me gauche en t&#234;te, ce qui est pr&#233;occupant pour notre d&#233;mocratie, mais aussi pour l'Union europ&#233;enne sachant que les valeurs humanistes de l'Union ne sont pas celles des extr&#234;mes. Voir en ce sens notre article, &lt;a href='https://www.syndicatlibre.org/spip.php?article599' class=&#034;spip_in&#034;&gt;Aux urnes, citoyennes et citoyens !&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4 premi&#232;res listes des candidatures en &#206;le-de-France et pourcentage exprim&#233;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; LA FRANCE REVIENT ! AVEC JORDAN BARDELLA ET MARINE LE PEN :18,79 %&lt;/li&gt;&lt;li&gt; LA FRANCE INSOUMISE - UNION POPULAIRE : 18,57 %&lt;/li&gt;&lt;li&gt; R&#201;VEILLER L'EUROPE : 15,78 %&lt;/li&gt;&lt;li&gt; BESOIN D'EUROPE :15,49 %
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Aux urnes &#128499;&#65039;, citoyennes et citoyens !</title>
		<link>https://www.syndicatlibre.org/spip.php?article599</link>
		<guid isPermaLink="true">https://www.syndicatlibre.org/spip.php?article599</guid>
		<dc:date>2024-05-20T05:58:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Libre, Vincent CALLIES</dc:creator>



		<description>
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt; a beaucoup aim&#233; que l'on reparle de Stephan Zweig lors des &#233;lections europ&#233;ennes. Comme Milan Kundera, il pense que l'on peut dire que l'on reconna&#238;t un europ&#233;en &#224; sa nostalgie de&#8230; l'Europe. C'est-&#224;-dire de l'id&#233;al europ&#233;en ! &lt;br class='autobr' /&gt;
Il y a un id&#233;al dans la d&#233;mocratie lib&#233;rale humaniste, port&#233; par les p&#232;res fondateurs de l'Union europ&#233;enne, dans laquelle s'inscrit le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt;. Il est mis &#224; mal actuellement tant par une partie de la jeunesse &#224; qui l'on ne semble pas &#234;tre parvenu &#224; faire (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.syndicatlibre.org/spip.php?rubrique99" rel="directory"&gt;Les id&#233;es&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div class='spip_document_716 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;158&#034; data-legende-lenx=&#034;xxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.syndicatlibre.org/local/cache-vignettes/L500xH482/paix03_680x656-2-f3988.jpg?1777779811' width='500' height='482' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre '&gt;&lt;strong&gt;Europe &amp; Paix
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif '&gt;Lily la fourmi portant un drapeau europ&#233;en et port&#233;e par la colombe de la paix. Cette derni&#232;re ayant entre ses pattes un rameau d'olivier.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt; a beaucoup aim&#233; que l'on reparle de Stephan Zweig lors des &#233;lections europ&#233;ennes. Comme Milan Kundera, il pense que l'on peut dire que l'on reconna&#238;t un europ&#233;en &#224; sa nostalgie de&#8230; l'Europe. C'est-&#224;-dire de l'id&#233;al europ&#233;en !&lt;/p&gt;
&lt;p&gt;Il y a un id&#233;al dans la d&#233;mocratie lib&#233;rale humaniste, port&#233; par les p&#232;res fondateurs de l'Union europ&#233;enne, dans laquelle s'inscrit le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt;. Il est mis &#224; mal actuellement tant par une partie de la jeunesse &#224; qui l'on ne semble pas &#234;tre parvenu &#224; faire comprendre d'o&#249; l'on vient, ce que l'on a construit et &#224; quel prix (contre la barbarie), que par une population que la d&#233;mocratie peine &#224; &#233;manciper et qui reste prisonni&#232;re de ses pulsions (et notamment de la haine et la jalousie).&lt;/p&gt;
&lt;p&gt;Il y a donc un sentiment de d&#233;r&#233;liction chez les d&#233;mocrates qui est un paradoxe car nous sommes encore - mais pour combien de temps ? - majoritaires. Zweig portait la m&#234;me nostalgie &#224; la veille de la seconde guerre mondiale. Dominique Bona, dans St&#233;phan Zweig. L'Ami bless&#233;, d&#233;crit cet auteur atypique : &#171; il ne veut ni du rouge ni du noir, ni d'aucun fascisme, qu'il soit de gauche ou de droite, d'aucun imp&#233;rialisme. Le juste milieu, l'harmonie et la douceur, valeurs en pleine d&#233;su&#233;tude, le font seuls marcher et tenir debout. &#187;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Zweig se voyait comme une sentinelle : &#171; [&#8230;] monde tragique ! De nouveau, le (&#8230;)&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Le r&#233;cent d&#233;bat o&#249; Marine Le Pen a affirm&#233; &#234;tre europ&#233;enne mais contre ses institutions rel&#232;ve d'une hypocrisie d&#233;magogique abyssale. Ce discours populiste fonctionne merveilleusement en permettant de s&#233;duire tout et son contraire en m&#234;me temps. L'esprit critique propre &#224; une d&#233;mocratie vivante &#233;tant devenu si faible qu'il ne voit plus le danger. C'est ainsi que, &#224; la veille de ce qui ressemble de plus en plus au pr&#233;misse d'une troisi&#232;me guerre mondiale, la France s'appr&#234;te - d'apr&#232;s les sondages - &#224; envoyer en premi&#232;re liste des d&#233;put&#233;s anti-europ&#233;ens d&#233;truisant nos id&#233;aux et facilitant notre annihilation. Pendant ce temps, les Etats Unis, voient un candidat &#224; la pr&#233;sidentiel, Donald Trump, affirmer vouloir, s'il est &#233;lu, &#234;tre un v&#233;ritable dictateur. C'&#233;tait des propos pour rire, pr&#233;cise-t-il.&lt;/p&gt;
&lt;p&gt;La mobilisation de tous les d&#233;mocrates est n&#233;cessaire ! En effet, le corps &#233;lectoral des extr&#233;mistes est mobilis&#233; ; c'est celui des d&#233;mocrates - encore majoritaires - qui ne se mobilise pas ! Rappelons que l'on vote pour des d&#233;put&#233;s qui vont cr&#233;er, voter, et mettre en &#339;uvre des politiques europ&#233;ennes. La personnalisation &#224; outrance autour des t&#234;tes de liste va de paire avec la perte de sens voulue par les discours populistes.&lt;/p&gt;
&lt;p&gt;Les d&#233;mocrates laissent les aberrations des minoritaires saboter la d&#233;mocratie. Or, une d&#233;mocratie doit se vivre ! Il faut la prendre au s&#233;rieux. Les d&#233;mocrates doivent se ressaisir et aller voter utile ! Et le vote utile est le vote pour ceux qui veulent une Union europ&#233;enne plus forte.&lt;/p&gt;
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt;, un syndicat europ&#233;en, vous appelle solennellement &#224; aller voter le dimanche 9 juin 2024. Aux urnes citoyennes et citoyens !&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Zweig se voyait comme une sentinelle : &#171; [&#8230;] monde tragique ! De nouveau, le sommeil d'autrefois recouvre la terre, mais encore agit&#233; par les r&#234;ves d&#233;sol&#233;s du jour sanglant. La respiration des peuples se fait inqui&#232;te, et lorsqu'en r&#234;vant ils se tournent et se retournent, les armes cliqu&#232;tent d&#233;j&#224; tra&#238;treusement. En vain la raison contemple-t-elle cette obscurit&#233; que ne parvient &#224; &#233;clairer nulle parole, ce sommeil sourd que nul cri d'avertissement ne peut faire sursauter et, impuissante, elle doit reconna&#238;tre qu'&#224; l'&#233;vidence, cette fuite dans l'oubli, cet &#233;ternel recul de l'humanit&#233; devant ses buts les plus purs rec&#232;lent un sens plus profond. Mais quand bien m&#234;me ce destin f&#251;t-il promis &#224; l'humanit&#233; de toujours retomber dans la folie de la d&#233;sunion, les sentinelles continuent d'avoir pour mission &#233;ternelle d'alerter et de faire obstacle &#224; l'in&#233;vitable. Toute exp&#233;rience est vaine dans la mesure o&#249; elle est &#233;ph&#233;m&#232;re et se perd de nouveau, toute v&#233;rit&#233; est inutile si l'on recommence &#224; l'oublier. Et c'est pourquoi le sens de la vie de toute sentinelle doit &#234;tre de conserver en elle la v&#233;rit&#233; un jour clairement aper&#231;ue et de se souvenir sans cesse de cette constellation au-dessus de nos t&#234;tes, pour &#234;tre pr&#233;par&#233;e au moment, rare et sacr&#233;, de son retour. &#187; extrait d'un essai de 1919, in&#233;dit du vivant de Zweig, et publi&#233; en 1960. Traduction David Sanson. Voir page 72 de Stefan Zweig, M&#233;lancolie de l'Europe, &#233;dition Feux crois&#233;s - Plon.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les lignes de commande - Le&#231;on 5 - rendre effective l'utilisation de la pile LAMP</title>
		<link>https://www.syndicatlibre.org/spip.php?article580</link>
		<guid isPermaLink="true">https://www.syndicatlibre.org/spip.php?article580</guid>
		<dc:date>2023-10-01T19:55:04Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent CALLIES</dc:creator>



		<description>
&lt;p&gt;Vous l'aurez remarqu&#233;, nous utilisons parfois la commande sudo. Il est plus s&#251;r d'utiliser la commande sudo dans Terminal que d'activer l'utilisateur root. L'utilisateur root peut tout faire. sudo permet &#224; un utilisateur ordinaire de demander l'autorisation de faire une chose interdite. Pour en savoir plus sur sudo, ouvrez l'application Terminal et saisissez man sudo. &lt;br class='autobr' /&gt;
Pour en savoir plus sur l'utilisateur root : https://support.apple.com/fr-fr/HT204012 &lt;br class='autobr' /&gt;
Le r&#233;pertoire o&#249; se trouve le site (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.syndicatlibre.org/spip.php?rubrique120" rel="directory"&gt;Les lignes de commande sous macOS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-25&#034; id=&#034;nav6a150e54c637d8.48853970&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-Permettre-a-Apache-de-gerer-les-utilisateurs&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-Permettre-a-Apache-de-gerer-les-utilisateurs&#034; class=&#034;spip_ancre&#034;&gt;1. Permettre &#224; Apache de g&#233;rer les utilisateurs&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-1-Modifier-la-configuration-principale-du-serveur-web-Apache&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-1-Modifier-la-configuration-principale-du-serveur-web-Apache&#034; class=&#034;spip_ancre&#034;&gt;1.1 Modifier la configuration principale du serveur web Apache&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-a-avec-le-serveur-natif&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#a-avec-le-serveur-natif&#034; class=&#034;spip_ancre&#034;&gt;a) avec le serveur natif&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-b-avec-le-serveur-supplementaire&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#b-avec-le-serveur-supplementaire&#034; class=&#034;spip_ancre&#034;&gt;b) avec le serveur suppl&#233;mentaire&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t1-2-Modifier-la-configuration-des-utilisateurs&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-2-Modifier-la-configuration-des-utilisateurs&#034; class=&#034;spip_ancre&#034;&gt;1.2 Modifier la configuration des utilisateurs&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-a-avec-le-serveur-natif-1259&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#a-avec-le-serveur-natif-1259&#034; class=&#034;spip_ancre&#034;&gt;a) avec le serveur natif :&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-b-avec-le-serveur-secondaire&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#b-avec-le-serveur-secondaire&#034; class=&#034;spip_ancre&#034;&gt;b) avec le serveur secondaire&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t1-3-Creer-ma-configuration-en-tant-qu-utilisateur&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-3-Creer-ma-configuration-en-tant-qu-utilisateur&#034; class=&#034;spip_ancre&#034;&gt;1.3 Cr&#233;er ma configuration en tant qu'utilisateur&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-a-avec-le-serveur-natif-2&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#a-avec-le-serveur-natif-2&#034; class=&#034;spip_ancre&#034;&gt;a) avec le serveur natif :&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-b-avec-le-serveur-secondaire-b798&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#b-avec-le-serveur-secondaire-b798&#034; class=&#034;spip_ancre&#034;&gt;b) avec le serveur secondaire&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-Utilisation-de-votre-site-utilisateur&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-Utilisation-de-votre-site-utilisateur&#034; class=&#034;spip_ancre&#034;&gt;2. Utilisation de votre site utilisateur&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-a-avec-le-serveur-natif-3&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#a-avec-le-serveur-natif-3&#034; class=&#034;spip_ancre&#034;&gt;a) avec le serveur natif :&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-b-avec-le-serveur-secondaire-2&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#b-avec-le-serveur-secondaire-2&#034; class=&#034;spip_ancre&#034;&gt;b) avec le serveur secondaire&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-1-Les-droits-des-repertoires-et-des-fichiers&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-1-Les-droits-des-repertoires-et-des-fichiers&#034; class=&#034;spip_ancre&#034;&gt;2.1 Les droits des r&#233;pertoires et des fichiers&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-2-L-index-et-les-negociations-de-language&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-2-L-index-et-les-negociations-de-language&#034; class=&#034;spip_ancre&#034;&gt;2.2 L'index et les n&#233;gociations de language&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-a-avec-le-serveur-natif-4&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#a-avec-le-serveur-natif-4&#034; class=&#034;spip_ancre&#034;&gt;a) avec le serveur natif :&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-b-avec-le-serveur-secondaire-3&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#b-avec-le-serveur-secondaire-3&#034; class=&#034;spip_ancre&#034;&gt;b) avec le serveur secondaire&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-3-L-index-en-PHP&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-3-L-index-en-PHP&#034; class=&#034;spip_ancre&#034;&gt;2.3 L'index en PHP&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-a-avec-le-serveur-natif-5&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#a-avec-le-serveur-natif-5&#034; class=&#034;spip_ancre&#034;&gt;a) avec le serveur natif :&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-b-avec-le-serveur-secondaire-ab0c&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#b-avec-le-serveur-secondaire-ab0c&#034; class=&#034;spip_ancre&#034;&gt;b) avec le serveur secondaire :&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-Travailler-en-PHP&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-Travailler-en-PHP&#034; class=&#034;spip_ancre&#034;&gt;3 Travailler en PHP&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t3-1-Travailler-en-mode-local-en-php&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-1-Travailler-en-mode-local-en-php&#034; class=&#034;spip_ancre&#034;&gt;3.1 Travailler en mode local en php&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-2-Desactive-jit&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-2-Desactive-jit&#034; class=&#034;spip_ancre&#034;&gt;3.2 D&#233;sactiv&#233; jit&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-3-Permettre-l-affichage-de-toutes-les-erreurs&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-3-Permettre-l-affichage-de-toutes-les-erreurs&#034; class=&#034;spip_ancre&#034;&gt;3.3 Permettre l'affichage de toutes les erreurs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Conclusion&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Conclusion&#034; class=&#034;spip_ancre&#034;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Vous l'aurez remarqu&#233;, nous utilisons parfois la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo&lt;/code&gt;. Il est plus s&#251;r d'utiliser la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo&lt;/code&gt; dans &lt;strong&gt;Terminal&lt;/strong&gt; que d'activer l'utilisateur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;root&lt;/code&gt;. L'utilisateur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;root&lt;/code&gt; peut tout faire. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo&lt;/code&gt; permet &#224; un utilisateur ordinaire de demander l'autorisation de faire une chose interdite. Pour en savoir plus sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo&lt;/code&gt;, ouvrez l'application Terminal et saisissez &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;man sudo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour en savoir plus sur l'utilisateur root :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://support.apple.com/fr-fr/HT204012&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://support.apple.com/fr-fr/HT204012&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le r&#233;pertoire o&#249; se trouve le site du serveur http Apache que nous avons lanc&#233; lors de la pr&#233;c&#233;dent le&#231;on se trouve parmi les fichiers system qui sont prot&#233;g&#233;s. Ils sont situ&#233;s dans une arborescence au dessus du r&#233;pertoire de l'utilisateur. Il serait int&#233;ressant de permettre la cr&#233;ation de zones d&#233;di&#233;e pour les utilisateurs.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t1-Permettre-a-Apache-de-gerer-les-utilisateurs'&gt;1. Permettre &#224; Apache de g&#233;rer les utilisateurs&lt;a class='sommaire-back sommaire-back-25' href='#s-t1-Permettre-a-Apache-de-gerer-les-utilisateurs' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034; id='t1-1-Modifier-la-configuration-principale-du-serveur-web-Apache'&gt; 1.1 Modifier la configuration principale du serveur web Apache&lt;a class='sommaire-back sommaire-back-25' href='#s-t1-1-Modifier-la-configuration-principale-du-serveur-web-Apache' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 class=&#034;h4&#034; id='a-avec-le-serveur-natif'&gt; a) avec le serveur natif&lt;a class='sommaire-back sommaire-back-25' href='#s-a-avec-le-serveur-natif' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Avant de proc&#233;der &#224; une modification de la configuration, il est prudent d'en faire une copie&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo cp -i /etc/apache2/httpd.conf /etc/apache2/httpd.conf.bak&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous pouvez ensuite &lt;strong&gt;modifier&lt;/strong&gt; la configuration principale du serveur web Apache avec la commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim /etc/apache2/httpd.conf&lt;/code&gt;&lt;br class='autobr' /&gt;
o&#249; l'on retrouve les lignes ci-dessous et on les d&#233;commente si n&#233;cessaire. Pour d&#233;commenter une ligne, il faut retirer le caract&#232;re di&#232;se (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#&lt;/code&gt;) &#224; son d&#233;but.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;LoadModule userdir_module libexec/apache2/mod_userdir.so LoadModule include_module libexec/apache2/mod_include.so LoadModule rewrite_module libexec/apache2/mod_rewrite.so Include /private/etc/apache2/extra/httpd-userdir.conf &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Une petite astuce sous &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim&lt;/code&gt; :&lt;br class='autobr' /&gt;
Pour rechercher une cha&#238;ne de caract&#232;res, tapez / suivi de la cha&#238;ne recherch&#233;e et appuyez sur Return. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim&lt;/code&gt; positionne le curseur sur la premi&#232;re occurrence de la cha&#238;ne trouv&#233;e. Par exemple taper &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/userdir_module&lt;/code&gt; vous permettra de retrouver l'appel au module et de retirer le commentaire (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#&lt;/code&gt;) le pr&#233;c&#233;dent et le rendant inactif.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h4 class=&#034;h4&#034; id='b-avec-le-serveur-supplementaire'&gt; b) avec le serveur suppl&#233;mentaire&lt;a class='sommaire-back sommaire-back-25' href='#s-b-avec-le-serveur-supplementaire' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Si vous utiliser un serveur suppl&#233;mentaire install&#233; par Brew (voir la le&#231;on 4), v&#233;rifier que cette installation est convenablement faite avec la commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew info httpd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;L'&#233;dition du fichier de configuration n'a pas le m&#234;me acc&#232;s :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim /opt/homebrew/etc/httpd/httpd.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Les modules ne sont pas plac&#233;s aux m&#234;me endroits :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;LoadModule userdir_module lib/httpd/modules/mod_userdir.so LoadModule include_module lib/httpd/modules/mod_include.so LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so # User home directories Include /opt/homebrew/etc/httpd/extra/httpd-userdir.conf &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 class=&#034;h3&#034; id='t1-2-Modifier-la-configuration-des-utilisateurs'&gt; 1.2 Modifier la configuration des utilisateurs&lt;a class='sommaire-back sommaire-back-25' href='#s-t1-2-Modifier-la-configuration-des-utilisateurs' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 class=&#034;h4&#034; id='a-avec-le-serveur-natif-1259'&gt; a) avec le serveur natif :&lt;a class='sommaire-back sommaire-back-25' href='#s-a-avec-le-serveur-natif-1259' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Il faut &lt;strong&gt;modifier&lt;/strong&gt; le script ci-dessus appel&#233; par un include avec la commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim /etc/apache2/extra/httpd-userdir.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous y verrez une ligne de commentaire qui indique :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;# Required module: mod_authz_core, mod_authz_host, mod_userdir&lt;/code&gt;&lt;br class='autobr' /&gt;
C'est cette v&#233;rification que nous avons faite dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;httpd.conf&lt;/code&gt; ci-dessus.&lt;br class='autobr' /&gt;
Vous y verrez une ligne indiquant&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;UserDir Sites&lt;/code&gt;&lt;br class='autobr' /&gt;
Cela signifie que c'est le r&#233;pertoire Sites, dans le dossier de l'utilisateur, qui permet d'accueillir les requ&#234;tes du serveur http. Le chemin sera : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/Users/username/Sites/&lt;/code&gt;&lt;br class='autobr' /&gt;
Vous devez &lt;i&gt;ajouter&lt;/i&gt; ou &lt;i&gt;d&#233;commenter&lt;/i&gt; dans le pr&#233;sent fichier la ligne suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Include /private/etc/apache2/users/*.conf&lt;/code&gt;&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='b-avec-le-serveur-secondaire'&gt; b) avec le serveur secondaire&lt;a class='sommaire-back sommaire-back-25' href='#s-b-avec-le-serveur-secondaire' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Si vous &#234;tes avec un second serveur install&#233;, &#233;diter le fichier suivant :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim /opt/homebrew/etc/httpd/extra/httpd-userdir.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous y verrez une ligne indiquant&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;UserDir public_html&lt;/code&gt;&lt;br class='autobr' /&gt;
Cela signifie que c'est le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;public_html&lt;/code&gt;, dans le dossier de l'utilisateur, qui permet d'accueillir les requ&#234;tes du serveur http. Le chemin sera : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/Users/username/public_html/&lt;/code&gt;&lt;br class='autobr' /&gt;
Vous devez &lt;i&gt;ajouter&lt;/i&gt; ou &lt;i&gt;d&#233;commenter&lt;/i&gt; dans le pr&#233;sent fichier la ligne suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Include /opt/homebrew/etc/httpd/users/*.conf&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t1-3-Creer-ma-configuration-en-tant-qu-utilisateur'&gt; 1.3 Cr&#233;er ma configuration en tant qu'utilisateur&lt;a class='sommaire-back sommaire-back-25' href='#s-t1-3-Creer-ma-configuration-en-tant-qu-utilisateur' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 class=&#034;h4&#034; id='a-avec-le-serveur-natif-2'&gt; a) avec le serveur natif :&lt;a class='sommaire-back sommaire-back-25' href='#s-a-avec-le-serveur-natif-2' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Enfin, apr&#232;s s'&#234;tre plac&#233; dans le r&#233;pertoire racine, il convient de &lt;strong&gt;cr&#233;er&lt;/strong&gt; le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;username.conf&lt;/code&gt; (ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;username&lt;/code&gt; sera votre nom d'&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;user)&lt;/code&gt; avec la commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim /etc/apache2/users/username.conf&lt;/code&gt; par exemple &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim /etc/apache2/users/vincent.conf&lt;/code&gt; &lt;br class='autobr' /&gt;
Vous devez saisir ces lignes (ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;username&lt;/code&gt; sera votre nom d'&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;user)&lt;/code&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;Directory &#034;/Users/username/Sites/&#034;&gt; AllowOverride All Options Indexes MultiViews FollowSymLinks Require all granted &lt;/Directory&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ces op&#233;rations faites, lan&#231;ons le serveur Web&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo apachectl start&lt;/code&gt;&lt;br class='autobr' /&gt;
et v&#233;rifions les modules install&#233;s avec l'instruction :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apachectl -t -D DUMP_MODULES&lt;/code&gt;&lt;br class='autobr' /&gt;
Doivent apparaitre :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;userdir_module (shared) include_module (shared) rewrite_module (shared) &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Tester l'acc&#232;s depuis Safari :&lt;br class='autobr' /&gt;
au site global&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://localhost&lt;/code&gt;&lt;br class='autobr' /&gt;
puis au site de l'user (vous)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://localhost/~vincent/&lt;/code&gt;&lt;br class='autobr' /&gt;
o&#249; vincent est le nom de l'utilisateur.&lt;/p&gt;
&lt;p&gt;Si vous avez un probl&#232;me impr&#233;vu de configuration, vous pouvez lancer un test sur cette configuration qui pourra vous dire o&#249; est l'erreur avec la commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo apachectl configtest&lt;/code&gt;&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='b-avec-le-serveur-secondaire-b798'&gt; b) avec le serveur secondaire&lt;a class='sommaire-back sommaire-back-25' href='#s-b-avec-le-serveur-secondaire-b798' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Cr&#233;ons un r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;users&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mkdir /opt/homebrew/etc/httpd/users/&lt;/code&gt;&lt;br class='autobr' /&gt;
V&#233;rifions sa bonne cr&#233;ation et ses droits :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd /opt/homebrew/etc/httpd&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls -la&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Cr&#233;ons le fichier de configuration en tant qu'utilisateur (o&#249; vincent est le nom de l'utilisateur.)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim /opt/homebrew/etc/httpd/users/vincent.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous devez saisir ces lignes (ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vincent&lt;/code&gt; sera votre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;username)&lt;/code&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;Directory &#034;/Users/vincent/public_html/&#034;&gt; AllowOverride All Options Indexes MultiViews FollowSymLinks Require all granted &lt;/Directory&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Relancer le serveur&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew services start httpd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Tester l'acc&#232;s en ligne de commande :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le site global&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;curl http://localhost:8080&lt;/code&gt;&lt;/li&gt;&lt;li&gt; puis au site de l'user (vous)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;curl http://localhost:8080/~vincent/&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034; id='t2-Utilisation-de-votre-site-utilisateur'&gt;2. Utilisation de votre site utilisateur&lt;a class='sommaire-back sommaire-back-25' href='#s-t2-Utilisation-de-votre-site-utilisateur' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h4 class=&#034;h4&#034; id='a-avec-le-serveur-natif-3'&gt; a) avec le serveur natif :&lt;a class='sommaire-back sommaire-back-25' href='#s-a-avec-le-serveur-natif-3' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;L'utilisateur &#224; maintenant son site &#224; g&#233;rer dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sites&lt;/code&gt; (situ&#233; &#224; la racine de son r&#233;pertoire d'utilisateur).&lt;/p&gt;
&lt;p&gt;Si vous rencontrer des erreurs, il peut &#234;tre utile d'aller consulter le journal des erreurs d'Apache. Vous pouvez le faire avec la commande ci-dessous :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cat /var/log/apache2/error_log&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Une erreur sera r&#233;dig&#233;e de la fa&#231;on suivante dans le log :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;[Sat Sep 30 18:39:56.671447 2023] [core:crit] [pid 71538] (13)Permission denied : [client ::1:52090] AH00529 : /Users/vincent/Sites/.htaccess pcfg_openfile : unable to check htaccess file, ensure it is readable and that '/Users/vincent/Sites/' is executable&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;M&#234;me si vous ne rencontrez pas &lt;a href=&#034;https://cwiki.apache.org/confluence/display/HTTPD/PcfgOpenfile&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;l'erreur ci-dessus&lt;/a&gt;, les commandes que nous allons faire pour corriger le probl&#232;me peuvent vous int&#233;resser.&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='b-avec-le-serveur-secondaire-2'&gt; b) avec le serveur secondaire&lt;a class='sommaire-back sommaire-back-25' href='#s-b-avec-le-serveur-secondaire-2' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Le journal des erreurs du serveur, dont le nom et la localisation sont d&#233;finis par la directive &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ErrorLog&lt;/code&gt; , est sans doute &lt;a href=&#034;https://httpd.apache.org/docs/2.4/fr/mod/core.html#errorlog&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;le journal le plus important&lt;/a&gt; tant votre pratique vous am&#232;nera &#224; le consulter pour identifier ce qui ne fonctionne pas. Pour savoir comment est d&#233;finie votre directive, il vous suffit d'&#233;diter le ficher de configuration de votre serveur Web et de retrouver la directive. Pour ce faire vous pouvez utiliser les lignes de commande suivantes :&lt;br class='autobr' /&gt;
Editer le ficher de configuration depuis son r&#233;pertoire&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim httpd.conf&lt;/code&gt;&lt;br class='autobr' /&gt;
rechercher la directive avec les commandes propre &#224; vim :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/ErrorLog&lt;/code&gt;&lt;br class='autobr' /&gt;
Vous trouverez un r&#233;sultat de ce type :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ErrorLog &#034;/opt/homebrew/var/log/httpd/error_log&#034;&lt;/code&gt;&lt;br class='autobr' /&gt;
Il ne vous restera plus qu'&#224; le lire&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim /opt/homebrew/var/log/httpd/error_log&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-1-Les-droits-des-repertoires-et-des-fichiers'&gt; 2.1 Les droits des r&#233;pertoires et des fichiers&lt;a class='sommaire-back sommaire-back-25' href='#s-t2-1-Les-droits-des-repertoires-et-des-fichiers' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Il y a, tout d'abord, les droits sur les fichiers et r&#233;pertoires. la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls&lt;/code&gt; suivie de l'argument &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-l&lt;/code&gt; permet de connaitre ces droits.&lt;br class='autobr' /&gt;
Placez vous dans le r&#233;pertoire de l'utilisateur :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd ~&lt;/code&gt;&lt;br class='autobr' /&gt;
Regardez les droits du r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sites&lt;/code&gt; et de ce qu'il contient :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls -l -a Sites&lt;/code&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Le r&#233;pertoire Sites, repr&#233;sent&#233; par un point (&#171; . &#187;) est indiqu&#233; avec les droits &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;drwx------&lt;/code&gt;. &lt;br class='manualbr' /&gt;La premi&#232;re lettre, la lettre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;d&lt;/code&gt;, signifie qu'il s'agit d'un r&#233;pertoire (&lt;i&gt;&#171; a &lt;strong&gt;d&lt;/strong&gt;irectory &#187;&lt;/i&gt; en anglais). _ Les autres lettres doivent se lire en s&#233;rie, trois lettres pour l'utilisateur (ou &#171; &lt;i&gt;user&lt;/i&gt; &#187; en anglais), trois lettres pour le groupe (ou &#171; &lt;i&gt;group&lt;/i&gt; &#187; en anglais), trois lettres pour les autres (ou &#171; &lt;i&gt;others&lt;/i&gt; &#187; en anglais). &lt;br class='manualbr' /&gt;Autrement dit, l'utilisateur pour le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sites&lt;/code&gt;, se voit attribuer trois lettres &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rwx&lt;/code&gt;. le r signifie un droit en lecture (pour &#171; &lt;i&gt;r&lt;/i&gt;ead&lt;/i&gt; &#187; en anglais), le w signifie &#233;crire (&#171; &lt;i&gt;w&lt;/i&gt;rite&lt;/i&gt; &#187; en anglais), le x est pour e&lt;strong&gt;x&lt;/strong&gt;&#233;cuter (&#171; &lt;i&gt;execute&lt;/i&gt; &#187; en anglais).&lt;br class='manualbr' /&gt;le groupe ou les autres n'ont aucun droit ce qui se traduit par un tiret (&#171; - &#187;).&lt;/li&gt;&lt;li&gt; le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html.en&lt;/code&gt; est indiqu&#233; avec les droits -rwxr-xr-x, codification que vous pouvez maintenant interpr&#233;t&#233;e, sachant que le premier tiret &#171; - &#187; indique simplement qu'il s'agit d'un fichier.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;L'examen de ces droits permet d'identifier que le r&#233;pertoire Sites n'a pas &#233;t&#233; cr&#233;&#233; avec des droits suffisants. Pour lui donner, pour les trois groupes, les droits maximaux, il est possible de saisir cette commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod +rwx Sites&lt;/code&gt;&lt;br class='autobr' /&gt;
Reste que ce serait excessif. Les droits n&#233;cessaires sont les suivants &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod 705 Sites&lt;/code&gt;&lt;br class='autobr' /&gt;
Nous utilisons ici des chiffres et non des lettres, ce qui est une autre convention, facile &#224; retenir une fois que l'on sait qu'il s'agit du chiffre &#224; s&#233;parer en trois, pour les trois groupes, et chaque groupe est la simple addition de permission ainsi r&#233;parties : la lecture = 4, l'&#233;criture = 2, l'ex&#233;cution = 1.&lt;br class='autobr' /&gt;
Il reste aussi &#224; optimiser les droits du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html.en&lt;/code&gt; qui n'a pas besoin de droit de groupe.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod 705 index.html.en&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On peut se demander ce qu'est ce fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html&lt;/code&gt; auquel un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.en&lt;/code&gt; a &#233;t&#233; ajout&#233;.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-2-L-index-et-les-negociations-de-language'&gt; 2.2 L'index et les n&#233;gociations de language&lt;a class='sommaire-back sommaire-back-25' href='#s-t2-2-L-index-et-les-negociations-de-language' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Le jargon Apache parle de &#171; &lt;a href=&#034;https://httpd.apache.org/docs/2.4/content-negotiation.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;N&#233;gociation de language&lt;/a&gt; &#187;. Le serveur Web http permet la gestion d'une extension li&#233;e au langage. Lorsque, pr&#233;c&#233;demment dans cet article, vous avez d&#233;fini &lt;a href=&#034;#t1-3-Creer-ma-configuration-en-tant-qu-utilisateur&#034; class=&#034;spip_ancre&#034;&gt;votre configuration en tant qu'utilisateur&lt;/a&gt;, vous avez introduit le mot cl&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;MultiViews&lt;/code&gt; qui demande cette fonctionnalit&#233;.&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='a-avec-le-serveur-natif-4'&gt; a) avec le serveur natif :&lt;a class='sommaire-back sommaire-back-25' href='#s-a-avec-le-serveur-natif-4' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;R&#233;&#233;diter le fichier de configuration de l'utilisateur :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim /etc/apache2/users/username.conf&lt;/code&gt; (par exemple &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim /etc/apache2/users/vincent.conf&lt;/code&gt;) et modifiez le enti&#232;rement ainsi :&lt;br class='autobr' /&gt;
Vous devez saisir ces lignes (ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;username&lt;/code&gt; sera votre nom d'&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;user)&lt;/code&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;Directory &#034;/Users/username/Sites/&#034;&gt; AllowOverride none Options -MultiViews Require all granted &lt;/Directory&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Comme on n'utilise pas de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.htaccess&lt;/code&gt; on peut enti&#232;rement d&#233;sactiv&#233;e ce recours en d&#233;finissant la directive &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;AllowOverride&lt;/code&gt; &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;none&lt;/code&gt;&lt;br class='autobr' /&gt;
Nous avons supprim&#233; l'usage de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;MultiViews&lt;/code&gt;&lt;br class='autobr' /&gt;
Nous avons rappel&#233; que l'index serait soit &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html&lt;/code&gt; soit &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.php&lt;/code&gt;&lt;br class='autobr' /&gt;
Nous avons autoris&#233; les acc&#232;s.&lt;/p&gt;
&lt;p&gt;Renommez &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html.en&lt;/code&gt; en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html&lt;/code&gt;seulement :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mv index.html.en index.html&lt;/code&gt;&lt;br class='autobr' /&gt;
Puis tester le site de l'utilisateur&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://localhost/~vincent/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Et si nous parlions de cet &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.php&lt;/code&gt; ?&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='b-avec-le-serveur-secondaire-3'&gt; b) avec le serveur secondaire&lt;a class='sommaire-back sommaire-back-25' href='#s-b-avec-le-serveur-secondaire-3' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Editions le fichier de configuration de l'utilisateur (ici vincent)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim /opt/homebrew/etc/httpd/users/vincent.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Saisissez les lignes suivantes&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;Directory &#034;/Users/vincent/public_html/&#034;&gt; AllowOverride All Options -MultiViews Require all granted &lt;/Directory&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Relancer le serveur &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew services start httpd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;V&#233;rifions si l'appel de l'URI est possible :&lt;br class='autobr' /&gt;
curl &lt;a href=&#034;http://localhost:8080/~vincent&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://localhost:8080/~vincent&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dans la n&#233;gative, v&#233;rifions que le r&#233;pertoire public_html existe bien.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd ~&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls -la&lt;/code&gt;&lt;br class='autobr' /&gt;
Si le r&#233;pertoire n'existe pas, cr&#233;ons le :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mkdir public_html&lt;/code&gt;&lt;br class='autobr' /&gt;
Cr&#233;ons ensuite un fichier index.html dans le dossier&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim public_html/index.html&lt;/code&gt;&lt;br class='autobr' /&gt;
Nous y &#233;crirons le code HTML suivant :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;html&gt;&lt;head&gt; &lt;title&gt;Le&#231;on 5 du SYNPER&lt;/title&gt; &lt;/head&gt;&lt;body&gt; &lt;h1&gt;C'est fou !&lt;/h1&gt; &lt;p&gt;J'aime apprendre.&lt;/p&gt; &lt;/body&gt;&lt;/html&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 class=&#034;h3&#034; id='t2-3-L-index-en-PHP'&gt; 2.3 L'index en PHP&lt;a class='sommaire-back sommaire-back-25' href='#s-t2-3-L-index-en-PHP' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Apr&#232;s s'&#234;tre plac&#233; dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sites&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;public_html&lt;/code&gt;, cr&#233;ons un index en php :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim index.php&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ecrivez :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;?php echo 'Ceci est mon texte envoy&#233; en Php !'; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;renommons index.html pour le rendre inutilisable :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mv index.html index.html.bak&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Puis testons le site de l'utilisateur&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://localhost/~vincent/&lt;/code&gt;&lt;br class='autobr' /&gt;
ou&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://localhost:8080/~vincent/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nous aurons une erreur &lt;i&gt;403 Forbidden&lt;/i&gt;. En effet, ne trouvant pas le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html&lt;/code&gt;, le serveur ne va pas chercher le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.php&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ajoutons une ligne &#224; notre fichier de configuration d'utilisateur pour lui dire, si l'index.html n'est pas l&#224;, d'utiliser l'index.php.&lt;br class='autobr' /&gt;
Pour le serveur Apache int&#233;grer, &#233;diter le fichier ainsi :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim /etc/apache2/users/vincent.conf&lt;/code&gt;&lt;br class='autobr' /&gt;
Pour le serveur secondaire, utiliser la ligne de commande&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim /opt/homebrew/etc/httpd/users/vincent.conf&lt;/code&gt;&lt;br class='autobr' /&gt;
(o&#249; vincent est le nom d'utilisateur).&lt;br class='autobr' /&gt;
ajoutons la ligne suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;DirectoryIndex index.html index.php&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Relan&#231;ons le serveur Apache, s'il s'agit du serveur natif par :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo apachectl -k restart&lt;/code&gt;&lt;br class='autobr' /&gt;
s'il s'agit du serveur secondaire :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew services start httpd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le script PHP va s'afficher mais ne sera pas interpr&#233;t&#233;. En effet, ne trouvant pas le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html&lt;/code&gt;, le serveur va bien chercher le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.php&lt;/code&gt; mais ne l'interpr&#232;te pas. Il faut configurer le serveur pour qu'il puisse servir des pages PHP.&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='a-avec-le-serveur-natif-5'&gt; a) avec le serveur natif :&lt;a class='sommaire-back sommaire-back-25' href='#s-a-avec-le-serveur-natif-5' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Le fichier de configuration d'Apache sous macOS pr&#233;cise, dans ses commentaires, que le PHP &#233;tait obsol&#232;te dans macOS 11 et supprim&#233; de macOS 12. Nous n'allons donc pas pouvoir r&#233;activer le module php. Il faudra aller le rechercher dans l'installation que nous avons faite lors de l'installation de Composer (voir la le&#231;on 4). Vous retrouverez l'installation faite par Homebrew par la ligne de commande suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd $HOMEBREW_REPOSITORY/Cellar/php/&lt;/code&gt;&lt;br class='autobr' /&gt;
Le module a appel&#233; par Apache sera dans :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd $HOMEBREW_REPOSITORY/opt/homebrew/opt/php/lib/httpd/modules/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nous ouvrons le fichier de configuration d'Apache&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim /etc/apache2/httpd.conf&lt;/code&gt;&lt;br class='autobr' /&gt;
Vous verrez sans doute un commentaire dans le fichier de configuration Apache :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PHP was deprecated in macOS 11 and removed from macOS 12&lt;/code&gt;&lt;br class='autobr' /&gt;
Ce qui signifie que l'Apache d'Apple n'utilise pas le php.&lt;br class='autobr' /&gt;
Nous ajoutons la ligne suivant pour appeler le module php :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Puis nous pr&#233;cisons que si le module est charg&#233;, il faut utiliser le PHP pour les fichiers qui utilise l'extension ad&#233;quate :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;IfModule php_module&gt; &lt;FilesMatch .php$&gt; SetHandler application/x-httpd-php &lt;/FilesMatch&gt; &lt;/IfModule&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Mais le simple ajout de ce module ne suffit pas. Cela va g&#233;n&#233;rer une erreur que vous pourrez retrouver dans :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo apachectl configtest&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;[Sun Oct 01 19:48:55.864782 2023] [so:error] [pid 76530] AH06665 : No code signing authority for module at /opt/homebrew/opt/php/lib/httpd/modules/libphp.so specified in LoadModule directive.&lt;br class='autobr' /&gt;
httpd : Syntax error on line 72 of /private/etc/apache2/httpd.conf : Code signing absent - not loading module at : /opt/homebrew/opt/php/lib/httpd/modules/libphp.so&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il s'agit d'une pr&#233;caution pour assurer la s&#233;curit&#233; de votre serveur : des modules ne peuvent &#234;tre ajout&#233; que s'ils sont sign&#233;s. Il vous faut donc ouvrir votre &lt;i&gt;Trousseau d'acc&#232;s&lt;/i&gt;, et depuis le menu, &lt;i&gt;Assistant de configuration&lt;/i&gt; | &lt;i&gt;Cr&#233;er une autorit&#233; de certificat&lt;/i&gt; et choisir dans les options, &lt;i&gt;Signature de code&lt;/i&gt;. Une proc&#233;dure est &lt;a href=&#034;https://www.simplified.guide/macos/apache-php-homebrew-codesign&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ici&lt;/a&gt; d&#233;taill&#233;e en anglais. vous devrez mettre entre guillemet &#224; la fin de la ligne, le titre de ce certificat.&lt;/p&gt;
&lt;p&gt;En relan&#231;ant le serveur Apache :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo apachectl -k restart&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Un message de confirmation devrait appara&#238;tre :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;[Sun Oct 01 21:43:31.910876 2023] [so:notice] [pid 78282] AH06662 : Allowing module loading process to continue for module at /opt/homebrew/opt/php/lib/httpd/modules/libphp.so because module signature matches authority &#034;AC de vincent&#034; specified in LoadModule directive&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Le fichier Php est maintenant interpr&#233;t&#233; !&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='b-avec-le-serveur-secondaire-ab0c'&gt; b) avec le serveur secondaire :&lt;a class='sommaire-back sommaire-back-25' href='#s-b-avec-le-serveur-secondaire-ab0c' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Nous ajoutons la ligne suivant pour appeler le module php :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so&lt;/code&gt;&lt;br class='autobr' /&gt;
Puis nous pr&#233;cisons que si le module est charg&#233;, il faut utiliser le PHP pour les fichiers qui utilise l'extension ad&#233;quate :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;IfModule php_module&gt; &lt;FilesMatch .php$&gt; SetHandler application/x-httpd-php &lt;/FilesMatch&gt; &lt;/IfModule&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En relan&#231;ant le serveur Apache :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew services restart httpd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour connaitre l'installation php faite, n'h&#233;sitez pas &#224; solliciter Homebrew par la ligne de commande ci-apr&#232;s :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew info php&lt;/code&gt;&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t3-Travailler-en-PHP'&gt; 3 Travailler en PHP&lt;a class='sommaire-back sommaire-back-25' href='#s-t3-Travailler-en-PHP' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034; id='t3-1-Travailler-en-mode-local-en-php'&gt; 3.1 Travailler en mode local en php&lt;a class='sommaire-back sommaire-back-25' href='#s-t3-1-Travailler-en-mode-local-en-php' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Pour connaitre le lieu ou est votre fichier de configuration, passez la commande suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;php -r &#034;phpinfo();&#034; | grep php.ini&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;editer le fichier dont le chemin vous est donn&#233;, par exemple :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim /opt/homebrew/etc/php/8.2/php.ini&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t3-2-Desactive-jit'&gt; 3.2 D&#233;sactiv&#233; jit&lt;a class='sommaire-back sommaire-back-25' href='#s-t3-2-Desactive-jit' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Faire une recherche de la section concernant le module pcre :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/pcre&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;d&#233;commenter la ligne et donner la valeur z&#233;ro &#224; &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pcre.jit=0&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t3-3-Permettre-l-affichage-de-toutes-les-erreurs'&gt; 3.3 Permettre l'affichage de toutes les erreurs&lt;a class='sommaire-back sommaire-back-25' href='#s-t3-3-Permettre-l-affichage-de-toutes-les-erreurs' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;comme nous sommes en local, vous pouvez ajouter les lignes suivantes au fichier&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;php.ini&lt;/code&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;; Enable error reporting error_reporting = E_ALL &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034; id='Conclusion'&gt;Conclusion&lt;a class='sommaire-back sommaire-back-25' href='#s-Conclusion' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt; donne des formations d'initiation &#224; la programmation. Les articles de cette rubrique accompagnent une formation sur &lt;i&gt;les lignes de commande avec macOS&lt;/i&gt;.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Un &lt;a href='https://www.syndicatlibre.org/spip.php?article574' class=&#034;spip_in&#034;&gt;premier article&lt;/a&gt; qui vous a appris &#224; passer des commandes sous Linux.&lt;/li&gt;&lt;li&gt; Un &lt;a href='https://www.syndicatlibre.org/spip.php?article575' class=&#034;spip_in&#034;&gt;second article&lt;/a&gt; vous a appris &#224; regrouper ces commandes et les ex&#233;cuter depuis un fichier.&lt;/li&gt;&lt;li&gt; Le &lt;a href='https://www.syndicatlibre.org/spip.php?article576' class=&#034;spip_in&#034;&gt;troisi&#232;me article&lt;/a&gt; vous a appris &#224; appeler un d&#233;p&#244;t et proc&#233;der &#224; une installation par paquets.&lt;/li&gt;&lt;li&gt; Le &lt;a href='https://www.syndicatlibre.org/spip.php?article579' class=&#034;spip_in&#034;&gt;quatri&#232;me article&lt;/a&gt; vous a appris &#224; utiliser la Pile LAMP en ligne de commande.&lt;/li&gt;&lt;li&gt; Le pr&#233;sente article, tr&#232;s technique, montre que vous maitriser cet univers et sa complexit&#233;. Bravo ! Voyez attentif &#224; ce que le fait qu'Apache soit livr&#233; avec le macOs peut provoquer, lors de mise &#224; jour importante, le remplacement de votre fichier de configuration du service Web http et donc vous amener &#224; devoir refaire les op&#233;rations ci-dessus.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les lignes de commande - Le&#231;on 4 - Installer la pile LAMP</title>
		<link>https://www.syndicatlibre.org/spip.php?article579</link>
		<guid isPermaLink="true">https://www.syndicatlibre.org/spip.php?article579</guid>
		<dc:date>2023-09-30T05:36:24Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent CALLIES</dc:creator>



		<description>
&lt;p&gt;Apr&#232;s avoir apr&#232;s &#224; ouvrir le Terminal sous macOS (le&#231;on 1), &#224; l'utiliser et &#224; faire un script Shell (le&#231;on 2), nous avons appris &#224; installer une solution telle que ImageMagick avec ses d&#233;pendances en utilisant le gestionnaire de paquets Homebrew (le&#231;on 3). &lt;br class='autobr' /&gt;
Certaines des applications Web open source les plus utilis&#233;es actuellement, comme par exemple WordPress, Drupal ou SPIP s'ex&#233;cutent sur LAMP et s'installent avec Composer. La pile LAMP a &#233;t&#233; l'une des premi&#232;res piles logicielles open (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.syndicatlibre.org/spip.php?rubrique120" rel="directory"&gt;Les lignes de commande sous macOS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-9&#034; id=&#034;nav6a150e54d6d293.95393311&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-Demarrer-le-serveur-HTTP-Apache-en-ligne-de-commande&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-Demarrer-le-serveur-HTTP-Apache-en-ligne-de-commande&#034; class=&#034;spip_ancre&#034;&gt;1. D&#233;marrer le serveur HTTP Apache en ligne de commande&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-1-le-serveur-natif-sur-macOS&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-1-le-serveur-natif-sur-macOS&#034; class=&#034;spip_ancre&#034;&gt;1.1. le serveur natif sur macOS&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t1-2-Installer-et-demarrer-un-nouveau-serveur&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-2-Installer-et-demarrer-un-nouveau-serveur&#034; class=&#034;spip_ancre&#034;&gt;1.2. Installer et d&#233;marrer un nouveau serveur&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-Installer-le-gestionnaire-de-paquets-Composer&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-Installer-le-gestionnaire-de-paquets-Composer&#034; class=&#034;spip_ancre&#034;&gt;2. Installer le gestionnaire de paquets Composer&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-Installer-un-systeme-de-gestion-de-bases-de-donnees-relationnelles-MySQL&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-Installer-un-systeme-de-gestion-de-bases-de-donnees-relationnelles-MySQL&#034; class=&#034;spip_ancre&#034;&gt;3. Installer un syst&#232;me de gestion de bases de donn&#233;es relationnelles : MySQL&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t3-1-Installer-MySQL-avec-Homebrew&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-1-Installer-MySQL-avec-Homebrew&#034; class=&#034;spip_ancre&#034;&gt;3.1 Installer MySQL avec Homebrew&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-1-Demarrer-et-arrete-le-serveur-MySQL&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-1-Demarrer-et-arrete-le-serveur-MySQL&#034; class=&#034;spip_ancre&#034;&gt;3.1 D&#233;marrer et arr&#234;t&#233; le serveur MySQL&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-1-se-connecter-a-la-console-et-travailler&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-1-se-connecter-a-la-console-et-travailler&#034; class=&#034;spip_ancre&#034;&gt;3.1 se connecter &#224; la console &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql&lt;/code&gt; et travailler&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Conclusion&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Conclusion&#034; class=&#034;spip_ancre&#034;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Apr&#232;s avoir apr&#232;s &#224; ouvrir le &lt;strong&gt;Terminal&lt;/strong&gt; sous macOS (&lt;a href='https://www.syndicatlibre.org/spip.php?article574' class=&#034;spip_in&#034;&gt;le&#231;on 1&lt;/a&gt;), &#224; l'utiliser et &#224; faire un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script Shell&lt;/code&gt; (&lt;a href='https://www.syndicatlibre.org/spip.php?article575' class=&#034;spip_in&#034;&gt;le&#231;on 2&lt;/a&gt;), nous avons appris &#224; installer une solution telle que &lt;strong&gt;ImageMagick&lt;/strong&gt; avec ses d&#233;pendances en utilisant le gestionnaire de paquets &lt;strong&gt;Homebrew&lt;/strong&gt; (&lt;a href='https://www.syndicatlibre.org/spip.php?article576' class=&#034;spip_in&#034;&gt;le&#231;on 3&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Certaines des applications Web open source les plus utilis&#233;es actuellement, comme par exemple WordPress, Drupal ou SPIP s'ex&#233;cutent sur LAMP et s'installent avec Composer. &lt;strong&gt;La pile LAMP&lt;/strong&gt; a &#233;t&#233; l'une des premi&#232;res piles logicielles open source pour le Web. LAMP est l'acronyme de Linux, Apache, MySQL et PHP. Ensemble, ils constituent un ensemble de logiciels &#233;prouv&#233;s pour la cr&#233;ation d'applications Web performantes. Quoi de plus naturel, dans cette formation, que d'apprendre &#224; utiliser la pile LAMP en ligne de commande ! Et nous verrons comme install&#233; Composer, qui n'est - ni plus ni moins - qu'un concurrent de Homebrew.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t1-Demarrer-le-serveur-HTTP-Apache-en-ligne-de-commande'&gt;1. D&#233;marrer le serveur HTTP Apache en ligne de commande&lt;a class='sommaire-back sommaire-back-9' href='#s-t1-Demarrer-le-serveur-HTTP-Apache-en-ligne-de-commande' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034; id='t1-1-le-serveur-natif-sur-macOS'&gt; 1.1. le serveur natif sur macOS&lt;a class='sommaire-back sommaire-back-9' href='#s-t1-1-le-serveur-natif-sur-macOS' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Nous avons un serveur HTTP nativement install&#233; sur macOS, c'est le serveur Apache. Pour connaitre sa version, entrer la ligne de commande suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;httpd -v&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Mais si l'on va sur Safari et que l'on entre l'URL &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://localhost&lt;/code&gt; pour voir ce serveur local, il ne se passera rien. Il faut d&#233;marrer le serveur pr&#233;alablement. &lt;br class='autobr' /&gt;
C'est la commande apachectl qui permet de le faire. Une aide peut &#234;tre obtenue sur cette commande via la ligne de commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apachectl -help&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour d&#233;marrer le serveur Apache, entrer la ligne de commande ci-dessous (Le syst&#232;me d'exploitation vous demandera de confirmer votre autorisation pour une telle d&#233;marche en sollicitant votre mot de passe) :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo apachectl start&lt;/code&gt;&lt;br class='autobr' /&gt;
L'arr&#234;t du serveur se fait par :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo apachectl stop&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si l'on va sur Safari et que l'on entre l'URL &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://localhost&lt;/code&gt; pour voir le serveur local dument d&#233;marr&#233;, il affichera &#171; &lt;i&gt;It works !&lt;/i&gt; &#187; [en], ce qui veut dire, en anglais, &lt;i&gt;Cela marche !&lt;/i&gt;. C'est le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html.en&lt;/code&gt; qui affiche ce message en HTML. Vous le trouverez avec le Finder dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Biblioth&#232;que/WebServer/Documents&lt;/code&gt;. Mais ne c&#233;dons pas &#224; la facilit&#233;.&lt;/p&gt;
&lt;p&gt;Tentons de retrouver en ligne de commande le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;index.html.en&lt;/code&gt; en utilisant la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;find&lt;/code&gt;. Il faut tout d'abord se placer &#224; la racine pour acc&#233;der aux fichiers system.&lt;br class='autobr' /&gt;
depuis le r&#233;pertoire utilisateur, remonter &#224; la racine par diff&#233;rentes commandes successives :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd ..&lt;/code&gt;&lt;br class='autobr' /&gt;
Puis, arriv&#233; &#224; la racine, tapez :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd Library/WebServer/Documents&lt;/code&gt;&lt;br class='autobr' /&gt;
Puis tapez&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vim index.html.en&lt;/code&gt;&lt;br class='autobr' /&gt;
Modifier &#171; &lt;i&gt;It works !&lt;/i&gt; &#187; par &#171; &lt;i&gt;We are in ./Library/WebServer/Documents&lt;/i&gt; &#187;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t1-2-Installer-et-demarrer-un-nouveau-serveur'&gt; 1.2. Installer et d&#233;marrer un nouveau serveur&lt;a class='sommaire-back sommaire-back-9' href='#s-t1-2-Installer-et-demarrer-un-nouveau-serveur' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Vous pouvez souhaitez installer un serveur avec Homebrew en plus du serveur existant, pour une multitude de raisons dont celle de pouvoir mettre &#224; jour le serveur facilement et automatiquement, ou encore pour ne pas vous soucier des changements induits par les mises &#224; jour de MacOs sur l'application native.&lt;/p&gt;
&lt;p&gt;L'installation d'Apache se fait par la ligne de commande suivant :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew install httpd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, le serveur httpd install&#233; par Homebrew utilise un port diff&#233;rent de celui de l'installation standard de macOS. Ainsi il est possible d'utiliser les deux en m&#234;me temps.&lt;/p&gt;
&lt;p&gt;Vous pouvez appeler votre nouveau serveur via l'URL&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://localhost:8080&lt;/code&gt;&lt;br class='autobr' /&gt;
Vous pouvez aussi l'appeler en ligne de commande, et la console vous indiquera alors le code HTML non interpr&#233;t&#233; :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;curl localhost:8080&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le port &#224; utiliser par d&#233;faut est indiqu&#233; dans le fichier de configuration. Si vous &#233;ditez ce fichier avec une application en ligne de commande (ici vim)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim /opt/homebrew/etc/httpd/httpd.conf&lt;/code&gt;&lt;br class='autobr' /&gt;
vous devriez voir une ligne indiquant :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Listen 8080&lt;/code&gt;&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t2-Installer-le-gestionnaire-de-paquets-Composer'&gt;2. Installer le gestionnaire de paquets Composer&lt;a class='sommaire-back sommaire-back-9' href='#s-t2-Installer-le-gestionnaire-de-paquets-Composer' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Composer est un gestionnaire de paquets utilis&#233; assez universellement. Il est &#233;crit en php. Homebrew vous permet de l'installer, avec ses d&#233;pendances, dont le php. Vous pourrez utiliser les deux gestionnaires de paquets parall&#232;lement, Homebrew et Composer.&lt;/p&gt;
&lt;p&gt;Une simple ligne de commande vous permet d'installer composer avec l'aide de son concurrent Homebrew.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew install composer&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Homebrew installera les d&#233;pendances de composer : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apr&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ca-certificates&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;openssl@3&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apr-util&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;argon2&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;aspell&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;autoconf&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libunistring&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libidn2&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libnghttp2&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libssh2&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;openldap&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rtmpdump&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;curl&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;unixodbc&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;freetds&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libavif&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gd&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gmp&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;icu4c&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;krb5&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libpq&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libsodium&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libzip&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;oniguruma&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;readline&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sqlite&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tidy-html5&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;php&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Php est le langage dans lequel est &#233;crit Composer. Pour m&#233;moire, Homebrew est &#233;crit en Ruby. Pour connaitre la version de Php install&#233;e, la ligne de commande suivante peut &#234;tre saisie :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;php --version&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Php est lui-m&#234;me install&#233; avec des d&#233;pendances appel&#233;es &lt;i&gt;modules&lt;/i&gt;. Pour connaitre les modules install&#233;s avec php, vous pouvez passer la ligne de commande suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;php -m&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous remarquerez que Homebrew est capable de mutualiser les d&#233;pendances. C'est un des pr&#233;cieux avantages des gestionnaires de paquets. Dans le descriptif de l'installation de Composer, certains &#233;l&#233;ments pr&#233;c&#233;demment install&#233;s avec ImageMagick dans la &lt;a href='https://www.syndicatlibre.org/spip.php?article576' class=&#034;spip_in&#034;&gt;le&#231;on 3&lt;/a&gt; sont d&#233;clar&#233;s comme &#171; &lt;i&gt;Already downloaded&lt;/i&gt; &#187; [en] c'est &#224; dire &lt;i&gt;d&#233;j&#224; t&#233;l&#233;charg&#233;s&lt;/i&gt;.&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Note : Si l'on prend le temps d'un bilan, macOS est un syst&#232;me &lt;strong&gt;Linux&lt;/strong&gt; que nous avons appris &#224; utiliser avec le Terminal. Nous avons un serveur &lt;strong&gt;Apache&lt;/strong&gt; nativement sur notre ordinateur et le &lt;strong&gt;PHP&lt;/strong&gt; maintenant install&#233; avec Composer. Pour avoir une pile LAMP compl&#232;te, il nous manque &lt;strong&gt;MySQL&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034; id='t3-Installer-un-systeme-de-gestion-de-bases-de-donnees-relationnelles-MySQL'&gt;3. Installer un syst&#232;me de gestion de bases de donn&#233;es relationnelles : MySQL&lt;a class='sommaire-back sommaire-back-9' href='#s-t3-Installer-un-systeme-de-gestion-de-bases-de-donnees-relationnelles-MySQL' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034; id='t3-1-Installer-MySQL-avec-Homebrew'&gt; 3.1 Installer MySQL avec Homebrew&lt;a class='sommaire-back sommaire-back-9' href='#s-t3-1-Installer-MySQL-avec-Homebrew' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;L'installation du serveur de bases de donn&#233;es se fera tr&#232;s simplement, avec Homebrew, en saisissant la ligne de commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew install mysql&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t3-1-Demarrer-et-arrete-le-serveur-MySQL'&gt; 3.1 D&#233;marrer et arr&#234;t&#233; le serveur MySQL&lt;a class='sommaire-back sommaire-back-9' href='#s-t3-1-Demarrer-et-arrete-le-serveur-MySQL' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;On lance le serveur :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql.server start&lt;/code&gt;&lt;br class='autobr' /&gt;
On le stoppera lorsque n&#233;cessaire avec la ligne de commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql.server stop&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;En attendant, et d'ailleurs Homebrew vous le rappelle, il faut s&#233;curiser l'installation :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql_secure_installation&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;L'installation vous posera diff&#233;rentes questions.&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Note : Homebrew peut avoir installer un ex&#233;cutable (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;homebrew.mxcl.mysql.plist&lt;/code&gt;) au lancement de votre ordinateur. Cet ex&#233;cutable lance &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysqld_safe&lt;/code&gt; qui va &#224; son tour lancer ou arr&#234;ter le serveur de bases de donn&#233;e en m&#234;me temps que le d&#233;marrage ou l'extinction de votre ordinateur. Si vous souhaitez d&#233;sactiver mysqld_safe, vous pouvez aller dans l'application R&#233;glages syst&#232;me | G&#233;n&#233;ral | Ouverture et d&#233;s&#233;lectionner &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysqld_safe&lt;/code&gt;. Vous aurez &#224; lancer ou &#233;teindre le serveur de bases de donn&#233;e vous-m&#234;me.&lt;br class='autobr' /&gt;
Pour en savoir plus : dev.mysql.com &lt;a href=&#034;https://dev.mysql.com/doc/refman/8.0/en/mysqld-safe.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;4.3.2 mysqld_safe &#8212; MySQL Server Startup Script&lt;/a&gt; [en]&lt;/p&gt;
&lt;/blockquote&gt;&lt;h3 class=&#034;h3&#034; id='t3-1-se-connecter-a-la-console-et-travailler'&gt; 3.1 se connecter &#224; la console &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql&lt;/code&gt; et travailler&lt;a class='sommaire-back sommaire-back-9' href='#s-t3-1-se-connecter-a-la-console-et-travailler' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;On peut ensuite se connecter &#224; mysql en lui sp&#233;cifiant l'utilisateur avec le param&#232;tre -u. &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql -u root -p&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Note : Si vous souhaitez fournir votre mot de passe sur la ligne de commande apr&#232;s l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-p&lt;/code&gt; (pour &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;password&lt;/code&gt; ce qui veut dire &lt;i&gt;mot de passe&lt;/i&gt; en anglais), vous devez le faire sans espace interm&#233;diaire (par exemple, en tant que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-pmotdepasse&lt;/code&gt;, et non en tant que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-p motdepasse&lt;/code&gt;). Cependant, pour des raisons de s&#233;curit&#233;, il n'est pas recommand&#233; de mettre votre mot de passe sur la ligne de commande. Il est pr&#233;f&#233;rable de la saisir &#224; l'invitation de la console.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pour connaitre les bases de donn&#233;es existantes, vous pouvez entrer la commande suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;SHOW DATABASES;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Travailler avec MySQL c'est aussi faire face aux erreurs que l'on commettra et donc aller regarder les journaux (dit &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;log&lt;/code&gt; en anglais) des diff&#233;rentes erreurs. Les principaux journaux sont les suivants :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id3376_c0'&gt;Nom du journal&lt;/th&gt;&lt;th id='id3376_c1'&gt;cli MySQL&lt;/th&gt;&lt;th id='id3376_c2'&gt;Utilit&#233;&lt;/th&gt;&lt;th id='id3376_c3'&gt;Activation&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id3376_c0'&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;log_error&lt;/code&gt;&lt;/td&gt;
&lt;td headers='id3376_c1'&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show variables like 'log_error%';&lt;/code&gt;&lt;/td&gt;
&lt;td headers='id3376_c2'&gt;Pour les erreurs&lt;/td&gt;
&lt;td headers='id3376_c3'&gt;activ&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id3376_c0'&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;general_log_file&lt;/code&gt;&lt;/td&gt;
&lt;td headers='id3376_c1'&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show variables like 'general_log%';&lt;/code&gt;&lt;/td&gt;
&lt;td headers='id3376_c2'&gt;pour les requ&#234;tes&lt;/td&gt;
&lt;td headers='id3376_c3'&gt;&#224; activer&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id3376_c0'&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;slow_query_log_file&lt;/code&gt;&lt;/td&gt;
&lt;td headers='id3376_c1'&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show variables like 'slow_query_log%';&lt;/code&gt;&lt;/td&gt;
&lt;td headers='id3376_c2'&gt;pour les requ&#234;tes anormalement lente&lt;/td&gt;
&lt;td headers='id3376_c3'&gt;&#224; activer&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La commande pour connaitre le r&#233;pertoire des &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;logs&lt;/code&gt; est la suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;SELECT @@datadir;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;apr&#232;s avoir quitt&#233; la console mysql par la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;exit&lt;/code&gt;, vous pouvez vous positionner sur le r&#233;pertoire pertinent avec la commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd $HOMEBREW_REPOSITORY/var/mysql&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour activer d&#232;s le d&#233;marrage les logs &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;general_log&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;slow_query_log&lt;/code&gt;, &#233;diter la configuration de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql&lt;/code&gt; :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim $HOMEBREW_REPOSITORY/etc/my.cnf&lt;/code&gt;&lt;br class='autobr' /&gt;
La lecture de ce fichier vous permettra de constater que Homebrew a s&#233;curis&#233; votre serveur n'autorisant que les connexions venant de localhost.&lt;br class='autobr' /&gt;
Vous pouvez ajouter les lignes suivantes pour y activer le log &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;general_log&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;slow_query_log&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;general_log = 1 slow_query_log = 1 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour en savoir plus sur les &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;logs&lt;/code&gt; : dev.mysql.com &lt;a href=&#034;https://dev.mysql.com/doc/refman/8.0/en/server-logs.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;5.4 MySQL Server Logs&lt;/a&gt; [en]&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='Conclusion'&gt;Conclusion&lt;a class='sommaire-back sommaire-back-9' href='#s-Conclusion' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt; donne des formations d'initiation &#224; la programmation. Les articles de cette rubrique accompagnent une formation sur &lt;i&gt;les lignes de commande avec macOS&lt;/i&gt;.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Un &lt;a href='https://www.syndicatlibre.org/spip.php?article574' class=&#034;spip_in&#034;&gt;premier article&lt;/a&gt; qui vous a appris &#224; passer des commandes sous Linux.&lt;/li&gt;&lt;li&gt; Un &lt;a href='https://www.syndicatlibre.org/spip.php?article575' class=&#034;spip_in&#034;&gt;second article&lt;/a&gt; vous a appris &#224; regrouper ces commandes et les ex&#233;cuter depuis un fichier.&lt;/li&gt;&lt;li&gt; Le &lt;a href='https://www.syndicatlibre.org/spip.php?article576' class=&#034;spip_in&#034;&gt;troisi&#232;me article&lt;/a&gt; vous a appris &#224; appeler un d&#233;p&#244;t et proc&#233;der &#224; une installation par paquets.&lt;/li&gt;&lt;li&gt; Le pr&#233;sent article vous a appris &#224; utiliser la Pile LAMP en ligne de commande. C'est une &#233;tape tr&#232;s importante. Cette Pile est grandement utilis&#233;e.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les lignes de commande - Le&#231;on 3 - La gestion des d&#233;pendances avec l'exemple d'ImageMagick</title>
		<link>https://www.syndicatlibre.org/spip.php?article576</link>
		<guid isPermaLink="true">https://www.syndicatlibre.org/spip.php?article576</guid>
		<dc:date>2023-09-29T16:23:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent CALLIES</dc:creator>



		<description>
&lt;p&gt;Lorsque l'on a un iPhone, les photographies sont enregistr&#233;es au format HEIC. Il est souvent utile de pouvoir les convertir en JPEG afin de les partager plus universellement. Il y a de merveilleux scripts sp&#233;cialis&#233;s dans cette tache et qui s'ex&#233;cutent en ligne de commande. L'un de ceux-ci s'appelle ImageMagick. L'installation sur votre Mac de cette solution est un parfait exemple pour notre exercice qui vient compl&#233;ter la le&#231;on 1 et la le&#231;on 2. &lt;br class='autobr' /&gt;
L'installation d'ImageMagick sera l'occasion (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.syndicatlibre.org/spip.php?rubrique120" rel="directory"&gt;Les lignes de commande sous macOS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-8&#034; id=&#034;nav6a150e54de2aa0.54696986&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Telecharger-l-archive-de-ImageMagick-et-la-decompresser&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Telecharger-l-archive-de-ImageMagick-et-la-decompresser&#034; class=&#034;spip_ancre&#034;&gt;T&#233;l&#233;charger l'archive de ImageMagick et la d&#233;compresser&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-Installer-ImageMagick-directement-depuis-son-depot-GitHub&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-Installer-ImageMagick-directement-depuis-son-depot-GitHub&#034; class=&#034;spip_ancre&#034;&gt;1. Installer ImageMagick directement depuis son d&#233;p&#244;t GitHub&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-1-Creer-des-variables-d-environnement-permanentes&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-1-Creer-des-variables-d-environnement-permanentes&#034; class=&#034;spip_ancre&#034;&gt;1.1 Cr&#233;er des variables d'environnement permanentes&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t1-2-utiliser-ImageMagick&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-2-utiliser-ImageMagick&#034; class=&#034;spip_ancre&#034;&gt;1.2 utiliser ImageMagick&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-Installer-ImageMagick-avec-l-aide-de-Homebrew&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-Installer-ImageMagick-avec-l-aide-de-Homebrew&#034; class=&#034;spip_ancre&#034;&gt;2. Installer ImageMagick avec l'aide de Homebrew&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t2-1-Les-liens-symboliques-crees-par-Homebrew&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-1-Les-liens-symboliques-crees-par-Homebrew&#034; class=&#034;spip_ancre&#034;&gt;2.1 Les liens symboliques cr&#233;&#233;s par Homebrew&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-2-Utiliser-ImageMagick&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-2-Utiliser-ImageMagick&#034; class=&#034;spip_ancre&#034;&gt;2.2 Utiliser ImageMagick&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Conclusion&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Conclusion&#034; class=&#034;spip_ancre&#034;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Lorsque l'on a un iPhone, les photographies sont enregistr&#233;es au format HEIC. Il est souvent utile de pouvoir les convertir en JPEG afin de les partager plus universellement. Il y a de merveilleux scripts sp&#233;cialis&#233;s dans cette tache et qui s'ex&#233;cutent en ligne de commande. L'un de ceux-ci s'appelle &lt;strong&gt;ImageMagick&lt;/strong&gt;. L'installation sur votre Mac de cette solution est un parfait exemple pour notre exercice qui vient compl&#233;ter la &lt;a href='https://www.syndicatlibre.org/spip.php?article574' class=&#034;spip_in&#034;&gt;le&#231;on 1&lt;/a&gt; et la &lt;a href='https://www.syndicatlibre.org/spip.php?article575' class=&#034;spip_in&#034;&gt;le&#231;on 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L'installation d'ImageMagick sera l'occasion de d&#233;couvrir la difficult&#233; de g&#233;rer les d&#233;pendances. En effet, cette solution logicielle a besoin d'une biblioth&#232;que de librairies pour convertir dans diff&#233;rents formats des images graphiques. Vous aurez alors deux solutions : les installer une &#224; une depuis leurs &lt;strong&gt;d&#233;p&#244;ts&lt;/strong&gt; ou utiliser un &lt;strong&gt;gestionnaire de paquets&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='Telecharger-l-archive-de-ImageMagick-et-la-decompresser'&gt;T&#233;l&#233;charger l'archive de ImageMagick et la d&#233;compresser&lt;a class='sommaire-back sommaire-back-8' href='#s-Telecharger-l-archive-de-ImageMagick-et-la-decompresser' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Il est bien sur possible de t&#233;l&#233;charger ce logiciel depuis un &lt;strong&gt;depot&lt;/strong&gt; sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;GitHub&lt;/code&gt;. Mais cela va demander d'installer ses d&#233;pendances une &#224; une.&lt;br class='autobr' /&gt;
Pour faciliter une installation complexe, il existe des &lt;strong&gt;gestionnaires de paquets&lt;/strong&gt;. Le plus c&#233;l&#232;bre sur maxOS est &#233;crit en Ruby et appel&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Homebrew&lt;/code&gt;. Il va permettre d'installer en une fois &lt;strong&gt;ImageMagick&lt;/strong&gt; et un ensemble de d&#233;pendances.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t1-Installer-ImageMagick-directement-depuis-son-depot-GitHub'&gt; 1. Installer ImageMagick directement depuis son d&#233;p&#244;t GitHub&lt;a class='sommaire-back sommaire-back-8' href='#s-t1-Installer-ImageMagick-directement-depuis-son-depot-GitHub' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Apr&#232;s avoir ouvert le Terminal, placez vous dans le r&#233;pertoire par d&#233;faut :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd $HOME&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://imagemagick.org/index.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ImageMagick&lt;/a&gt; est une solution en OpenSource qui facilite la conversion dans diff&#233;rents formats. Il convient tout d'abord de t&#233;l&#233;charger les scripts, ce que nous vous proposons de faire avec la ligne de commande suivante :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.1&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Note : Il peut vous &#234;tre n&#233;cessaire d'installer pr&#233;alablement la &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Command Line Developper Tools&lt;/code&gt; d'Apple. En tant que de besoin, la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;xcode-select --install&lt;/code&gt; vous permettra de le faire. Si vous voulez savoir si cet &#233;l&#233;ment est d&#233;j&#224; install&#233;, saisissez la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;xcode-select -p&lt;/code&gt; qui vous indiquera le cas &#233;ch&#233;ant o&#249; il a &#233;t&#233; install&#233;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;V&#233;rifier qu'un r&#233;pertoire a &#233;t&#233; cr&#233;&#233; pour ImageMagick&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls&lt;/code&gt;&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='t1-1-Creer-des-variables-d-environnement-permanentes'&gt; 1.1 Cr&#233;er des variables d'environnement permanentes&lt;a class='sommaire-back sommaire-back-8' href='#s-t1-1-Creer-des-variables-d-environnement-permanentes' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Lorsque vous avez pass&#233; la ligne de commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd $HOME&lt;/code&gt;, vous avez utilis&#233; une variable d'environnement &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$HOME&lt;/code&gt;. Pour connaitre toutes ces variables, vous pouvez saisir la commande suivante :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;export -p&lt;/code&gt;&lt;br class='autobr' /&gt;
ou&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;printenv&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nous allons cr&#233;er deux variables d'environnement permanentes pour l'utilisation de Magick. Cela nous facilitera les lignes de commande &#224; saisir pour notre travail ult&#233;rieur.&lt;/p&gt;
&lt;p&gt;C'est un script qui accueille ces raccourcis invisibles. Vous pouvez ne pouvez pas voir ces fichiers invisibles lors de la consultation de la liste du contenu d'un r&#233;pertoire par la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls&lt;/code&gt;. Mais un argument vous permettra de voir tous les fichiers invisibles :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls -a&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nous allons &#233;diter le fichier invisible .profile avec le CLI &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim&lt;/code&gt; (voir l'article pr&#233;c&#233;dent si besoin) :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim .profile&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nous allons &#233;crire (tapez i pour l'indiquer au logiciel votre intention) et saisissez les lignes suivantes :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;export MAGICK_HOME=&#034;$HOME/ImageMagick-7.1.1&#034; export PATH=&#034;$MAGICK_HOME/bin:$PATH&#034; export DYLD_LIBRARY_PATH=&#034;$MAGICK_HOME/lib/&#034;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;quittez le CLI et enregistrer votre fichier (Pour &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim&lt;/code&gt; il faut enregistrer les modifications avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:w&lt;/code&gt; et pour quitter &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:q&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Activer le fichier modifier par la commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;source .profile&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;V&#233;rifier que tout fonctionne en demandant &#224; ce que la variable MAGICK_HOME soit affich&#233;e :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo $MAGICK_HOME&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Placez-vous dans le r&#233;pertoire avec la commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd ImageMagick-7.1.1&lt;/code&gt;&lt;br class='autobr' /&gt;
ou&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd $MAGICK_HOME&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;tapez&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./configure --with-modules&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;tapez&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo make install&lt;/code&gt;&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='t1-2-utiliser-ImageMagick'&gt; 1.2 utiliser ImageMagick&lt;a class='sommaire-back sommaire-back-8' href='#s-t1-2-utiliser-ImageMagick' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;L'utilisation de &lt;a href=&#034;https://imagemagick.org/Usage/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ImageMagick&lt;/a&gt; vous permet d'avoir acc&#232;s &#224; de nombreux format de conversion. Pour avoir un aper&#231;u de comment utiliser sa commande convert, tapez :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;convert --help&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;V&#233;rifiez que vous avez bien les formats voulus :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;magick identify -list format&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si le format JPG manque, regarder &lt;a href=&#034;https://imagemagick.org/script/formats.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;la librairie utilis&#233;e par imagemagick&lt;/a&gt; et installez l&#224;. Ce sont sans doute ces derni&#232;res complications qui vous inviterons &#224; prendre la seconde solution d'installation avec Brew.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-Installer-ImageMagick-avec-l-aide-de-Homebrew'&gt; 2. Installer ImageMagick avec l'aide de Homebrew&lt;a class='sommaire-back sommaire-back-8' href='#s-t2-Installer-ImageMagick-avec-l-aide-de-Homebrew' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Installez pr&#233;alablement &lt;a href=&#034;https://brew.sh/fr/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;brew&lt;/a&gt; avec la ligne de commande recommand&#233;e sur leur site. Homebrew est &#233;crit en Ruby, qui est un langage install&#233; d'origine sur votre macOS (et m&#234;me pr&#233;c&#233;demment Mac OS X).&lt;/p&gt;
&lt;p&gt;Une fois ce &lt;strong&gt;gestionnaire de paquets&lt;/strong&gt; install&#233;, vous aurez acc&#232;s &#224; de nombreux packages, appel&#233;s &lt;a href='https://www.syndicatlibre.org/.https:/formulae.brew.sh/formula/'&gt;formula&lt;/a&gt;, vous permettant d'installer des solutions int&#233;gr&#233;e dont celle d'&lt;a href=&#034;https://formulae.brew.sh/formula/imagemagick&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ImageMagick&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Apr&#232;s l'installation de Homebrew, en une seule ligne de commande vous permet d'installer ImageMagick et ses d&#233;pendances :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew install imagemagick&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Seront install&#233;es toutes les d&#233;pendances n&#233;cessaires : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libpng&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;freetype&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fontconfig&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jbig2dec&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jpeg-turbo&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libidn&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;xz&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lz4&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;zstd&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libtiff&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;little-cms2&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;openjpeg&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ghostscript&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brotli&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;giflib&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;highway&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;imath&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;openexr&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;webp&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jpeg-xl&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libvmaf&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;aom&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libde265&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pcre2&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gettext&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;glib&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;shared-mime-info&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;x265&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libheif&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;liblqr&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jasper&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libomp&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libraw&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;m4&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;libtool&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Homebrew installe les paquets dans leurs propres r&#233;pertoires vers /opt/homebrew. Pour savoir o&#249; est situ&#233; ce r&#233;pertoire, saisissez la ligne de commande :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo $HOMEBREW_REPOSITORY&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour avoir la liste des logiciels install&#233; par Brew :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;brew list -v&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour avoir une description du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Brew&lt;/code&gt; lui-m&#234;me&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls -ail $HOMEBREW_REPOSITORY/bin/Brew&lt;/code&gt;&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='t2-1-Les-liens-symboliques-crees-par-Homebrew'&gt; 2.1 Les liens symboliques cr&#233;&#233;s par Homebrew&lt;a class='sommaire-back sommaire-back-8' href='#s-t2-1-Les-liens-symboliques-crees-par-Homebrew' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Homebrew installe les paquets dans leurs propres r&#233;pertoires et cr&#233;e des liens symboliques de leurs fichiers vers /opt/homebrew. &lt;br class='autobr' /&gt;
Un lien symbolique est un raccourci.&lt;/p&gt;
&lt;p&gt;Pour connaitre les liens symboliques existants :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls -l&lt;/code&gt;&lt;/p&gt;
&lt;h4 class=&#034;h4&#034; id='t2-2-Utiliser-ImageMagick'&gt; 2.2 Utiliser ImageMagick&lt;a class='sommaire-back sommaire-back-8' href='#s-t2-2-Utiliser-ImageMagick' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;La conversion se fait tr&#232;s simplement, d'un fichier en HEIC que vous voulez convertir en un fichier jpg&lt;/p&gt;
&lt;p&gt;V&#233;rifiez que vous avez bien les formats voulus :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;magick identify -list format&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Placez vous dans le r&#233;pertoire de vos photos, cela vous &#233;vitera de devoir sp&#233;cifier les chemins d'acc&#232;s.&lt;/p&gt;
&lt;p&gt;Pour convertir un fichier pr&#233;cis (ici &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;IMG_1119.HEIC&lt;/code&gt;)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;magick convert IMG_1119.HEIC -quality 80% IMG_1119.jpg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour convertir tous les fichiers du r&#233;pertoire&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mogrify -format jpg -quality 80% *.HEIC&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Note : Il serait possible, avec Pixelmator Pro 2.2 et la nouvelle application Raccourcis pour Mac d'effectuer ce travail de conversion d'images.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034; id='Conclusion'&gt;Conclusion&lt;a class='sommaire-back sommaire-back-8' href='#s-Conclusion' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt; donne des formations d'initiation &#224; la programmation. Les articles de cette rubrique accompagnent une formation sur &lt;i&gt;les lignes de commande avec macOS&lt;/i&gt;.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Un &lt;a href='https://www.syndicatlibre.org/spip.php?article574' class=&#034;spip_in&#034;&gt;premier article&lt;/a&gt; qui vous a appris &#224; passer des commandes UNIX.&lt;/li&gt;&lt;li&gt; Un &lt;a href='https://www.syndicatlibre.org/spip.php?article575' class=&#034;spip_in&#034;&gt;second article&lt;/a&gt; vous a appris &#224; regrouper ces commandes et les ex&#233;cuter depuis un fichier.&lt;/li&gt;&lt;li&gt; Le pr&#233;sent article vous a appris &#224; appeler un d&#233;p&#244;t et proc&#233;der &#224; une installation par paquets. Ce sont des op&#233;rations importantes &#224; savoir faire pour utiliser tous les outils disponibles en open-source.&lt;/li&gt;&lt;li&gt; Le &lt;a href='https://www.syndicatlibre.org/spip.php?article579' class=&#034;spip_in&#034;&gt;prochain article&lt;/a&gt; vous proposera de jongler avec la Pile LAMP en ligne de commande.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les lignes de commande - Le&#231;on 2 - Le `script Shell`</title>
		<link>https://www.syndicatlibre.org/spip.php?article575</link>
		<guid isPermaLink="true">https://www.syndicatlibre.org/spip.php?article575</guid>
		<dc:date>2023-09-22T08:04:21Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent CALLIES</dc:creator>



		<description>
&lt;p&gt;Le pr&#233;sent article porte sur ce qu'est un script shell. Vous ex&#233;cutez un script shell pour ex&#233;cuter des commandes sans avoir &#224; les saisir dans l'outil de ligne de commande. Un script shell est un fichier texte contenant une ou plusieurs commandes UNIX. Le syst&#232;me d'exploitation macOS est fond&#233; sur un noyau UNIX avec lequel vos lignes de commande vont pouvoir interagir. Sans le savoir, le pr&#233;c&#233;dent article vous a appris &#224; passer des commandes UNIX. Le pr&#233;sent article va vous permettre de (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.syndicatlibre.org/spip.php?rubrique120" rel="directory"&gt;Les lignes de commande sous macOS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-8&#034; id=&#034;nav6a150e54e5e285.23072283&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-Creer-un-dans-un-repertoire-ad-hoc&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-Creer-un-dans-un-repertoire-ad-hoc&#034; class=&#034;spip_ancre&#034;&gt;1. Cr&#233;er un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script Shell&lt;/code&gt; dans un r&#233;pertoire ad hoc.&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-1-Creer-le-repertoire&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-1-Creer-le-repertoire&#034; class=&#034;spip_ancre&#034;&gt;1.1 Cr&#233;er le repertoire&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t1-2-Creer-le-fichier&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-2-Creer-le-fichier&#034; class=&#034;spip_ancre&#034;&gt;1.2 Cr&#233;er le fichier&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-Placer-des-instructions-dans-le-script-et-le-rendre-executable&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-Placer-des-instructions-dans-le-script-et-le-rendre-executable&#034; class=&#034;spip_ancre&#034;&gt;2. Placer des instructions dans le script et le rendre ex&#233;cutable&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t2-1-Creer-une-liste-de-commandes&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-1-Creer-une-liste-de-commandes&#034; class=&#034;spip_ancre&#034;&gt;2.1 Cr&#233;er une liste de commandes&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-2-Rendre-le-fichier-executable&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-2-Rendre-le-fichier-executable&#034; class=&#034;spip_ancre&#034;&gt;2.2 Rendre le fichier ex&#233;cutable&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-3-Executer-le-fichier&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-3-Executer-le-fichier&#034; class=&#034;spip_ancre&#034;&gt;2.3 Ex&#233;cuter le fichier&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Conclusion&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Conclusion&#034; class=&#034;spip_ancre&#034;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Le pr&#233;sent article porte sur ce qu'est un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script shell&lt;/code&gt;. Vous ex&#233;cutez un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script shell&lt;/code&gt; pour ex&#233;cuter des commandes sans avoir &#224; les saisir dans l'outil de ligne de commande.&lt;br class='autobr' /&gt;
Un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script shell&lt;/code&gt; est un fichier texte contenant une ou plusieurs commandes &lt;a href=&#034;https://fr.wikipedia.org/wiki/UNIX&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;UNIX&lt;/a&gt;. Le syst&#232;me d'exploitation macOS est fond&#233; sur un noyau UNIX avec lequel vos lignes de commande vont pouvoir interagir. &lt;br class='autobr' /&gt;
Sans le savoir, le &lt;a href='https://www.syndicatlibre.org/spip.php?article574' class=&#034;spip_in&#034;&gt;pr&#233;c&#233;dent article&lt;/a&gt; vous a appris &#224; passer des commandes UNIX. Le pr&#233;sent article va vous permettre de les regrouper dans un ficher texte et de les ex&#233;cuter d'un coup.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t1-Creer-un-dans-un-repertoire-ad-hoc'&gt;1. Cr&#233;er un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script Shell&lt;/code&gt; dans un r&#233;pertoire ad hoc.&lt;a class='sommaire-back sommaire-back-8' href='#s-t1-Creer-un-dans-un-repertoire-ad-hoc' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034; id='t1-1-Creer-le-repertoire'&gt; 1.1 Cr&#233;er le repertoire&lt;a class='sommaire-back sommaire-back-8' href='#s-t1-1-Creer-le-repertoire' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd ~/Documents&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;On se place dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Documents&lt;/code&gt;&lt;/i&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mkdir Dev&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;On cr&#233;e un r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Dev&lt;/code&gt; avec la commande unix &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mkdir&lt;/code&gt;&lt;/i&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd Dev&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;On se place dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Dev&lt;/code&gt; nouvellement cr&#233;&#233;&lt;/i&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t1-2-Creer-le-fichier'&gt; 1.2 Cr&#233;er le fichier&lt;a class='sommaire-back sommaire-back-8' href='#s-t1-2-Creer-le-fichier' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim bonjour.sh&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;On cr&#233;e avec l'&#233;diteur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim&lt;/code&gt; un script d&#233;nomm&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bonjour.sh&lt;/code&gt;&lt;/i&gt;&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t2-Placer-des-instructions-dans-le-script-et-le-rendre-executable'&gt;2. Placer des instructions dans le script et le rendre ex&#233;cutable&lt;a class='sommaire-back sommaire-back-8' href='#s-t2-Placer-des-instructions-dans-le-script-et-le-rendre-executable' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Nous allons faire un script, inutile mais sympathique, qui se contente de dire bonjour &#224; la personne que vous souhaitez. C'est un exercice classique dans le monde de la programmation.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-1-Creer-une-liste-de-commandes'&gt; 2.1 Cr&#233;er une liste de commandes&lt;a class='sommaire-back sommaire-back-8' href='#s-t2-1-Creer-une-liste-de-commandes' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;PREMIER_ARGUMENT=&#034;$1&#034;&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo &#034;Bonjour, $PREMIER_ARGUMENT !&#034;&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;Dans l'&#233;diteur, nous saisissons les deux lignes suivantes. Puis, pour enregistrer le fichier dans Vim et le quitter, nous appuyons sur les touche Echap+Maj+ZZ.&lt;/i&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-2-Rendre-le-fichier-executable'&gt; 2.2 Rendre le fichier ex&#233;cutable&lt;a class='sommaire-back sommaire-back-8' href='#s-t2-2-Rendre-le-fichier-executable' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod u+x bonjour.sh&lt;/code&gt;&lt;br class='autobr' /&gt;
ou&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod 755 bonjour.sh&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;Il faut indiquer &#224; l'ordinateur qu'il a le droit d'ex&#233;cuter ce script. L'autorisation se donne par la commande &lt;a href=&#034;https://fr.wikipedia.org/wiki/chmod&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;chmod&lt;/a&gt; suivie d'arguments. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod 755&lt;/code&gt; donne au propri&#233;taire tous les droits, aux membres du groupe et aux autres les droits de lecture et d'acc&#232;s. La commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod u+x&lt;/code&gt; est plus pr&#233;cise : elle donne &#224; l'utilisateur seulement tous les droits et ne se pr&#233;occupe pas des droit des autres.&lt;/i&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-3-Executer-le-fichier'&gt; 2.3 Ex&#233;cuter le fichier&lt;a class='sommaire-back sommaire-back-8' href='#s-t2-3-Executer-le-fichier' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./bonjour.sh Vincent&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;L'execution du script directement n'est pas possible. Il faut le faire reconnaitre comme un script ex&#233;cutable. Vous pouvez essayer de le faire sans cette d&#233;claration pr&#233;alable : vous aurez alors le message d'erreur suivant : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;permission denied: ./bonjour.sh&lt;/code&gt;. L'appel au script &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bonjour.sh&lt;/code&gt; est suivi d'un argument qui est le pr&#233;nom de la personne que vous voulez saluer.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Le terminal affichera &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Bonjour, Vincent !&lt;/code&gt; en cas de succ&#232;s.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='Conclusion'&gt;Conclusion&lt;a class='sommaire-back sommaire-back-8' href='#s-Conclusion' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt; donne des formations d'initiation &#224; la programmation. Les articles de cette rubrique accompagne une formation sur &lt;i&gt;les lignes de commande avec macOS&lt;/i&gt;.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Le &lt;a href='https://www.syndicatlibre.org/spip.php?article574' class=&#034;spip_in&#034;&gt;pr&#233;c&#233;dent article&lt;/a&gt; vous a appris &#224; passer des commandes Linux.&lt;/li&gt;&lt;li&gt; Le pr&#233;sent article vous a appris &#224; regrouper ces commandes et les ex&#233;cuter depuis un fichier.&lt;/li&gt;&lt;li&gt; Le prochain article vous indiquera comme planifier l'ex&#233;cution de ces lignes de commande.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les lignes de commande - Le&#231;on 1 - Le Terminal sous macOS</title>
		<link>https://www.syndicatlibre.org/spip.php?article574</link>
		<guid isPermaLink="true">https://www.syndicatlibre.org/spip.php?article574</guid>
		<dc:date>2023-09-22T08:04:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent CALLIES</dc:creator>



		<description>
&lt;p&gt;Le Mac est connu pour sa simplicit&#233; d'utilisation et son interface graphique intuitive. Mais il est possible de soulever le capot (ou plut&#244;t l'interface graphique) et de regarder le moteur de la machine. Ce sont les lignes de commande. Pour simplifier, les lignes de commande sont les instructions donn&#233;es lorsque vous cliquez sur une ic&#244;ne. Dans le pr&#233;sent article, vous allez apprendre &#224; vous passer des ic&#244;nes et &#224; donner vous-m&#234;me, directement, ces instructions, au travers du Terminal. &lt;br class='autobr' /&gt;
1. (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.syndicatlibre.org/spip.php?rubrique120" rel="directory"&gt;Les lignes de commande sous macOS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-13&#034; id=&#034;nav6a150e54ed1497.13737773&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-Ouvrir-l-application-Terminal&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-Ouvrir-l-application-Terminal&#034; class=&#034;spip_ancre&#034;&gt;1. Ouvrir l'application Terminal&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t1-1-Qui-suis-je&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-1-Qui-suis-je&#034; class=&#034;spip_ancre&#034;&gt;1.1 Qui suis-je ?&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t1-2-Qui-est-il&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t1-2-Qui-est-il&#034; class=&#034;spip_ancre&#034;&gt;1.2 Qui est-il ?&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-Regarder-autour-de-soi&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-Regarder-autour-de-soi&#034; class=&#034;spip_ancre&#034;&gt;2. Regarder autour de soi&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t2-1-Regarder-ou-on-est-ce-que-l-on-a&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-1-Regarder-ou-on-est-ce-que-l-on-a&#034; class=&#034;spip_ancre&#034;&gt;2.1 Regarder o&#249; on est ce que l'on a&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-2-Voyager&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-2-Voyager&#034; class=&#034;spip_ancre&#034;&gt;2.2 Voyager&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-3-Revenir&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-3-Revenir&#034; class=&#034;spip_ancre&#034;&gt;2.3 Revenir&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t2-4-le-fil-d-Ariane&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t2-4-le-fil-d-Ariane&#034; class=&#034;spip_ancre&#034;&gt;2.4 le fil d'Ariane&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-Creer-un-fichier-le-modifier-et-le-visualiser&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-Creer-un-fichier-le-modifier-et-le-visualiser&#034; class=&#034;spip_ancre&#034;&gt;3. Cr&#233;er un fichier, le modifier et le visualiser&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-t3-1-Creer-un-fichier&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-1-Creer-un-fichier&#034; class=&#034;spip_ancre&#034;&gt;3.1 Cr&#233;er un fichier&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-2-Ajouter-une-ligne-au-fichier-precedemment-cree&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-2-Ajouter-une-ligne-au-fichier-precedemment-cree&#034; class=&#034;spip_ancre&#034;&gt;3.2 Ajouter une ligne au fichier pr&#233;c&#233;demment cr&#233;&#233;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-t3-3-Voir-le-fichier&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#t3-3-Voir-le-fichier&#034; class=&#034;spip_ancre&#034;&gt;3.3 Voir le fichier&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Conclusion&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Conclusion&#034; class=&#034;spip_ancre&#034;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Le Mac est connu pour sa simplicit&#233; d'utilisation et son interface graphique intuitive. Mais il est possible de soulever le capot (ou plut&#244;t l'interface graphique) et de regarder le moteur de la machine. Ce sont les lignes de commande.&lt;br class='autobr' /&gt;
Pour simplifier, les lignes de commande sont les instructions donn&#233;es lorsque vous cliquez sur une ic&#244;ne. Dans le pr&#233;sent article, vous allez apprendre &#224; vous passer des ic&#244;nes et &#224; donner vous-m&#234;me, directement, ces instructions, au travers du &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Terminal&lt;/code&gt;.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t1-Ouvrir-l-application-Terminal'&gt;1. Ouvrir l'application Terminal&lt;a class='sommaire-back sommaire-back-13' href='#s-t1-Ouvrir-l-application-Terminal' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Il y a trois fa&#231;ons d'acc&#233;der &#224; l'application &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Terminal&lt;/code&gt; :&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Depuis le &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Launchpad&lt;/code&gt;&lt;/strong&gt;, Rechercher &#171; Terminal &#187; et ouvrez l'application.&lt;/li&gt;&lt;li&gt; Vous pouvez aussi appuyez sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Commande&lt;/code&gt; + &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Espace&lt;/code&gt;, tapez &#171; Terminal &#187;, puis appuyez sur &#171; Entr&#233;e &#187; pour ouvrir le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Terminal&lt;/code&gt; &#224; partir de la recherche &lt;strong&gt;Spotlight&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt; Enfin, vous pouvez acc&#233;dez &#224; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Finder&lt;/code&gt;&lt;/strong&gt;&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Applications&lt;/code&gt;&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Utilitaires&lt;/code&gt;&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Terminal&lt;/code&gt; pour lancer le raccourci &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Terminal&lt;/code&gt;.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Pour en savoir plus :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Guide d'utilisation de macOS : &lt;a href=&#034;https://support.apple.com/fr-fr/guide/mac-help/mh35840/mac&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Utiliser le Launchpad pour afficher et ouvrir des apps sur Mac&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://support.apple.com/fr-fr/guide/terminal/welcome/mac&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Guide d'utilisation de Terminal&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&#034;h3&#034; id='t1-1-Qui-suis-je'&gt; 1.1 Qui suis-je ?&lt;a class='sommaire-back sommaire-back-13' href='#s-t1-1-Qui-suis-je' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;En tant qu'&#233;mulateur de terminal, l'application &lt;strong&gt;Terminal&lt;/strong&gt; fournit un acc&#232;s au syst&#232;me d'exploitation en mode texte gr&#226;ce &#224; une interface en ligne de commande et un shell Unix comme zsh (qui est le shell par d&#233;faut). Ces informations vous sont imm&#233;diatement visibles :&lt;/p&gt;
&lt;p&gt;Le titre de la fen&#234;tre de l'application terminal inclu le mot &lt;strong&gt;wsh&lt;/strong&gt; ce qui vous confirme que vous &#234;tes sur le shell wsh. Si vous voulez connaitre la version de wsh que vous utilisez, saisissez la commande suivante suivi de la touche Entr&#233;e :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;zsh --version&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La ligne de commande d&#233;bute par l'indication de l'utilisateur connect&#233; (vous, en l'occurrence) suivi d'un arobase (le caract&#232;re &#171; @ &#187;). Si vous voulez vous faire peur, vous pouvez saisir la commande suivante suivie de la touche Entr&#233;e qui vous permettra de voir tous les comptes utilisateurs (&lt;i&gt;users&lt;/i&gt; en anglais) sur votre ordinateur.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dscacheutil -q user&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t1-2-Qui-est-il'&gt; 1.2 Qui est-il ?&lt;a class='sommaire-back sommaire-back-13' href='#s-t1-2-Qui-est-il' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Saisissez la commande suivante suivie de la touche Entr&#233;e :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;system_profiler SPHardwareDataType&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;La console vous indiquera les r&#233;f&#233;rences du Mac sur lequel il travaille.&lt;/i&gt;&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t2-Regarder-autour-de-soi'&gt;2. Regarder autour de soi&lt;a class='sommaire-back sommaire-back-13' href='#s-t2-Regarder-autour-de-soi' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034; id='t2-1-Regarder-ou-on-est-ce-que-l-on-a'&gt; 2.1 Regarder o&#249; on est ce que l'on a&lt;a class='sommaire-back sommaire-back-13' href='#s-t2-1-Regarder-ou-on-est-ce-que-l-on-a' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;La liste des r&#233;pertoires et des fichiers sera affich&#233;e.&lt;/i&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-2-Voyager'&gt; 2.2 Voyager&lt;a class='sommaire-back sommaire-back-13' href='#s-t2-2-Voyager' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd Documents&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;Si vous avez un r&#233;pertoire Documents, la commande ci-dessus vous permettra de vous y positionner. vous pourrez ensuite regarder son contenu avec la commande &#233;tudi&#233;e pr&#233;c&#233;demment &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls&lt;/code&gt;. &lt;/i&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-3-Revenir'&gt; 2.3 Revenir&lt;a class='sommaire-back sommaire-back-13' href='#s-t2-3-Revenir' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd ..&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;Deux points repr&#233;sentent le dossier parent du dossier actuellement ouvert. &lt;/i&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t2-4-le-fil-d-Ariane'&gt; 2.4 le fil d'Ariane&lt;a class='sommaire-back sommaire-back-13' href='#s-t2-4-le-fil-d-Ariane' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd ~&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;Pour faire un tilde (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~&lt;/code&gt;) avec le clavier fran&#231;ais du Mac, il convient de faire Option N. Ce tilde est comme un &lt;a href=&#034;https://fr.wikipedia.org/wiki/fil_d%27Ariane&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;fil d'Ariane&lt;/a&gt;, il repr&#233;sente le dossier de d&#233;part de l'utilisateur connect&#233;. Vous pouvez l'utiliser pour revenir &#224; ce dossier de d&#233;part o&#249; pour indiquer un chemin depuis ce dossier de d&#233;part.&lt;/i&gt;&lt;/p&gt;
&lt;h2 class=&#034;h2&#034; id='t3-Creer-un-fichier-le-modifier-et-le-visualiser'&gt;3. Cr&#233;er un fichier, le modifier et le visualiser&lt;a class='sommaire-back sommaire-back-13' href='#s-t3-Creer-un-fichier-le-modifier-et-le-visualiser' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034; id='t3-1-Creer-un-fichier'&gt; 3.1 Cr&#233;er un fichier&lt;a class='sommaire-back sommaire-back-13' href='#s-t3-1-Creer-un-fichier' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo 'Une ligne de texte' &gt; mon_texte.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;Un ficher intitul&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mon_texte.txt&lt;/code&gt; sera cr&#233;&#233; dans le r&#233;pertoire courant. Vous pouvez regarder s'il apparait bien dans la liste des r&#233;pertoires et fichiers avec la commande &#233;tudi&#233;e pr&#233;c&#233;demment &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls&lt;/code&gt;. Si votre fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mon_texte.txt&lt;/code&gt; existe, il sera &#233;cras&#233; et un nouveau fichier sera cr&#233;&#233; &#224; sa place.&lt;/i&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t3-2-Ajouter-une-ligne-au-fichier-precedemment-cree'&gt; 3.2 Ajouter une ligne au fichier pr&#233;c&#233;demment cr&#233;&#233;&lt;a class='sommaire-back sommaire-back-13' href='#s-t3-2-Ajouter-une-ligne-au-fichier-precedemment-cree' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo 'Une seconde ligne de texte' &gt;&gt; mon_texte.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;Si le ficher intitul&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mon_texte.txt&lt;/code&gt; n'est pas cr&#233;&#233; dans le r&#233;pertoire courant, il le sera. S'il est d&#233;j&#224; cr&#233;er l'instruction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&gt;&gt;&lt;/code&gt; ajoutera la ligne au fichier existant.&lt;/i&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034; id='t3-3-Voir-le-fichier'&gt; 3.3 Voir le fichier &lt;a class='sommaire-back sommaire-back-13' href='#s-t3-3-Voir-le-fichier' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nano mon_texte.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
ou&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim mon_texte.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
ou&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;open -a TextEdit.app mon_texte.txt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nano&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim&lt;/code&gt; sont des &#233;diteurs en ligne de commande. Ce ne sont pas des &#233;diteurs de texte graphiques, comme &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;TextEdit&lt;/code&gt;. Vous verrez imm&#233;diatement la diff&#233;rence entre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nano&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vim&lt;/code&gt; ; le premier vous dit comment le quitter (par les touches ^X) tandis que le second ne vous le dit pas (Il faudra appuyez sur la touche Esc puis sur ZQ). Le premier est donc parfait pour d&#233;buter mais le second se r&#233;v&#232;lera plus puissant.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Pour en savoir plus :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Guide d'utilisation de Terminal : &lt;a href=&#034;https://support.apple.com/fr-fr/guide/terminal/apdb02f1133-25af-4c65-8976-159609f99817/mac&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Utiliser des &#233;diteurs de texte en ligne de commande dans Terminal sur Mac&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034; id='Conclusion'&gt;Conclusion&lt;a class='sommaire-back sommaire-back-13' href='#s-Conclusion' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le &lt;span class='marque_synper'&gt;SYNPER&lt;/span&gt; donne des formations d'initiation &#224; la programmation. Le pr&#233;sent article accompagne une formation sur les lignes de commande. Un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script shell&lt;/code&gt; est un fichier texte contenant une ou plusieurs commandes UNIX. Vous ex&#233;cutez un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script shell&lt;/code&gt; pour ex&#233;cuter des commandes sans avoir &#224; les saisir dans l'outil de ligne de commande. C'est &lt;a href='https://www.syndicatlibre.org/spip.php?article575' class=&#034;spip_in&#034;&gt;l'&#233;tape suivante&lt;/a&gt; &#224; laquelle vous m&#232;ne cette pr&#233;sente formation...&lt;br class='autobr' /&gt;
N'h&#233;sitez pas &#224; contacter le syndicat, pour y adh&#233;rer et d&#233;couvrir les milles et une activit&#233;s qu'il propose.&lt;br class='autobr' /&gt;
Pour en savoir plus :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; [en] Documentation Archive : &lt;a href=&#034;https://developer.apple.com/library/archive/documentation/OpenSource/Conceptual/ShellScripting/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004268-TP40003516-SW1&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Shell Scripting Primer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
