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

<channel>
	<title>PHP Archives | Clever Cloud</title>
	<atom:link href="https://stagingv6.cleverapps.io/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>From Code to Product</description>
	<lastBuildDate>Wed, 25 Sep 2024 08:02:02 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>PHP Archives | Clever Cloud</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Bilan 2023, perspectives 2024</title>
		<link>https://stagingv6.cleverapps.io/podcast/bilan-2023-perspectives-2024/</link>
					<comments>https://stagingv6.cleverapps.io/podcast/bilan-2023-perspectives-2024/#respond</comments>
		
		<dc:creator><![CDATA[Quentin Adam]]></dc:creator>
		<pubDate>Fri, 02 Feb 2024 07:23:43 +0000</pubDate>
				<category><![CDATA[Chat GPT]]></category>
		<category><![CDATA[ESN]]></category>
		<category><![CDATA[Green Tech]]></category>
		<category><![CDATA[Open AI]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SREN]]></category>
		<guid isPermaLink="false">https://stagingv6.cleverapps.io/?post_type=podcast&#038;p=11637</guid>

					<description><![CDATA[<p><img width="1920" height="1080" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101.jpg 1920w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-300x169.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-1024x576.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-768x432.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-1536x864.jpg 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-1368x770.jpg 1368w" sizes="(max-width: 1920px) 100vw, 1920px" /></p><!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/OtAoUQHkvno" target="_blank" rel="noreferrer noopener">Voir sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p>Animé par Quentin ADAM - @waxzce<br>avec la participation de : <br>Anaïs Vivion - CEO de Beapp et Présidente de French Tech Nantes<br>Denis Germain -  Senior Lead SRE - Deezer - @zwindler<br>Nathan Ménard  - CEO de Drakkar -  @n_menard</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Épisode enregistré le 16 janvier 2024 au Palace de Nantes</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Coordination : Carine GUILLEMET <br>Cadreur : Lucas PARISET <br>Réalisation : Yann BRESSON <br>Moyens Techniques : <a href="https://www.smartmedias.fr" target="_blank" rel="noreferrer noopener">Smartmedias</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>👋  Venez discuter avec nous sur <a href="https://twitter.com/clever_cloudFR" target="_blank" rel="noreferrer noopener">@clever_cloudFR</a> pour nous dire ce que vous avez pensé de ce nouvel épisode.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>➡️  Pour découvrir ou réécouter d’anciens épisodes&nbsp;<a href="https://stagingv6.cleverapps.io/fr/podcast/">c’est par ici</a>&nbsp;!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Chapitrage</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:00:00 Introduction et présentation des invités </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:03:00 Quatre statements (ou presque...)  pour résumer 2023 : 1- on est tous passés au Metavers </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:05:17 : 2- Le feuilleton Open AI </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:05:42 : 3- X / Twitter, c'était mieux avant... </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:09:05 : 4- Tout le monde a compris le projet de loi SREN </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:10:16  Regards croisés sur 2023 : L'essor de ChatGPT et des IA génératives </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:16:00 La course à la rentabilité pour 2024 dans la Tech </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:22:40 GreenTech : L'impact des stratégies numérique responsable </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:28:45 L'innovation de l'année : l'IA - Regards croisés </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:38:24 Souveraineté technologique </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:41:47 Les tendances à venir pour 2024 : La fin des stagiaires ? </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:45:50 2024, l'année Rust </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:48:42 L'IA et Clever ? </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:49:24 Le déclin des ESN </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:51:20 Des robots intelligents </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:52:40 L'IA, un destin comparable à celui des NFT ? </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:54:45 Recrudescence d'incidents de sécurité </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:55:45 Les élections américaines </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:59:10 Le retour de PhP dans le top du WEB </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:00:10 La curation des IA par l'IA </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:02:05 Manipulations de masses avec les élections à venir </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:05:50 Questions / Réponses avec le public - Le désenchantement du software ?</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1920" height="1080" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101.jpg 1920w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-300x169.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-1024x576.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-768x432.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-1536x864.jpg 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/01/101-1368x770.jpg 1368w" sizes="(max-width: 1920px) 100vw, 1920px" /></p><!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/OtAoUQHkvno" target="_blank" rel="noreferrer noopener">Voir sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p>Animé par Quentin ADAM - @waxzce<br>avec la participation de : <br>Anaïs Vivion - CEO de Beapp et Présidente de French Tech Nantes<br>Denis Germain -  Senior Lead SRE - Deezer - @zwindler<br>Nathan Ménard  - CEO de Drakkar -  @n_menard</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Épisode enregistré le 16 janvier 2024 au Palace de Nantes</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Coordination : Carine GUILLEMET <br>Cadreur : Lucas PARISET <br>Réalisation : Yann BRESSON <br>Moyens Techniques : <a href="https://www.smartmedias.fr" target="_blank" rel="noreferrer noopener">Smartmedias</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>👋  Venez discuter avec nous sur <a href="https://twitter.com/clever_cloudFR" target="_blank" rel="noreferrer noopener">@clever_cloudFR</a> pour nous dire ce que vous avez pensé de ce nouvel épisode.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>➡️  Pour découvrir ou réécouter d’anciens épisodes&nbsp;<a href="https://stagingv6.cleverapps.io/fr/podcast/">c’est par ici</a>&nbsp;!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Chapitrage</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:00:00 Introduction et présentation des invités </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:03:00 Quatre statements (ou presque...)  pour résumer 2023 : 1- on est tous passés au Metavers </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:05:17 : 2- Le feuilleton Open AI </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:05:42 : 3- X / Twitter, c'était mieux avant... </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:09:05 : 4- Tout le monde a compris le projet de loi SREN </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:10:16  Regards croisés sur 2023 : L'essor de ChatGPT et des IA génératives </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:16:00 La course à la rentabilité pour 2024 dans la Tech </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:22:40 GreenTech : L'impact des stratégies numérique responsable </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:28:45 L'innovation de l'année : l'IA - Regards croisés </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:38:24 Souveraineté technologique </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:41:47 Les tendances à venir pour 2024 : La fin des stagiaires ? </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:45:50 2024, l'année Rust </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:48:42 L'IA et Clever ? </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:49:24 Le déclin des ESN </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:51:20 Des robots intelligents </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:52:40 L'IA, un destin comparable à celui des NFT ? </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:54:45 Recrudescence d'incidents de sécurité </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:55:45 Les élections américaines </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:59:10 Le retour de PhP dans le top du WEB </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:00:10 La curation des IA par l'IA </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:02:05 Manipulations de masses avec les élections à venir </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:05:50 Questions / Réponses avec le public - Le désenchantement du software ?</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
					<wfw:commentRss>https://stagingv6.cleverapps.io/podcast/bilan-2023-perspectives-2024/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="http://assets.clever-cloud.com/podcast/fr/Message_a_caractere_informatique_101.mp3" length="105011295" type="audio/mpeg" />

			</item>
		<item>
		<title>L&#8217;Oracle s&#8217;ouvre et lance des requêtes encryptées pour déjouer les DDoS</title>
		<link>https://stagingv6.cleverapps.io/podcast/loracle-souvre-et-lance-des-requetes-encryptees-pour-dejouer-les-ddos/</link>
					<comments>https://stagingv6.cleverapps.io/podcast/loracle-souvre-et-lance-des-requetes-encryptees-pour-dejouer-les-ddos/#respond</comments>
		
		<dc:creator><![CDATA[Steven Leroux]]></dc:creator>
		<pubDate>Fri, 27 Oct 2023 06:15:04 +0000</pubDate>
				<category><![CDATA[Chat GPT]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTTP/2]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[PostreSQL]]></category>
		<guid isPermaLink="false">https://stagingv6.cleverapps.io/?post_type=podcast&#038;p=10984</guid>

					<description><![CDATA[<p><img width="1920" height="1080" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/10/94.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="bannière MACI 94" decoding="async" /></p><!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/qVVXsp90aAE">Voir sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p>Animé par Steven Leroux  : @GwinizDu</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>avec la participation de :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Lætita Avrot : l_avrot</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Matthieu Napoli : @matthieunapoli</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>David Le Grand : @davlgd</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Épisode enregistré le 13 octobre 2023 </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>👋  Venez discuter avec nous sur <a href="https://twitter.com/clever_cloudFR" target="_blank" rel="noreferrer noopener">@clever_cloudFR</a> pour nous dire ce que vous avez pensé de ce nouvel épisode.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>➡️  Pour découvrir ou réécouter d’anciens épisodes&nbsp;<a href="https://stagingv6.cleverapps.io/fr/podcast/">c’est par ici</a>&nbsp;!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Chapitrage et liens</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:01:53 Deploy a custom ChatGPT, based on PHP<br><a href="https://stagingv6.cleverapps.io/blog/features/2023/10/11/deploy-a-custom-chatgpt-based-on-php/">https://stagingv6.cleverapps.io/blog/features/2023/10/11/deploy-a-custom-chatgpt-based-on-php/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:03:08 Actu PostgreSQL et Chihuahua Challenge <br><a href="https://youtu.be/kcgdS1g0Z-A?feature=shared
">https://youtu.be/kcgdS1g0Z-A?feature=shared<br></a>00:08:25 Extension full text search pour PostgreSQL<br><a href="https://docs.paradedb.com/blog/introducing_bm25">https://docs.paradedb.com/blog/introducing_bm25</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:09:56 Appel d’offre Oracle de l’éducation nationale… ou du “bon” usage de la souveraineté numérique. <a href="https://www.boamp.fr/pages/avis/?q=idweb:%2223-134796%22">https://www.boamp.fr/pages/avis/?q=idweb:%2223-134796%22</a><br>“Fourniture de licences Oracle ou équivalent et réalisation de prestations de services associées pour les services centraux et déconcentrés des ministères chargés de l'éducation nationale, de la jeunesse (MENJ) et de l'enseignement supérieur, de la recherche (MESR) et des sports et des jeux olympiques et paralympiques (MSJOP) ainsi que des établissements de formation et de recherche.”</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:14:43 retour sur HTTP/2 Rapid Reset Attack <br><a href="https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/">https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:21:57 Encrypted Client Hello dans Firefox<br><a href="https://blog.mozilla.org/en/products/firefox/encrypted-hello/">https://blog.mozilla.org/en/products/firefox/encrypted-hello/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:27:50 retour sur le Forum PHP</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>conf : l’immuabilité m’a sauvé !<br>conf : Bref.sh<br>conf : journalisme vs open source<br>conf PG index wars</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:44:15 La musique de fin : The sound of silence par Disturbed<br><a href="https://www.youtube.com/watch?v=u9Dg-g7t2l4">https://www.youtube.com/watch?v=u9Dg-g7t2l4</a></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1920" height="1080" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/10/94.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="bannière MACI 94" decoding="async" loading="lazy" /></p><!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/qVVXsp90aAE">Voir sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p>Animé par Steven Leroux  : @GwinizDu</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>avec la participation de :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Lætita Avrot : l_avrot</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Matthieu Napoli : @matthieunapoli</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>David Le Grand : @davlgd</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Épisode enregistré le 13 octobre 2023 </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>👋  Venez discuter avec nous sur <a href="https://twitter.com/clever_cloudFR" target="_blank" rel="noreferrer noopener">@clever_cloudFR</a> pour nous dire ce que vous avez pensé de ce nouvel épisode.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>➡️  Pour découvrir ou réécouter d’anciens épisodes&nbsp;<a href="https://stagingv6.cleverapps.io/fr/podcast/">c’est par ici</a>&nbsp;!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Chapitrage et liens</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:01:53 Deploy a custom ChatGPT, based on PHP<br><a href="https://stagingv6.cleverapps.io/blog/features/2023/10/11/deploy-a-custom-chatgpt-based-on-php/">https://stagingv6.cleverapps.io/blog/features/2023/10/11/deploy-a-custom-chatgpt-based-on-php/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:03:08 Actu PostgreSQL et Chihuahua Challenge <br><a href="https://youtu.be/kcgdS1g0Z-A?feature=shared
">https://youtu.be/kcgdS1g0Z-A?feature=shared<br></a>00:08:25 Extension full text search pour PostgreSQL<br><a href="https://docs.paradedb.com/blog/introducing_bm25">https://docs.paradedb.com/blog/introducing_bm25</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:09:56 Appel d’offre Oracle de l’éducation nationale… ou du “bon” usage de la souveraineté numérique. <a href="https://www.boamp.fr/pages/avis/?q=idweb:%2223-134796%22">https://www.boamp.fr/pages/avis/?q=idweb:%2223-134796%22</a><br>“Fourniture de licences Oracle ou équivalent et réalisation de prestations de services associées pour les services centraux et déconcentrés des ministères chargés de l'éducation nationale, de la jeunesse (MENJ) et de l'enseignement supérieur, de la recherche (MESR) et des sports et des jeux olympiques et paralympiques (MSJOP) ainsi que des établissements de formation et de recherche.”</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:14:43 retour sur HTTP/2 Rapid Reset Attack <br><a href="https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/">https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:21:57 Encrypted Client Hello dans Firefox<br><a href="https://blog.mozilla.org/en/products/firefox/encrypted-hello/">https://blog.mozilla.org/en/products/firefox/encrypted-hello/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:27:50 retour sur le Forum PHP</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>conf : l’immuabilité m’a sauvé !<br>conf : Bref.sh<br>conf : journalisme vs open source<br>conf PG index wars</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:44:15 La musique de fin : The sound of silence par Disturbed<br><a href="https://www.youtube.com/watch?v=u9Dg-g7t2l4">https://www.youtube.com/watch?v=u9Dg-g7t2l4</a></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
					<wfw:commentRss>https://stagingv6.cleverapps.io/podcast/loracle-souvre-et-lance-des-requetes-encryptees-pour-dejouer-les-ddos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="http://assets.clever-cloud.com/podcast/fr/Message_a_caractere_informatique_94.mp3" length="241" type="audio/mpeg" />

			</item>
		<item>
		<title>Deploy a custom ChatGPT, based on PHP</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2023/10/11/deploy-a-custom-chatgpt-based-on-php/</link>
		
		<dc:creator><![CDATA[David Legrand]]></dc:creator>
		<pubDate>Wed, 11 Oct 2023 07:30:48 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://stagingv6.cleverapps.io/?p=10621</guid>

					<description><![CDATA[<p><img width="573" height="266" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/10/2.svg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="bannier Chatgpt with PHP" decoding="async" loading="lazy" /></p><!-- wp:paragraph -->
<p><strong>Since last year, OpenAI has been in the news with its large language models (LLM), notably GPT-3.5 and GPT-4, available through ChatGPT. But you can also include them within your own applications thanks to an API. Here's an example of how you can take advantage of it on Clever Cloud.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We'll use the open source <a href="https://github.com/unconv/chat-wtf" target="_blank" rel="noreferrer noopener">chat-wtf</a> project, created by Unconventional Coding, who detailed the conception stages in <a href="https://www.youtube.com/watch?v=0FUz4CtalhY" target="_blank" rel="noreferrer noopener">a series of videos</a>. It is primarily based on <a href="https://stagingv6.cleverapps.io/product/mysql/">the PHP language</a>  and data storage via sessions, SQLite or <a href="https://stagingv6.cleverapps.io/fr/product/mysql-a-traduire-en-fr/">MySQL</a>, according to user choice. </p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">An open-source ChatGPT, you can use on demand</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>It requires you to use <a href="https://platform.openai.com/overview" target="_blank" rel="noreferrer noopener">the OpenAI API</a>, but you may look at compatible models if you're more daring. The settings file also allows you to specify a "system message". So, you can provide the AI with informations about you or your expectations, which it should take into consideration when answering your questions.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This PHP application has not been developed in any particular way for Clever Cloud, but you can host it on our infrastructure in just a few minutes, configure it according to your needs, stop and start it on demand. Here's how.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li><a href="https://api.clever-cloud.com/v2/session/signup">Create a Clever Cloud account</a>&nbsp;(and get 20 euros in credits)</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>To get started, you'll need a Clever Cloud account and an OpenAI API key. You can create the application and follow this tutorial using our web interface, <a href="https://console.clever-cloud.com/">the Console</a>, but also through our open source CLI: <a href="https://github.com/CleverCloud/clever-tools" target="_blank" rel="noreferrer noopener">Clever Tools</a>. That's what we'll describe below.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Getting the code and configuration</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We'll assume that your machine is running <a href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git" target="_blank" rel="noreferrer noopener">git</a> and a recent version of <a href="https://nodejs.dev/en/learn/how-to-install-nodejs/" target="_blank" rel="noreferrer noopener">Node.js</a>. If you haven't yet installed Clever Tools on your system, type (with system administrator rights, or <code>sudo</code> if necessary):</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">npm i -g clever-tools
clever login</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Once logged in, you can check that everything has gone smoothly with the following command:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever profile</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Then you can create a fork of chat-wtf that can be deployed on Clever Cloud from your GitHub account. In this guide, we'll clone the repository locally and create a Clever Cloud application in it. A remote required for its deployment will be automatically added:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">git clone https://github.com/unconv/chat-wtf.git && cd chat-wtf
clever create -t php chat-wtf</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Thus, you have a local copy of the latest version of the chat-wtf application, which you can configure to match your needs. Rename <code>settings.sample.php</code> to <code>settings.php</code>. We'll start with some minor modifications.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Put in the following content to use environment variables:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-php">&#x3C;?php
return [
    &#x22;api_key&#x22; =&#x3E; getenv("OPENAI_API_KEY"),
    &#x22;system_message&#x22; =&#x3E; getenv("SYSTEM_MESSAGE"),
    &#x22;model&#x22; =&#x3E; &#x22;gpt-3.5-turbo&#x22;,
    &#x22;base_uri&#x22; =&#x3E; &#x22;&#x22;,
    &#x22;storage_type&#x22; =&#x3E; &#x22;session&#x22;,
];</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Edit the <code>.gitignore</code> file and remove <code>settings.php</code> so that it can be deployed with your application. Now that it's configured, you only need to set the environment variables required to ensure it works properly, and then deploy. Note that it runs on PHP 8.x. We'll be using the 8.2 branch:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever env set CC_PHP_VERSION "8.2"
clever env set OPENAI_API_KEY "Your OpenAI API key"
clever env set SYSTEM_MESSAGE "Your system message"
git add . && git commit -m "First deploy"
clever deploy && clever open</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Once the environment variables have been set, we perform a simple Git Push. The application is then deployed on Clever Cloud, an archive is created to ease its redeployment, and if all has gone well, it's opened in your browser:</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":10576,"sizeSlug":"full","linkDestination":"media"} -->
<figure class="wp-block-image aligncenter size-full"><a href="https://cdn.clever-cloud.com/uploads/2023/10/image-2.png" target="_blank" rel="noreferrer noopener"><img src="https://cdn.clever-cloud.com/uploads/2023/10/image-2.png" alt="Chat WTF on Clever Cloud" class="wp-image-10576"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>As with any application hosted within our service, you can simply assign it a domain that will benefit from our <a href="https://www.sozu.io/" target="_blank" rel="noreferrer noopener">Sōzu</a> load balancer and a Let's Encrypt certificate, get its status and activity, stop or restart it. </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://console.clever-cloud.com">The Console</a> provides metrics and links to a Grafana dashboard to monitor its status. You can also adjust the size of the instance or activate auto-scalability to handle different load levels:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever console

clever domain
clever domain add domain.tld

clever status
clever activity

clever scale --min-instances 1 --max-instances 4 --min-flavor pico --max-flavor M
clever scale --instances 1 --flavor pico

clever restart
clever stop</code></pre>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Let's add a database to our chat-wtf instance</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>As mentioned previously, this project can store its data within PHP sessions, but also via SQLite or MySQL. In this example, we'll opt for the latter to show you how it can be done, in a very simple way.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>First, let's create a MySQL database within your Clever Cloud account, linking it directly to your application. By default it's a DEV instance, shared and free, but you can request <a href="https://stagingv6.cleverapps.io/pricing/">a larger plan</a> if needed:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever addon create mysql-addon chat-wtf-mysql --link chat-wtf</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>This "link" allows connection parameters to be injected directly into the application using environment variables. These are visible in the Console or via Clever Tools :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever env</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Thus, all you need is to modify the <code>settings.php</code> file as follows to use it:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-php">    &#x22;storage_type&#x22; =&#x3E; &#x22;sql&#x22;,
    &#x22;db&#x22; =&#x3E; [
        &#x22;dsn&#x22; =&#x3E; &#x22;mysql:host=&#x22; . getenv(&#x27;MYSQL_ADDON_HOST&#x27;) . &#x22;;
                    port=&#x22; . getenv(&#x27;MYSQL_ADDON_PORT&#x27;) . &#x22;;
                    dbname=&#x22; . getenv(&#x27;MYSQL_ADDON_DB&#x27;),
        &#x22;username&#x22; =&#x3E; getenv(&#x27;MYSQL_ADDON_USER&#x27;),
        &#x22;password&#x22; =&#x3E; getenv(&#x27;MYSQL_ADDON_PASSWORD&#x27;),
    ],</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Then go to the MySQL database dashboard, accessible in the Console. You'll find a link to its PHPMyAdmin interface. Click on the database name in the left-hand menu, then you'll get to the import function. This will enable you to initiate the DB structure by importing the <code>mysql.sql</code> file located in the repository's db folder. Set its location and click on "Import". You're done:</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":10570,"sizeSlug":"full","linkDestination":"media"} -->
<figure class="wp-block-image size-full"><a href="https://cdn.clever-cloud.com/uploads/2023/10/image.png" target="_blank" rel="noreferrer noopener"><img src="https://cdn.clever-cloud.com/uploads/2023/10/image.png" alt="MySQL Import" class="wp-image-10570"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>You can also do this via a Shell script that checks if the database is empty, and import the default data if necessary. Create a file named <code>init.sh</code> with this code:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">SSE="SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='$MYSQL_ADDON_DB';"
PARAMS="-u $MYSQL_ADDON_USER -h $MYSQL_ADDON_HOST -P $MYSQL_ADDON_PORT -D $MYSQL_ADDON_DB"

TABLE_COUNT=$(MYSQL_PWD=$MYSQL_ADDON_PASSWORD mysql $PARAMS -sse"$SSE")

if [ "$TABLE_COUNT" -eq 0 ]; then
  echo "Database is empty, we fill it with the default data."
  MYSQL_PWD=$MYSQL_ADDON_PASSWORD mysql $PARAMS < db/mysql.sql 
  
else
  echo "Database contains $TABLE_COUNT tables."
fi

rm init.sh</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>You'll need to run it during application deployment :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever env set CC_PRE_BUILD_HOOK "bash init.sh"</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>All that you remains to do is redeploy your application, which will now use the MySQL database to store its data rather than PHP sessions:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">git add settings.php && git commit -m "Add MySQL support"
clever deploy && clever open</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>If this doesn't work, check errors in your instance logs on the Console or via :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever logs</code></pre>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Want to find out more?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>To discover in greater detail the hosting PHP applications on Clever Cloud or <a href="https://stagingv6.cleverapps.io/product/">our managed database services</a>, come and meet us at the PHP Forum from October 12 to 13 at Disneyland Paris. We'll also be exhibiting at Devoxx Maroc and Volcamp:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li><a href="https://stagingv6.cleverapps.io/blog/company/2023/09/26/back-to-work-events-for-clever-cloud/">Back-to-work events for Clever Cloud</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->]]></description>
										<content:encoded><![CDATA[<p><img width="573" height="266" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/10/2.svg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="bannier Chatgpt with PHP" decoding="async" loading="lazy" /></p><!-- wp:paragraph -->
<p><strong>Since last year, OpenAI has been in the news with its large language models (LLM), notably GPT-3.5 and GPT-4, available through ChatGPT. But you can also include them within your own applications thanks to an API. Here's an example of how you can take advantage of it on Clever Cloud.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We'll use the open source <a href="https://github.com/unconv/chat-wtf" target="_blank" rel="noreferrer noopener">chat-wtf</a> project, created by Unconventional Coding, who detailed the conception stages in <a href="https://www.youtube.com/watch?v=0FUz4CtalhY" target="_blank" rel="noreferrer noopener">a series of videos</a>. It is primarily based on <a href="https://stagingv6.cleverapps.io/product/mysql/">the PHP language</a>  and data storage via sessions, SQLite or <a href="https://stagingv6.cleverapps.io/fr/product/mysql-a-traduire-en-fr/">MySQL</a>, according to user choice. </p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">An open-source ChatGPT, you can use on demand</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>It requires you to use <a href="https://platform.openai.com/overview" target="_blank" rel="noreferrer noopener">the OpenAI API</a>, but you may look at compatible models if you're more daring. The settings file also allows you to specify a "system message". So, you can provide the AI with informations about you or your expectations, which it should take into consideration when answering your questions.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This PHP application has not been developed in any particular way for Clever Cloud, but you can host it on our infrastructure in just a few minutes, configure it according to your needs, stop and start it on demand. Here's how.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li><a href="https://api.clever-cloud.com/v2/session/signup">Create a Clever Cloud account</a>&nbsp;(and get 20 euros in credits)</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>To get started, you'll need a Clever Cloud account and an OpenAI API key. You can create the application and follow this tutorial using our web interface, <a href="https://console.clever-cloud.com/">the Console</a>, but also through our open source CLI: <a href="https://github.com/CleverCloud/clever-tools" target="_blank" rel="noreferrer noopener">Clever Tools</a>. That's what we'll describe below.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Getting the code and configuration</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We'll assume that your machine is running <a href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git" target="_blank" rel="noreferrer noopener">git</a> and a recent version of <a href="https://nodejs.dev/en/learn/how-to-install-nodejs/" target="_blank" rel="noreferrer noopener">Node.js</a>. If you haven't yet installed Clever Tools on your system, type (with system administrator rights, or <code>sudo</code> if necessary):</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">npm i -g clever-tools
clever login</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Once logged in, you can check that everything has gone smoothly with the following command:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever profile</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Then you can create a fork of chat-wtf that can be deployed on Clever Cloud from your GitHub account. In this guide, we'll clone the repository locally and create a Clever Cloud application in it. A remote required for its deployment will be automatically added:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">git clone https://github.com/unconv/chat-wtf.git && cd chat-wtf
clever create -t php chat-wtf</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Thus, you have a local copy of the latest version of the chat-wtf application, which you can configure to match your needs. Rename <code>settings.sample.php</code> to <code>settings.php</code>. We'll start with some minor modifications.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Put in the following content to use environment variables:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-php">&#x3C;?php
return [
    &#x22;api_key&#x22; =&#x3E; getenv("OPENAI_API_KEY"),
    &#x22;system_message&#x22; =&#x3E; getenv("SYSTEM_MESSAGE"),
    &#x22;model&#x22; =&#x3E; &#x22;gpt-3.5-turbo&#x22;,
    &#x22;base_uri&#x22; =&#x3E; &#x22;&#x22;,
    &#x22;storage_type&#x22; =&#x3E; &#x22;session&#x22;,
];</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Edit the <code>.gitignore</code> file and remove <code>settings.php</code> so that it can be deployed with your application. Now that it's configured, you only need to set the environment variables required to ensure it works properly, and then deploy. Note that it runs on PHP 8.x. We'll be using the 8.2 branch:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever env set CC_PHP_VERSION "8.2"
clever env set OPENAI_API_KEY "Your OpenAI API key"
clever env set SYSTEM_MESSAGE "Your system message"
git add . && git commit -m "First deploy"
clever deploy && clever open</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Once the environment variables have been set, we perform a simple Git Push. The application is then deployed on Clever Cloud, an archive is created to ease its redeployment, and if all has gone well, it's opened in your browser:</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":10576,"sizeSlug":"full","linkDestination":"media"} -->
<figure class="wp-block-image aligncenter size-full"><a href="https://cdn.clever-cloud.com/uploads/2023/10/image-2.png" target="_blank" rel="noreferrer noopener"><img src="https://cdn.clever-cloud.com/uploads/2023/10/image-2.png" alt="Chat WTF on Clever Cloud" class="wp-image-10576"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>As with any application hosted within our service, you can simply assign it a domain that will benefit from our <a href="https://www.sozu.io/" target="_blank" rel="noreferrer noopener">Sōzu</a> load balancer and a Let's Encrypt certificate, get its status and activity, stop or restart it. </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://console.clever-cloud.com">The Console</a> provides metrics and links to a Grafana dashboard to monitor its status. You can also adjust the size of the instance or activate auto-scalability to handle different load levels:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever console

clever domain
clever domain add domain.tld

clever status
clever activity

clever scale --min-instances 1 --max-instances 4 --min-flavor pico --max-flavor M
clever scale --instances 1 --flavor pico

clever restart
clever stop</code></pre>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Let's add a database to our chat-wtf instance</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>As mentioned previously, this project can store its data within PHP sessions, but also via SQLite or MySQL. In this example, we'll opt for the latter to show you how it can be done, in a very simple way.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>First, let's create a MySQL database within your Clever Cloud account, linking it directly to your application. By default it's a DEV instance, shared and free, but you can request <a href="https://stagingv6.cleverapps.io/pricing/">a larger plan</a> if needed:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever addon create mysql-addon chat-wtf-mysql --link chat-wtf</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>This "link" allows connection parameters to be injected directly into the application using environment variables. These are visible in the Console or via Clever Tools :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever env</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Thus, all you need is to modify the <code>settings.php</code> file as follows to use it:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-php">    &#x22;storage_type&#x22; =&#x3E; &#x22;sql&#x22;,
    &#x22;db&#x22; =&#x3E; [
        &#x22;dsn&#x22; =&#x3E; &#x22;mysql:host=&#x22; . getenv(&#x27;MYSQL_ADDON_HOST&#x27;) . &#x22;;
                    port=&#x22; . getenv(&#x27;MYSQL_ADDON_PORT&#x27;) . &#x22;;
                    dbname=&#x22; . getenv(&#x27;MYSQL_ADDON_DB&#x27;),
        &#x22;username&#x22; =&#x3E; getenv(&#x27;MYSQL_ADDON_USER&#x27;),
        &#x22;password&#x22; =&#x3E; getenv(&#x27;MYSQL_ADDON_PASSWORD&#x27;),
    ],</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Then go to the MySQL database dashboard, accessible in the Console. You'll find a link to its PHPMyAdmin interface. Click on the database name in the left-hand menu, then you'll get to the import function. This will enable you to initiate the DB structure by importing the <code>mysql.sql</code> file located in the repository's db folder. Set its location and click on "Import". You're done:</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":10570,"sizeSlug":"full","linkDestination":"media"} -->
<figure class="wp-block-image size-full"><a href="https://cdn.clever-cloud.com/uploads/2023/10/image.png" target="_blank" rel="noreferrer noopener"><img src="https://cdn.clever-cloud.com/uploads/2023/10/image.png" alt="MySQL Import" class="wp-image-10570"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>You can also do this via a Shell script that checks if the database is empty, and import the default data if necessary. Create a file named <code>init.sh</code> with this code:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">SSE="SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='$MYSQL_ADDON_DB';"
PARAMS="-u $MYSQL_ADDON_USER -h $MYSQL_ADDON_HOST -P $MYSQL_ADDON_PORT -D $MYSQL_ADDON_DB"

TABLE_COUNT=$(MYSQL_PWD=$MYSQL_ADDON_PASSWORD mysql $PARAMS -sse"$SSE")

if [ "$TABLE_COUNT" -eq 0 ]; then
  echo "Database is empty, we fill it with the default data."
  MYSQL_PWD=$MYSQL_ADDON_PASSWORD mysql $PARAMS < db/mysql.sql 
  
else
  echo "Database contains $TABLE_COUNT tables."
fi

rm init.sh</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>You'll need to run it during application deployment :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever env set CC_PRE_BUILD_HOOK "bash init.sh"</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>All that you remains to do is redeploy your application, which will now use the MySQL database to store its data rather than PHP sessions:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">git add settings.php && git commit -m "Add MySQL support"
clever deploy && clever open</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>If this doesn't work, check errors in your instance logs on the Console or via :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever logs</code></pre>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Want to find out more?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>To discover in greater detail the hosting PHP applications on Clever Cloud or <a href="https://stagingv6.cleverapps.io/product/">our managed database services</a>, come and meet us at the PHP Forum from October 12 to 13 at Disneyland Paris. We'll also be exhibiting at Devoxx Maroc and Volcamp:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li><a href="https://stagingv6.cleverapps.io/blog/company/2023/09/26/back-to-work-events-for-clever-cloud/">Back-to-work events for Clever Cloud</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#78 Les DPU challengent l’avatar de l’IA en PHP au karaoké du CES</title>
		<link>https://stagingv6.cleverapps.io/podcast/78-les-dpu-challengent-lavatar-de-lia-en-php-au-karaoke-du-ces/</link>
		
		<dc:creator><![CDATA[Quentin Adam]]></dc:creator>
		<pubDate>Fri, 13 Jan 2023 16:12:17 +0000</pubDate>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[CES]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ReEnchanterInternet]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[Slack]]></category>
		<category><![CDATA[VLC]]></category>
		<guid isPermaLink="false">https://stagingv6.cleverapps.io/?post_type=podcast&#038;p=7728</guid>

					<description><![CDATA[<p><img width="1920" height="1080" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="vignette_ep_78" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1.jpg 1920w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-300x169.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-1024x576.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-768x432.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-1536x864.jpg 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-1368x770.jpg 1368w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p><!-- wp:gallery {"columns":4,"linkTo":"none"} -->
<figure class="wp-block-gallery has-nested-images columns-4 is-cropped"><!-- wp:image {"id":722,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2021/03/quentin-adam-447x447.jpg" alt="quentin_adam" class="wp-image-722"/><figcaption class="wp-element-caption">Quentin Adam</figcaption></figure>
<!-- /wp:image -->

<!-- wp:image {"id":5861,"sizeSlug":"full","linkDestination":"none","className":"is-style-default"} -->
<figure class="wp-block-image size-full is-style-default"><img src="https://cdn.clever-cloud.com/uploads/2022/03/david.jpg" alt="david_legrand" class="wp-image-5861"/><figcaption class="wp-element-caption">David Legrand</figcaption></figure>
<!-- /wp:image -->

<!-- wp:image {"id":7734,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2023/01/jean-baptistekempfvlc-447x447.jpg" alt="Jean-Baptiste_Kempf" class="wp-image-7734"/><figcaption class="wp-element-caption">Jean-Baptiste Kempf</figcaption></figure>
<!-- /wp:image --></figure>
<!-- /wp:gallery -->

<!-- wp:paragraph -->
<p>Dans ce premier épisode de l'année nous parlons de DPU, de la fin de C++ dans Zig, de PhP 8.2, de failles de sécurité dans Circle CI et leak autour de Slack, de VLC (et de son avatar) de Chat GPT, d'Apple Sing, avant de prendre des news du CES le tout avant d'ambiancer le dancefloor en musique !</p>
<!-- /wp:paragraph -->

<!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button {"fontSize":"small"} -->
<div class="wp-block-button has-custom-font-size has-small-font-size"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/vK1w1tA4aiw" target="_blank" rel="noreferrer noopener">Regarder sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p>👋  Venez discuter avec nous sur <a href="https://twitter.com/clever_cloudFR" target="_blank" rel="noreferrer noopener">@clever_cloudFR</a> pour nous dire ce que vous avez pensé de ce nouvel épisode.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>➡️  Pour découvrir ou réécouter d’anciens épisodes&nbsp;<a href="https://stagingv6.cleverapps.io/fr/podcast/">c’est par ici</a>&nbsp;!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Timecode &amp; Liens</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:00:00 Générique<br>00:00:16 Présentation des invités<br>00:02:43 Karlay DPU<br><a href="https://www.phoronix.com/news/Kalray-KVX-Linux-Port" target="_blank" rel="noreferrer noopener">https://www.phoronix.com/news/Kalray-KVX-Linux-Port<br></a><a href="https://twitter.com/phoronix/status/1610392808137035776" target="_blank" rel="noreferrer noopener">https://twitter.com/phoronix/status/1610392808137035776</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:05:10 Fin de l'implémentation de C++ de Zig &amp; point Rust<br><a href="https://ziglang.org/news/goodbye-cpp/
">https://ziglang.org/news/goodbye-cpp/<br></a><a href="https://google.github.io/comprehensive-rust/" target="_blank" rel="noreferrer noopener">https://google.github.io/comprehensive-rust/<br></a><a href="https://lafor.ge/ le blog de Akanoa" target="_blank" rel="noreferrer noopener">https://lafor.ge/ le blog de Akanoa<br></a><a href="https://napi.rs/" target="_blank" rel="noreferrer noopener">https://napi.rs/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:17:44 PHP 8.2<br><a href="https://www.php.net/index.php#2022-12-08-1" target="_blank" rel="noreferrer noopener">https://www.php.net/index.php#2022-12-08-1</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:24:42 Alerte sécurité Circle CI<br><a href="https://circleci.com/blog/january-4-2023-security-alert/" target="_blank" rel="noreferrer noopener">https://circleci.com/blog/january-4-2023-security-alert/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:25:24 Slack<br><a href="https://www.bleepingcomputer.com/news/security/slacks-private-github-code-repositories-stolen-over-holidays/" target="_blank" rel="noreferrer noopener">https://www.bleepingcomputer.com/news/security/slacks-private-github-code-repositories-stolen-over-holidays/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:26:30 VLC<br>00:29:37 Et si on parlait d'Avatar 2 ? LOL</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:34:48 ChatGPT<br><a href="https://www.freethink.com/robots-ai/using-chatgpt?utm_source=tldrnewsletter" target="_blank" rel="noreferrer noopener">https://www.freethink.com/robots-ai/using-chatgpt?utm_source=tldrnewsletter<br></a><a href="https://siliconangle.com/2023/01/05/openai-startup-behind-chatgpt-discusses-tender-offer-value-29b/?utm_source=tldrnewsletter" target="_blank" rel="noreferrer noopener">https://siliconangle.com/2023/01/05/openai-startup-behind-chatgpt-discusses-tender-offer-value-29b/?utm_source=tldrnewsletter</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:53:24 Apple SIng<br><a href="https://www.apple.com/fr/newsroom/2022/12/apple-introduces-apple-music-sing/" target="_blank" rel="noreferrer noopener">https://www.apple.com/fr/newsroom/2022/12/apple-introduces-apple-music-sing/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:55:52 News CES<br>GeForce RTX 4080 dans GeForce Now :<br><a href="https://nvidianews.nvidia.com/news/nvidia-brings-rtx-4080-to-geforce-now
">https://nvidianews.nvidia.com/news/nvidia-brings-rtx-4080-to-geforce-now<br></a>Maxine<br><a href="https://developer.nvidia.com/blog/new-maxine-microservices-enhance-real-time-audio-and-video-effects-for-video-conferences-at-scale/
">https://developer.nvidia.com/blog/new-maxine-microservices-enhance-real-time-audio-and-video-effects-for-video-conferences-at-scale/<br></a><a href="https://www.youtube.com/watch?v=O50BkP16eZo&amp;feature=youtu.be
">https://www.youtube.com/watch?v=O50BkP16eZo&amp;feature=youtu.be<br></a>QNAP<br><a href="https://www.qnap.com/en/news/2023/qnaps-2023-nas-solutions-are-smarter-and-faster-with-hot-swappable-e1-s-nvme-ssds-npu-equipped-8-core-chipand-much-more" target="_blank" rel="noreferrer noopener">https://www.qnap.com/en/news/2023/qnaps-2023-nas-solutions-are-smarter-and-faster-with-hot-swappable-e1-s-nvme-ssds-npu-equipped-8-core-chipand-much-more</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:02:43 #ReEnchanterInternet Fadhila Brahimi, Nicolas Celić, Damien Douani, Emilie Marquois et Anthony Poncier accueille dans “Toutes Choses Digitales Par Ailleurs” #TCDPA<br><a href="https://www.youtube.com/watch?v=8Mi22wvpJPU" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=8Mi22wvpJPU</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:03:53 Musique de fin Vera - Take Me to the Bridge - Blue Image Music<br><a href="https://www.youtube.com/watch?v=i9kQwAvtShQ" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=i9kQwAvtShQ</a></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1920" height="1080" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="vignette_ep_78" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1.jpg 1920w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-300x169.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-1024x576.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-768x432.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-1536x864.jpg 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/01/78-1-1368x770.jpg 1368w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p><!-- wp:gallery {"columns":4,"linkTo":"none"} -->
<figure class="wp-block-gallery has-nested-images columns-4 is-cropped"><!-- wp:image {"id":722,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2021/03/quentin-adam-447x447.jpg" alt="quentin_adam" class="wp-image-722"/><figcaption class="wp-element-caption">Quentin Adam</figcaption></figure>
<!-- /wp:image -->

<!-- wp:image {"id":5861,"sizeSlug":"full","linkDestination":"none","className":"is-style-default"} -->
<figure class="wp-block-image size-full is-style-default"><img src="https://cdn.clever-cloud.com/uploads/2022/03/david.jpg" alt="david_legrand" class="wp-image-5861"/><figcaption class="wp-element-caption">David Legrand</figcaption></figure>
<!-- /wp:image -->

<!-- wp:image {"id":7734,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2023/01/jean-baptistekempfvlc-447x447.jpg" alt="Jean-Baptiste_Kempf" class="wp-image-7734"/><figcaption class="wp-element-caption">Jean-Baptiste Kempf</figcaption></figure>
<!-- /wp:image --></figure>
<!-- /wp:gallery -->

<!-- wp:paragraph -->
<p>Dans ce premier épisode de l'année nous parlons de DPU, de la fin de C++ dans Zig, de PhP 8.2, de failles de sécurité dans Circle CI et leak autour de Slack, de VLC (et de son avatar) de Chat GPT, d'Apple Sing, avant de prendre des news du CES le tout avant d'ambiancer le dancefloor en musique !</p>
<!-- /wp:paragraph -->

<!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button {"fontSize":"small"} -->
<div class="wp-block-button has-custom-font-size has-small-font-size"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/vK1w1tA4aiw" target="_blank" rel="noreferrer noopener">Regarder sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p>👋  Venez discuter avec nous sur <a href="https://twitter.com/clever_cloudFR" target="_blank" rel="noreferrer noopener">@clever_cloudFR</a> pour nous dire ce que vous avez pensé de ce nouvel épisode.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>➡️  Pour découvrir ou réécouter d’anciens épisodes&nbsp;<a href="https://stagingv6.cleverapps.io/fr/podcast/">c’est par ici</a>&nbsp;!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Timecode &amp; Liens</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:00:00 Générique<br>00:00:16 Présentation des invités<br>00:02:43 Karlay DPU<br><a href="https://www.phoronix.com/news/Kalray-KVX-Linux-Port" target="_blank" rel="noreferrer noopener">https://www.phoronix.com/news/Kalray-KVX-Linux-Port<br></a><a href="https://twitter.com/phoronix/status/1610392808137035776" target="_blank" rel="noreferrer noopener">https://twitter.com/phoronix/status/1610392808137035776</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:05:10 Fin de l'implémentation de C++ de Zig &amp; point Rust<br><a href="https://ziglang.org/news/goodbye-cpp/
">https://ziglang.org/news/goodbye-cpp/<br></a><a href="https://google.github.io/comprehensive-rust/" target="_blank" rel="noreferrer noopener">https://google.github.io/comprehensive-rust/<br></a><a href="https://lafor.ge/ le blog de Akanoa" target="_blank" rel="noreferrer noopener">https://lafor.ge/ le blog de Akanoa<br></a><a href="https://napi.rs/" target="_blank" rel="noreferrer noopener">https://napi.rs/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:17:44 PHP 8.2<br><a href="https://www.php.net/index.php#2022-12-08-1" target="_blank" rel="noreferrer noopener">https://www.php.net/index.php#2022-12-08-1</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:24:42 Alerte sécurité Circle CI<br><a href="https://circleci.com/blog/january-4-2023-security-alert/" target="_blank" rel="noreferrer noopener">https://circleci.com/blog/january-4-2023-security-alert/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:25:24 Slack<br><a href="https://www.bleepingcomputer.com/news/security/slacks-private-github-code-repositories-stolen-over-holidays/" target="_blank" rel="noreferrer noopener">https://www.bleepingcomputer.com/news/security/slacks-private-github-code-repositories-stolen-over-holidays/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:26:30 VLC<br>00:29:37 Et si on parlait d'Avatar 2 ? LOL</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:34:48 ChatGPT<br><a href="https://www.freethink.com/robots-ai/using-chatgpt?utm_source=tldrnewsletter" target="_blank" rel="noreferrer noopener">https://www.freethink.com/robots-ai/using-chatgpt?utm_source=tldrnewsletter<br></a><a href="https://siliconangle.com/2023/01/05/openai-startup-behind-chatgpt-discusses-tender-offer-value-29b/?utm_source=tldrnewsletter" target="_blank" rel="noreferrer noopener">https://siliconangle.com/2023/01/05/openai-startup-behind-chatgpt-discusses-tender-offer-value-29b/?utm_source=tldrnewsletter</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:53:24 Apple SIng<br><a href="https://www.apple.com/fr/newsroom/2022/12/apple-introduces-apple-music-sing/" target="_blank" rel="noreferrer noopener">https://www.apple.com/fr/newsroom/2022/12/apple-introduces-apple-music-sing/</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:55:52 News CES<br>GeForce RTX 4080 dans GeForce Now :<br><a href="https://nvidianews.nvidia.com/news/nvidia-brings-rtx-4080-to-geforce-now
">https://nvidianews.nvidia.com/news/nvidia-brings-rtx-4080-to-geforce-now<br></a>Maxine<br><a href="https://developer.nvidia.com/blog/new-maxine-microservices-enhance-real-time-audio-and-video-effects-for-video-conferences-at-scale/
">https://developer.nvidia.com/blog/new-maxine-microservices-enhance-real-time-audio-and-video-effects-for-video-conferences-at-scale/<br></a><a href="https://www.youtube.com/watch?v=O50BkP16eZo&amp;feature=youtu.be
">https://www.youtube.com/watch?v=O50BkP16eZo&amp;feature=youtu.be<br></a>QNAP<br><a href="https://www.qnap.com/en/news/2023/qnaps-2023-nas-solutions-are-smarter-and-faster-with-hot-swappable-e1-s-nvme-ssds-npu-equipped-8-core-chipand-much-more" target="_blank" rel="noreferrer noopener">https://www.qnap.com/en/news/2023/qnaps-2023-nas-solutions-are-smarter-and-faster-with-hot-swappable-e1-s-nvme-ssds-npu-equipped-8-core-chipand-much-more</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:02:43 #ReEnchanterInternet Fadhila Brahimi, Nicolas Celić, Damien Douani, Emilie Marquois et Anthony Poncier accueille dans “Toutes Choses Digitales Par Ailleurs” #TCDPA<br><a href="https://www.youtube.com/watch?v=8Mi22wvpJPU" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=8Mi22wvpJPU</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>01:03:53 Musique de fin Vera - Take Me to the Bridge - Blue Image Music<br><a href="https://www.youtube.com/watch?v=i9kQwAvtShQ" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=i9kQwAvtShQ</a></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		<enclosure url="http://assets.clever-cloud.com/podcast/fr/Message_a_caractere_informatique_78.mp3" length="92722482" type="audio/mpeg" />

			</item>
		<item>
		<title>Mautic on Clever Cloud</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2018/05/24/deploying-mautic-on-clever-cloud/</link>
		
		<dc:creator><![CDATA[Corentin Cailleaud]]></dc:creator>
		<pubDate>Thu, 24 May 2018 13:50:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2018/05/24/deploying-mautic-on-clever-cloud/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Changes about data privacy are rippling out worldwide, because of the new law from Europe: the GDPR.</p>
<p>Set to take effect on May 25th of this year, this new law restricts the data that companies can collect, and more specifically, how to store and use these data. So, before using any SaaS tool for marketing, sales or analytics, we have to take a step back, and think about the impact this new tool can have on your <a href="https://github.com/privacyradius/gdpr-checklist" title="External GitHub link ">GDPR data compliance checkist</a>. Open source and self-hosted tools like Mautic significantly reduce the complexity of your compliance checklist (they also have a <a href="https://www.mautic.org/blog/marketer/mautic-and-gdpr/" title="mautic post about GDPR">great post about it</a>).</p>
<p>Mautic provides free and open source marketing automation software available to everyone; free email marketing software, lead management software and more.</p>
<p>This post is about how you can deploy step by step your own Mautic server on Clever Cloud (within a Europe-only zone) using Git.</p>
<span id="more-2935"></span>

<h2 id="requirements">Requirements</h2>
<p>If you haven&#39;t done it yet, download the archive <a href="https://www.mautic.org/download">here</a> and unzip it in an empty directory.</p>
<p>Then, create a PHP application linked with a MySQL add-on from the <a href="https://console.clever-cloud.com">Clever Cloud Console</a> or directly from you terminal using the <a href="https://stagingv6.cleverapps.io/doc/clever-tools/getting_started/">Clever Cloud CLI</a>:</p>
<pre><code class="language-bash">$ clever create --type php mautic-php --alias production
</code></pre>
<pre><code class="language-bash">$ # For MySQL, let&#39;s show available plans:
$ clever addon providers show mysql-addon
$ # For a matter of performance, let&#39;s create &#39;mautic-mysql&#39; add-on with the &#39;m&#39; plan
$ clever addon create mysql-addon --plan m mautic-mysql-M --link mautic-php
</code></pre>
<p>You also have to create 2 <a href="https://stagingv6.cleverapps.io/doc/addons/fs_buckets">FS Bucket</a> add-ons that we will configure in the next part.</p>
<pre><code class="language-bash">$ clever addon create fs-bucket mautic-fs-media --link mautic-php
$ clever addon create fs-bucket mautic-fs-config --link mautic-php
</code></pre>
<h2 id="dynamic-contents">Dynamic contents</h2>
<p>In order to keep everything persisted between two deployments, we will use the two <a href="https://stagingv6.cleverapps.io/doc/addons/fs_buckets">FS Bucket</a> add-ons to store files that will be modified during the installation.</p>
<p>You need to add two variables in your application&#39;s environment to link those FS Buckets with the corresponding directories.</p>
<p><strong>Note:</strong> The <code>fs_bucket_host</code> can be found in each FS Bucket dashboards.</p>
<pre><code class="language-bash">CC_FS_BUCKET=/media:&lt;fs_bucket_host_1&gt;
CC_FS_BUCKET_1=/app/config:&lt;fs_bucket_host_2&gt;
</code></pre>
<p>The next step is to upload the content of the <code>media</code> directory to the first FS Bucket and the content of the <code>app/config</code> directory to the second FS Bucket. You can use <a href="https://filezilla-project.org/">FileZilla</a> to upload those files.</p>
<p>Once everything is uploaded, delete the content of those directories (FS Bucket add-on has to be linked to an empty directory).</p>
<h2 id="crontab">Crontab</h2>
<p>One of the main features of Mautic is e-mail delivery. You can&#39;t use this feature if you haven&#39;t configured crontab.</p>
<p>Therefore, we will configure 3 crons to update segments and trigger campaigns by adding a script in the <code>cron-scripts</code> directory at the root of the main directory.</p>
<p><code>cron-scripts/mautic_cron.sh</code></p>
<pre><code class="language-bash">#! /usr/bin/env bash
source /home/bas/applicationrc
/usr/bin/php ${APP_HOME}/app/console $1
</code></pre>
<p>Then, we create a <code>clevercloud/cron.json</code> file containing the lines below to trigger the script:</p>
<pre><code class="language-json">[
  &quot;0,15,30,45 *  * * * sh $ROOT/cron-scripts/mautic_cron.sh mautic:segments:update&quot;,
  &quot;5,20,35,50 *  * * * sh $ROOT/cron-scripts/mautic_cron.sh mautic:campaigns:update&quot;,
  &quot;10,25,40,55 *  * * * sh $ROOT/cron-scripts/mautic_cron.sh mautic:campaigns:trigger&quot;
]
</code></pre>
<h3 id="going-further-with-crontab">Going further with crontab</h3>
<p>You might want to go further in your marketing automation and add new crons to trigger updates for social automation for example. The full list of crons is available <a href="https://www.mautic.org/docs/en/setup/cron_jobs.html">here</a>.</p>
<h2 id="deploying-mautic-on-clever-cloud">Deploying Mautic on Clever Cloud</h2>
<p>Now it&#39;s time to use Git to deploy it to Clever Cloud.</p>
<pre><code class="language-bash">$ git init
$ git add .
$ git commit -m &quot;Mautic init config&quot;

$ # if you have installed the Clever Cloud CLI
$ clever link &lt;APP_ID | APP_NAME&gt;
$ clever deploy

# else use a remote
$ git remote add clever &lt;REMOTE_URL&gt; # (available in the information of your app)
$ git push clever master
</code></pre>
<p>Wait for a few seconds, and your application should be running!</p>
<h2 id="configuration-screen">Configuration screen</h2>
<p>The configuration is pretty straightforward. Follow the instructions and fill it with MySQL&#39;s credentials which you can find in the add-on configuration screen of the web console of Clever Cloud.</p>
<p>You also have to setup the Mailer transport.</p>
<h2 id="what-can-i-do-now-">What can I do now ?</h2>
<p>After logging in, you can start configuring your marketing automations with the <a href="https://www.mautic.org/docs/en/index.html">Mautic Documentation</a>.</p>
<p>If you need help while deploying your own Mautic server on Clever Cloud, join the <a href="https://gitter.im/CleverCloud/home">Clever Cloud Gitter</a> and ask us any questions. Thanks for reading, and don&#39;t hesitate to reach our support if you need anything! ✌️</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mautic-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Changes about data privacy are rippling out worldwide, because of the new law from Europe: the GDPR.</p>
<p>Set to take effect on May 25th of this year, this new law restricts the data that companies can collect, and more specifically, how to store and use these data. So, before using any SaaS tool for marketing, sales or analytics, we have to take a step back, and think about the impact this new tool can have on your <a href="https://github.com/privacyradius/gdpr-checklist" title="External GitHub link ">GDPR data compliance checkist</a>. Open source and self-hosted tools like Mautic significantly reduce the complexity of your compliance checklist (they also have a <a href="https://www.mautic.org/blog/marketer/mautic-and-gdpr/" title="mautic post about GDPR">great post about it</a>).</p>
<p>Mautic provides free and open source marketing automation software available to everyone; free email marketing software, lead management software and more.</p>
<p>This post is about how you can deploy step by step your own Mautic server on Clever Cloud (within a Europe-only zone) using Git.</p>
<span id="more-2935"></span>

<h2 id="requirements">Requirements</h2>
<p>If you haven&#39;t done it yet, download the archive <a href="https://www.mautic.org/download">here</a> and unzip it in an empty directory.</p>
<p>Then, create a PHP application linked with a MySQL add-on from the <a href="https://console.clever-cloud.com">Clever Cloud Console</a> or directly from you terminal using the <a href="https://stagingv6.cleverapps.io/doc/clever-tools/getting_started/">Clever Cloud CLI</a>:</p>
<pre><code class="language-bash">$ clever create --type php mautic-php --alias production
</code></pre>
<pre><code class="language-bash">$ # For MySQL, let&#39;s show available plans:
$ clever addon providers show mysql-addon
$ # For a matter of performance, let&#39;s create &#39;mautic-mysql&#39; add-on with the &#39;m&#39; plan
$ clever addon create mysql-addon --plan m mautic-mysql-M --link mautic-php
</code></pre>
<p>You also have to create 2 <a href="https://stagingv6.cleverapps.io/doc/addons/fs_buckets">FS Bucket</a> add-ons that we will configure in the next part.</p>
<pre><code class="language-bash">$ clever addon create fs-bucket mautic-fs-media --link mautic-php
$ clever addon create fs-bucket mautic-fs-config --link mautic-php
</code></pre>
<h2 id="dynamic-contents">Dynamic contents</h2>
<p>In order to keep everything persisted between two deployments, we will use the two <a href="https://stagingv6.cleverapps.io/doc/addons/fs_buckets">FS Bucket</a> add-ons to store files that will be modified during the installation.</p>
<p>You need to add two variables in your application&#39;s environment to link those FS Buckets with the corresponding directories.</p>
<p><strong>Note:</strong> The <code>fs_bucket_host</code> can be found in each FS Bucket dashboards.</p>
<pre><code class="language-bash">CC_FS_BUCKET=/media:&lt;fs_bucket_host_1&gt;
CC_FS_BUCKET_1=/app/config:&lt;fs_bucket_host_2&gt;
</code></pre>
<p>The next step is to upload the content of the <code>media</code> directory to the first FS Bucket and the content of the <code>app/config</code> directory to the second FS Bucket. You can use <a href="https://filezilla-project.org/">FileZilla</a> to upload those files.</p>
<p>Once everything is uploaded, delete the content of those directories (FS Bucket add-on has to be linked to an empty directory).</p>
<h2 id="crontab">Crontab</h2>
<p>One of the main features of Mautic is e-mail delivery. You can&#39;t use this feature if you haven&#39;t configured crontab.</p>
<p>Therefore, we will configure 3 crons to update segments and trigger campaigns by adding a script in the <code>cron-scripts</code> directory at the root of the main directory.</p>
<p><code>cron-scripts/mautic_cron.sh</code></p>
<pre><code class="language-bash">#! /usr/bin/env bash
source /home/bas/applicationrc
/usr/bin/php ${APP_HOME}/app/console $1
</code></pre>
<p>Then, we create a <code>clevercloud/cron.json</code> file containing the lines below to trigger the script:</p>
<pre><code class="language-json">[
  &quot;0,15,30,45 *  * * * sh $ROOT/cron-scripts/mautic_cron.sh mautic:segments:update&quot;,
  &quot;5,20,35,50 *  * * * sh $ROOT/cron-scripts/mautic_cron.sh mautic:campaigns:update&quot;,
  &quot;10,25,40,55 *  * * * sh $ROOT/cron-scripts/mautic_cron.sh mautic:campaigns:trigger&quot;
]
</code></pre>
<h3 id="going-further-with-crontab">Going further with crontab</h3>
<p>You might want to go further in your marketing automation and add new crons to trigger updates for social automation for example. The full list of crons is available <a href="https://www.mautic.org/docs/en/setup/cron_jobs.html">here</a>.</p>
<h2 id="deploying-mautic-on-clever-cloud">Deploying Mautic on Clever Cloud</h2>
<p>Now it&#39;s time to use Git to deploy it to Clever Cloud.</p>
<pre><code class="language-bash">$ git init
$ git add .
$ git commit -m &quot;Mautic init config&quot;

$ # if you have installed the Clever Cloud CLI
$ clever link &lt;APP_ID | APP_NAME&gt;
$ clever deploy

# else use a remote
$ git remote add clever &lt;REMOTE_URL&gt; # (available in the information of your app)
$ git push clever master
</code></pre>
<p>Wait for a few seconds, and your application should be running!</p>
<h2 id="configuration-screen">Configuration screen</h2>
<p>The configuration is pretty straightforward. Follow the instructions and fill it with MySQL&#39;s credentials which you can find in the add-on configuration screen of the web console of Clever Cloud.</p>
<p>You also have to setup the Mailer transport.</p>
<h2 id="what-can-i-do-now-">What can I do now ?</h2>
<p>After logging in, you can start configuring your marketing automations with the <a href="https://www.mautic.org/docs/en/index.html">Mautic Documentation</a>.</p>
<p>If you need help while deploying your own Mautic server on Clever Cloud, join the <a href="https://gitter.im/CleverCloud/home">Clever Cloud Gitter</a> and ask us any questions. Thanks for reading, and don&#39;t hesitate to reach our support if you need anything! ✌️</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>One Framework a Day keeps the Boredom Away: Laravel</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2017/10/18/1fdba-laravel-polr/</link>
		
		<dc:creator><![CDATA[Laurent Doguin]]></dc:creator>
		<pubDate>Wed, 18 Oct 2017 17:15:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[1fdba]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2017/10/18/1fdba-laravel-polr/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Welcome to this new edition of <a href="/blog/features/2017/10/09/1fdba-step0/">One Framework a Day keeps the Boredom Away</a>. In this series I will show you how to deploy a particular framework on Clever Cloud every day until I want to go back to boredom. Today it&#39;s about Laravel.</p>
<span id="more-2912"></span>

<p>In each post of this series we&#39;ll see how to deploy a particular framework on Clever Cloud. Today we are taking a look at <a href="https://laravel.com/">Laravel</a>.</p>
<p>If you want to tag along, make sure you have git, a Clever Cloud account and that you have installed our CLI <a href="https://github.com/CleverCloud/clever-tools">Clever-Tools</a>.</p>
<h2 id="what-is-laravel">What is Laravel?</h2>
<blockquote>
Laravel is a free, open-source PHP web framework, created by Taylor Otwell and intended for the development of web applications following the model–view–controller (MVC) architectural pattern.
</blockquote>

<p>To go a bit further the basics, I have deployed this URL shortener application called <a href="https://github.com/cydrobolt/polr">Polr</a>. It&#39;s actualy written with <a href="https://lumen.laravel.com/">Lumen</a>, a Laravel micro-framework.</p>
<h2 id="setup">Setup</h2>
<p>Here are the necessary steps to configure your Polr application:</p>
<ul>
<li>Clone the backend: <code>git clone https://github.com/cydrobolt/polr</code></li>
<li>Get in the project: <code>cd polr</code></li>
<li>Create the PHP application: <code>clever create --type php polr</code></li>
<li>Create the MySQL addon: <code>clever addon create mysql-addon --plan dev polr-mysql</code></li>
<li>Link the database to the application: <code>clever service link-addon polr-mysql</code></li>
<li>Add your domain: <code>clever domain add mypolr.cleverapps.io</code></li>
<li>Copy the default configuration: <code>cp .env.setup .env</code></li>
</ul>
<p>Then you need to setup the default webroot. We don&#39;t support environment variable for this yet, so you will have to create a <code>php.json</code> file under a <code>clevercloud</code> directory:</p>
<p><code>mkdir clevercloud</code> <code>vim clevercloud/php.json</code></p>
<pre><code class="language-json">{
  &quot;deploy&quot;: {
    &quot;webroot&quot;: &quot;/public&quot;
  }
}
</code></pre>
<p>Now commit all your changes, run <code>clever deploy</code> than <code>clever open</code>. You will be taken straight to the setup wizard of Polr. Go through all the steps, yes even the database configuration, because the setup will write ot the DB at the end. It will also overwrite <code>.env</code>. Problem is we use immutable infrastructure so all the changes written on that file will be lost at reboot. And reboot can happen for many reasons. Best way to manage this is to use <code>clever ssh</code> to log on the machine and copy the content of the now changed <code>.env</code> file to your own version of the file.</p>
<p>All the fields in this file can be remove and replaced by environment variables. You can also use pre-existing variables. In my case I have configured the database part like this:</p>
<pre><code class="language-bash">DB_HOST=$MYSQL_ADDON_HOST
DB_PORT=$MYSQL_ADDON_PORT
DB_DATABASE=$MYSQL_ADDON_DB
DB_USERNAME=$MYSQL_ADDON_USER
DB_PASSWORD=$MYSQL_ADDON_PASSWORD
</code></pre>
<p>Feel free to remove any fields you want to setup as an environment variable as they will be picked up automatically too.</p>
<p>The other option you have would have been to know exactly all the configuration variables needed, set them all, than ssh on the machine and use the <code>artisan</code> CLI to seed the database. Which is to me more cumbersome.</p>
<img src="https://www2.cleverapps.io/app/uploads/2021/08/MyPolr.png">

<p>Whatever solution you choose, take a look at their <a href="https://docs.polrproject.org/en/latest/user-guide/installation/">installation guide</a>. This will give you a good idea of all the things that are managed automatically by Clever Cloud :)</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-laravel-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Welcome to this new edition of <a href="/blog/features/2017/10/09/1fdba-step0/">One Framework a Day keeps the Boredom Away</a>. In this series I will show you how to deploy a particular framework on Clever Cloud every day until I want to go back to boredom. Today it&#39;s about Laravel.</p>
<span id="more-2912"></span>

<p>In each post of this series we&#39;ll see how to deploy a particular framework on Clever Cloud. Today we are taking a look at <a href="https://laravel.com/">Laravel</a>.</p>
<p>If you want to tag along, make sure you have git, a Clever Cloud account and that you have installed our CLI <a href="https://github.com/CleverCloud/clever-tools">Clever-Tools</a>.</p>
<h2 id="what-is-laravel">What is Laravel?</h2>
<blockquote>
Laravel is a free, open-source PHP web framework, created by Taylor Otwell and intended for the development of web applications following the model–view–controller (MVC) architectural pattern.
</blockquote>

<p>To go a bit further the basics, I have deployed this URL shortener application called <a href="https://github.com/cydrobolt/polr">Polr</a>. It&#39;s actualy written with <a href="https://lumen.laravel.com/">Lumen</a>, a Laravel micro-framework.</p>
<h2 id="setup">Setup</h2>
<p>Here are the necessary steps to configure your Polr application:</p>
<ul>
<li>Clone the backend: <code>git clone https://github.com/cydrobolt/polr</code></li>
<li>Get in the project: <code>cd polr</code></li>
<li>Create the PHP application: <code>clever create --type php polr</code></li>
<li>Create the MySQL addon: <code>clever addon create mysql-addon --plan dev polr-mysql</code></li>
<li>Link the database to the application: <code>clever service link-addon polr-mysql</code></li>
<li>Add your domain: <code>clever domain add mypolr.cleverapps.io</code></li>
<li>Copy the default configuration: <code>cp .env.setup .env</code></li>
</ul>
<p>Then you need to setup the default webroot. We don&#39;t support environment variable for this yet, so you will have to create a <code>php.json</code> file under a <code>clevercloud</code> directory:</p>
<p><code>mkdir clevercloud</code> <code>vim clevercloud/php.json</code></p>
<pre><code class="language-json">{
  &quot;deploy&quot;: {
    &quot;webroot&quot;: &quot;/public&quot;
  }
}
</code></pre>
<p>Now commit all your changes, run <code>clever deploy</code> than <code>clever open</code>. You will be taken straight to the setup wizard of Polr. Go through all the steps, yes even the database configuration, because the setup will write ot the DB at the end. It will also overwrite <code>.env</code>. Problem is we use immutable infrastructure so all the changes written on that file will be lost at reboot. And reboot can happen for many reasons. Best way to manage this is to use <code>clever ssh</code> to log on the machine and copy the content of the now changed <code>.env</code> file to your own version of the file.</p>
<p>All the fields in this file can be remove and replaced by environment variables. You can also use pre-existing variables. In my case I have configured the database part like this:</p>
<pre><code class="language-bash">DB_HOST=$MYSQL_ADDON_HOST
DB_PORT=$MYSQL_ADDON_PORT
DB_DATABASE=$MYSQL_ADDON_DB
DB_USERNAME=$MYSQL_ADDON_USER
DB_PASSWORD=$MYSQL_ADDON_PASSWORD
</code></pre>
<p>Feel free to remove any fields you want to setup as an environment variable as they will be picked up automatically too.</p>
<p>The other option you have would have been to know exactly all the configuration variables needed, set them all, than ssh on the machine and use the <code>artisan</code> CLI to seed the database. Which is to me more cumbersome.</p>
<img src="https://www2.cleverapps.io/app/uploads/2021/08/MyPolr.png">

<p>Whatever solution you choose, take a look at their <a href="https://docs.polrproject.org/en/latest/user-guide/installation/">installation guide</a>. This will give you a good idea of all the things that are managed automatically by Clever Cloud :)</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Deploying a Piwik Server on Clever Cloud</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2016/11/09/deploy-piwik-with-clever-cloud/</link>
		
		<dc:creator><![CDATA[Corentin Cailleaud]]></dc:creator>
		<pubDate>Wed, 09 Nov 2016 17:55:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2016/11/09/deploy-piwik-with-clever-cloud/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Those days, gathering data is a pretty important thing to improve your application. It can, indeed, help you <strong>optimize your website</strong> by knowing where your visitors are clicking. All those informations are collected thanks to analytics platforms such as <strong>Piwik</strong>.</p>
<span id="more-2876"></span>

<h3 id="what-is-piwik-">What is Piwik ?</h3>
<p><a href="https://piwik.org/">Piwik</a> is the <strong>leading open-source analytics platform</strong> that gives you, on top of good analytics, 100% data ownership and user privacy protection. You can know how many people visited a specific page and even set goals. For example, if you redirect your visitor to a thank you page if they buy your 10$ product, you can set a goal that says &quot;If the visitor comes on this page, I will earn 10$&quot;. Therefore, you can have an entiere overview of your profits. You can use <a href="http://demo.piwik.org/">this link</a> to access the Piwik demo and discover the graphical interface.</p>
<h3 id="how-can-i-run-my-piwik-server-">How can I run my Piwik server ?</h3>
<p>So you want to deploy a Piwik server using Clever Cloud. The Piwik server is a <strong>PHP application</strong>, therefore there are two ways to install it. The easiest one is explained down below, using SFTP but you can also install the server locally and push it with git. If you want to set it up fastly and easily, just follow those few steps and you will be able to get analytics from your application in a few minutes !</p>
<h3 id="three-simple-steps">Three simple steps</h3>
<p>First things first, create a <strong>PHP SFTP application</strong> in the Clever Cloud console and link it with a <strong>MySQL addon</strong>.</p>
<p>Then, unzip the Piwik file available <a href="https://piwik.org/download/">here</a> and upload the content of the directory <code>piwik</code> at the root of your FSBucket. You can use for example, <a href="https://filezilla-project.org/">FileZilla</a> to upload those files. Don&#39;t forget to add a <code>.user.ini</code> file with the line <code>always_populate_raw_post_data=-1</code> in order to install Piwik.</p>
<p>The final step is to deploy your application and start the installation by clicking on your application link. If you have any issue, you can check the <a href="https://piwik.org/docs/installation/#the-5-minut-piwik-installation">installation guide</a>. When you have to setup your MySQL database, click on your MySQL addon in the Clever Cloud console and fill the form with (left: field name in Piwik/right: field name in MySQL):</p>
<ul>
<li>Database server : <code>Host</code></li>
<li>Login : <code>User</code></li>
<li>Password : <code>Password</code></li>
<li>Database name : <code>Database</code></li>
</ul>
<p>And that&#39;s it ! Your Piwik server is now ready to give you informations about your traffic. Don&#39;t forget to add the JavaScript code on each page. You can start setting up your own goals as mentioned above. If you have a big amount of traffic, don&#39;t hesitate to check <a href="http://piwik.org/docs/optimize-how-to/">this page</a> that explains how you can optimize your Piwik server.</p>
<p>If you have not created your Clever Cloud account yet, you can sign up <a href="https://api.clever-cloud.com/v2/session/signup">here</a> and start creating your application.</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/piwik-server-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Those days, gathering data is a pretty important thing to improve your application. It can, indeed, help you <strong>optimize your website</strong> by knowing where your visitors are clicking. All those informations are collected thanks to analytics platforms such as <strong>Piwik</strong>.</p>
<span id="more-2876"></span>

<h3 id="what-is-piwik-">What is Piwik ?</h3>
<p><a href="https://piwik.org/">Piwik</a> is the <strong>leading open-source analytics platform</strong> that gives you, on top of good analytics, 100% data ownership and user privacy protection. You can know how many people visited a specific page and even set goals. For example, if you redirect your visitor to a thank you page if they buy your 10$ product, you can set a goal that says &quot;If the visitor comes on this page, I will earn 10$&quot;. Therefore, you can have an entiere overview of your profits. You can use <a href="http://demo.piwik.org/">this link</a> to access the Piwik demo and discover the graphical interface.</p>
<h3 id="how-can-i-run-my-piwik-server-">How can I run my Piwik server ?</h3>
<p>So you want to deploy a Piwik server using Clever Cloud. The Piwik server is a <strong>PHP application</strong>, therefore there are two ways to install it. The easiest one is explained down below, using SFTP but you can also install the server locally and push it with git. If you want to set it up fastly and easily, just follow those few steps and you will be able to get analytics from your application in a few minutes !</p>
<h3 id="three-simple-steps">Three simple steps</h3>
<p>First things first, create a <strong>PHP SFTP application</strong> in the Clever Cloud console and link it with a <strong>MySQL addon</strong>.</p>
<p>Then, unzip the Piwik file available <a href="https://piwik.org/download/">here</a> and upload the content of the directory <code>piwik</code> at the root of your FSBucket. You can use for example, <a href="https://filezilla-project.org/">FileZilla</a> to upload those files. Don&#39;t forget to add a <code>.user.ini</code> file with the line <code>always_populate_raw_post_data=-1</code> in order to install Piwik.</p>
<p>The final step is to deploy your application and start the installation by clicking on your application link. If you have any issue, you can check the <a href="https://piwik.org/docs/installation/#the-5-minut-piwik-installation">installation guide</a>. When you have to setup your MySQL database, click on your MySQL addon in the Clever Cloud console and fill the form with (left: field name in Piwik/right: field name in MySQL):</p>
<ul>
<li>Database server : <code>Host</code></li>
<li>Login : <code>User</code></li>
<li>Password : <code>Password</code></li>
<li>Database name : <code>Database</code></li>
</ul>
<p>And that&#39;s it ! Your Piwik server is now ready to give you informations about your traffic. Don&#39;t forget to add the JavaScript code on each page. You can start setting up your own goals as mentioned above. If you have a big amount of traffic, don&#39;t hesitate to check <a href="http://piwik.org/docs/optimize-how-to/">this page</a> that explains how you can optimize your Piwik server.</p>
<p>If you have not created your Clever Cloud account yet, you can sign up <a href="https://api.clever-cloud.com/v2/session/signup">here</a> and start creating your application.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Announcing New PHP Versions</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2016/01/15/announcing-new-php-versions/</link>
		
		<dc:creator><![CDATA[Julien Durillon]]></dc:creator>
		<pubDate>Fri, 15 Jan 2016 16:15:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2016/01/15/announcing-new-php-versions/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>So, we <em>have</em> been a bit late when it came to supporting PHP 5.6. But we had a good reason for that! We were reworking the PHP scalers to create a single PHP scaler that could handle any PHP versions we would install on it. So we are finally getting PHP 5.6 and 7.0 out in the open.</p>
<p>But that&#39;s not all! Previously, selecting your PHP version was done upon application creation once and for all. Changing the PHP version required you to create a new application and to migrate your code (and data).</p>
<p>Now, you can change the PHP version by setting an environment variable and redeploying your application! Just set the PHP_VERSION variable to one of the following values:</p>
<ul>
<li>5.4</li>
<li>5.5</li>
<li>5.6</li>
<li>7.0</li>
</ul>
<p>Then redeploy your application, <em>et voilà</em>!</p>
<p>You can now test different versions of PHP as much as you want without setting up your environment every time! In the console, select the <code>PHP (beta)</code> application type when creating a new app. Once the beta will be over, you will see only one <code>PHP</code> option instead of <code>PHP 5.4</code> and <code>PHP 5.5</code>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>So, we <em>have</em> been a bit late when it came to supporting PHP 5.6. But we had a good reason for that! We were reworking the PHP scalers to create a single PHP scaler that could handle any PHP versions we would install on it. So we are finally getting PHP 5.6 and 7.0 out in the open.</p>
<p>But that&#39;s not all! Previously, selecting your PHP version was done upon application creation once and for all. Changing the PHP version required you to create a new application and to migrate your code (and data).</p>
<p>Now, you can change the PHP version by setting an environment variable and redeploying your application! Just set the PHP_VERSION variable to one of the following values:</p>
<ul>
<li>5.4</li>
<li>5.5</li>
<li>5.6</li>
<li>7.0</li>
</ul>
<p>Then redeploy your application, <em>et voilà</em>!</p>
<p>You can now test different versions of PHP as much as you want without setting up your environment every time! In the console, select the <code>PHP (beta)</code> application type when creating a new app. Once the beta will be over, you will see only one <code>PHP</code> option instead of <code>PHP 5.4</code> and <code>PHP 5.5</code>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Optimize your PHP Applications on Clever Cloud</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2015/11/19/how-to-optimize-your-php-applications/</link>
		
		<dc:creator><![CDATA[Gautier Pogam]]></dc:creator>
		<pubDate>Thu, 19 Nov 2015 15:35:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2015/11/19/how-to-optimize-your-php-applications/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>PHP is quite popular in website creation. A lot of famous/popular CMS and frameworks are written in this language.

As these CMS and frameworks became extremely complex, it's important to know that some tricks can be applied to improve overall performances. Communities created a lot of tools or plug-ins. Here are different tips you can easily apply to optimize your PHP Applications.

<span id="more-2862"></span>
<h3 id="varnish-for-faster-content-pages">Varnish, for faster content pages</h3>
Let's begin with a simple cache service, Varnish. <a href="https://www.varnish-cache.org/">Varnish</a> is a <em>HTTP Cache</em> on the server side that can boost the response time of a request. It will handle the requests sent by the browser. And instead of sending all requests to the back-end, it caches the first request into a HTML file. Next time, the raw HTML file will be sent directly. Without bothering the back-end and the database.

With a set of rules and options, it can fit all websites and offer a real breath of fresh air to your website. You can find the <a href="https://www.varnish-cache.org/docs">Varnish documentation here</a>.

To enable a configured Varnish on Clever Cloud, it's prety straightforward:
<ol>
 	<li>First, create a <code>/clevercloud</code> folder if it doesn't exist.</li>
 	<li>In this folder, copy your own <code>varnish.vcl</code> file.</li>
 	<li>With git, add the file, commit and push your website on Clever Cloud.</li>
</ol>
If needed, redeploy you app. Varnish will be activated. Also, you should test your new configuration with <a href="http://isvarnishworking.com">isvarnishworking.com</a> to check if everything is working well.

Before we continue let me be clear: do not forget that Varnish returns a dumb cached page. In plain HTML. So you might have to adapt your configuration to be sure that dynamic pages are not cached. You have to manage these pages differently, so we recommend the following strategies.
<h3 id="how-to-decrease-load-on-sql-databases-with-redis">How to decrease load on SQL databases with Redis</h3>
Redis is an in-memory data store. It's a key-value database capable of storing in memory some information to speed up their fetching. Most of the time, you can use Redis along with a classic database (eg. PostgreSQL) to improve response time.

Instead of querying the DB for each request, we poke Redis to get the results of the previous request. The database will not have to process the request, as Redis takes care of it.

Redis associates a hash to each value and will return the result associated with it from the RAM. The delay to access the value is then way faster than querying the SQL database.

For PHP we provide <a href="https://github.com/phpredis/phpredis">PHPRedis</a>, an extension to communicate with Redis. It's quite easy to integrate it with your application along with Varnish for HTTP-Caching.

For instance, you can use Varnish to cache pages that do not change often - like the content for anonymous visitors. And Redis to speedup the response time of dynamic pages such as a forum or a e-commerce website.
<h3 id="storing-php-sessions-in-redis">Storing PHP sessions in Redis</h3>
Sessions in PHP are, by default, stored in temporary files. On a file system. And that's a really bad news. Because file systems are:
<ul>
 	<li>Slow</li>
 	<li>too complex for a simple</li>
 	<li>and SPOF-free multi tenant file systems are unicorns</li>
</ul>
So, if you website has to deal with a high traffic, here's what's happening:

For each request, PHP will open, read and close the file. Such operations on the file system are transactional. As a consequence, it will slow down the response time. This also requires disk space. If your website keeps sessions for a long time, and for a lot of different users, this might use a lot of space.

Luckily, Redis can help us on this. PHP offers the possibility to change the <em>session handler</em> and how sessions are managed. Using a DB like Redis instead of the FS can improve performance of your application. Especially if you have a lot of visitors

PHPRedis, which we mentioned above, can do this. Clever Cloud gives you a simple way to enable storage of sessions in Redis. You do not even have to change or add a file, it can be setup in the environment variables:
<ol>
 	<li>Go in the <a href="https://stagingv6.cleverapps.io/doc/admin-console/environment-variables/">environment variables</a> section of
your application in our console.</li>
 	<li>Create an environment variable named <code>SESSION_TYPE</code> with the value <code>redis</code>.</li>
</ol>
To words. And nothing more. The sessions of your application will now be stored in a Redis database!
<h3 id="advice-for-wordpress-websites">Advice for Wordpress websites</h3>
Clever Cloud deals with a lot of Wordpress websites, so we found multiple ways to improve the performance easily.
<blockquote>We noticed many times that plug-ins such as <em>W3 Total Cache</em> or <em>JetPack</em> can slow down your apps.</blockquote>
The most problematic thing are plug-ins. We noticed many times that plug-ins such as <em>W3 Total Cache</em> or <em>JetPack</em> can slow down your apps. They are providing cache systems, but these are designed for shared hosting. Not Cloud hosting.

As Clever Cloud provides dedicated VMs for each app, these plug-ins create problems. Or slowdowns. So just get rid of them. If you need a caching system, use Varnish instead. There is a <code>varnish.vcl</code> file example in the <a href="https://stagingv6.cleverapps.io/doc/php/tutorial-wordpress/#http-cache-with-varnish">WordPress documentation</a>.

Also, the previous three optimization methods works great for Wordpress of course.
<h3 id="conclusion">Conclusion</h3>
Alongside complex PHP's CMS evolution, the tools to improve performances also made their way. We hope these few trivial optimizations will help you to scale better and create a great browsing experience.

If you have other tips for these tools, tell us about them in the comments. We are always looking for tips which could improve performance and offer a great service. So if you have any suggestions feel free to contact us at <a href="mailto:support@clever-cloud.com">support@clever-cloud.com</a>.]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/wordpress-optim-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>PHP is quite popular in website creation. A lot of famous/popular CMS and frameworks are written in this language.

As these CMS and frameworks became extremely complex, it's important to know that some tricks can be applied to improve overall performances. Communities created a lot of tools or plug-ins. Here are different tips you can easily apply to optimize your PHP Applications.

<span id="more-2862"></span>
<h3 id="varnish-for-faster-content-pages">Varnish, for faster content pages</h3>
Let's begin with a simple cache service, Varnish. <a href="https://www.varnish-cache.org/">Varnish</a> is a <em>HTTP Cache</em> on the server side that can boost the response time of a request. It will handle the requests sent by the browser. And instead of sending all requests to the back-end, it caches the first request into a HTML file. Next time, the raw HTML file will be sent directly. Without bothering the back-end and the database.

With a set of rules and options, it can fit all websites and offer a real breath of fresh air to your website. You can find the <a href="https://www.varnish-cache.org/docs">Varnish documentation here</a>.

To enable a configured Varnish on Clever Cloud, it's prety straightforward:
<ol>
 	<li>First, create a <code>/clevercloud</code> folder if it doesn't exist.</li>
 	<li>In this folder, copy your own <code>varnish.vcl</code> file.</li>
 	<li>With git, add the file, commit and push your website on Clever Cloud.</li>
</ol>
If needed, redeploy you app. Varnish will be activated. Also, you should test your new configuration with <a href="http://isvarnishworking.com">isvarnishworking.com</a> to check if everything is working well.

Before we continue let me be clear: do not forget that Varnish returns a dumb cached page. In plain HTML. So you might have to adapt your configuration to be sure that dynamic pages are not cached. You have to manage these pages differently, so we recommend the following strategies.
<h3 id="how-to-decrease-load-on-sql-databases-with-redis">How to decrease load on SQL databases with Redis</h3>
Redis is an in-memory data store. It's a key-value database capable of storing in memory some information to speed up their fetching. Most of the time, you can use Redis along with a classic database (eg. PostgreSQL) to improve response time.

Instead of querying the DB for each request, we poke Redis to get the results of the previous request. The database will not have to process the request, as Redis takes care of it.

Redis associates a hash to each value and will return the result associated with it from the RAM. The delay to access the value is then way faster than querying the SQL database.

For PHP we provide <a href="https://github.com/phpredis/phpredis">PHPRedis</a>, an extension to communicate with Redis. It's quite easy to integrate it with your application along with Varnish for HTTP-Caching.

For instance, you can use Varnish to cache pages that do not change often - like the content for anonymous visitors. And Redis to speedup the response time of dynamic pages such as a forum or a e-commerce website.
<h3 id="storing-php-sessions-in-redis">Storing PHP sessions in Redis</h3>
Sessions in PHP are, by default, stored in temporary files. On a file system. And that's a really bad news. Because file systems are:
<ul>
 	<li>Slow</li>
 	<li>too complex for a simple</li>
 	<li>and SPOF-free multi tenant file systems are unicorns</li>
</ul>
So, if you website has to deal with a high traffic, here's what's happening:

For each request, PHP will open, read and close the file. Such operations on the file system are transactional. As a consequence, it will slow down the response time. This also requires disk space. If your website keeps sessions for a long time, and for a lot of different users, this might use a lot of space.

Luckily, Redis can help us on this. PHP offers the possibility to change the <em>session handler</em> and how sessions are managed. Using a DB like Redis instead of the FS can improve performance of your application. Especially if you have a lot of visitors

PHPRedis, which we mentioned above, can do this. Clever Cloud gives you a simple way to enable storage of sessions in Redis. You do not even have to change or add a file, it can be setup in the environment variables:
<ol>
 	<li>Go in the <a href="https://stagingv6.cleverapps.io/doc/admin-console/environment-variables/">environment variables</a> section of
your application in our console.</li>
 	<li>Create an environment variable named <code>SESSION_TYPE</code> with the value <code>redis</code>.</li>
</ol>
To words. And nothing more. The sessions of your application will now be stored in a Redis database!
<h3 id="advice-for-wordpress-websites">Advice for Wordpress websites</h3>
Clever Cloud deals with a lot of Wordpress websites, so we found multiple ways to improve the performance easily.
<blockquote>We noticed many times that plug-ins such as <em>W3 Total Cache</em> or <em>JetPack</em> can slow down your apps.</blockquote>
The most problematic thing are plug-ins. We noticed many times that plug-ins such as <em>W3 Total Cache</em> or <em>JetPack</em> can slow down your apps. They are providing cache systems, but these are designed for shared hosting. Not Cloud hosting.

As Clever Cloud provides dedicated VMs for each app, these plug-ins create problems. Or slowdowns. So just get rid of them. If you need a caching system, use Varnish instead. There is a <code>varnish.vcl</code> file example in the <a href="https://stagingv6.cleverapps.io/doc/php/tutorial-wordpress/#http-cache-with-varnish">WordPress documentation</a>.

Also, the previous three optimization methods works great for Wordpress of course.
<h3 id="conclusion">Conclusion</h3>
Alongside complex PHP's CMS evolution, the tools to improve performances also made their way. We hope these few trivial optimizations will help you to scale better and create a great browsing experience.

If you have other tips for these tools, tell us about them in the comments. We are always looking for tips which could improve performance and offer a great service. So if you have any suggestions feel free to contact us at <a href="mailto:support@clever-cloud.com">support@clever-cloud.com</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>E-Commerce : what about Magento and Prestashop?</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2012/12/17/magento-and-prestashop-on-clever-cloud/</link>
		
		<dc:creator><![CDATA[Clément Nivolle]]></dc:creator>
		<pubDate>Mon, 17 Dec 2012 00:00:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Compatibility]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Prestashop]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2012/12/17/magento-and-prestashop-on-clever-cloud/</guid>

					<description><![CDATA[As usual, we felt the need to test more CMS. As we&#8217;re dangerously approaching Christmas and e-commerce appear to be more present than ever, the question is: Do ecommerce web applications like Magento and Prestashop work on Clever Cloud? So we ran some quick tests, and the answer is pretty clear: Yes! Both of them work [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="pull-right"><img decoding="async" class="span2" src="https://cdn.clever-cloud.com/uploads/2021/08/magento-prestashop.jpg" alt="SugarCRM logo" /></div>
<p>As usual, we felt the need to test more CMS.</p>
<p>As we&#8217;re dangerously approaching Christmas and e-commerce appear to be more present than ever, the question is:</p>
<blockquote><p>Do ecommerce web applications like Magento and Prestashop work on Clever Cloud?</p></blockquote>
<p><span id="more-2836"></span></p>
<p>So we ran some quick tests, and the answer is pretty clear: Yes!</p>
<p>Both of them work like a charm, we didn&#8217;t need to operate some voodoo-adminsys-stuff :-]<br />
Installation is pretty smooth and blazing fast.</p>
<p>Test yours!</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
