lycee gabriel guisthau nantes

Section Européenne Anglais au Lycée Guist’Hau

Qu’est-ce qu’une section européenne?

La section européenne permet aux élèves de renforcer la maîtrise de l’anglais, à l’oral comme à l’écrit, grâce à la pédagogie bilingue.

En dehors des cours de langue classiques avec ses objectifs linguistiques et culturels, les élèves suivent des cours d’Histoire-Géographie ou de Physique-Chimie en langue étrangère.

Au terme des trois années, les élèves se présentent au baccalauréat à l’épreuve de “section européenne” et peuvent obtenir une mention européenne.

Qu’est ce que la DNL?

Dans les cours de DNL (Discipline Non-Linguistique), les élèves communiquent en langue étrangère tout en restant concentrés sur une question d’Histoire, de Géographie ou de Physique-Chimie.

A titre d’exemple en Histoire-Géographie, on adopte un regard anglophone sur des questions au programme. Les cours de DNL renforcent ainsi non seulement la pratique de la langue, mais aussi les connaissances sur la culture anglophone. Les élèves apprennent à lire, expliquer et analyser des documents authentiques,

En Physique-Chimie, à partir de supports variés, les élèves vont produire des cartes mentales, des posters, réaliser des exposés, des vidéos en langue anglaise traitant des différentes parties du programme. Certains thèmes peuvent également être traités de façon expérimentale. Le but étant de savoir décrire et expliquer des phénomènes scientifiques en anglais, et éventuellement d’émettre son point de vue.

Au lycée Guist’hau, les élèves sont affectés dans les groupes de DNL (Histoire-Géographie et Physique-Chimie) de manière aléatoire, de manière à créer des groupes de DNL équilibrés au niveau du nombre d’élèves. Un réajustement est effectué en Première afin d’affiner la cohérence avec les spécialités choisies.

Quels sont les projets en section européenne?

La section européenne vise l’acquisition d’un niveau de langue soutenu et souhaite favoriser l’ouverture européenne et internationale des élèves.

La section européenne Anglais organise un voyage culturel pendant l’année de première. En terminale, les élèves passent le Cambridge English Certificate (CEC).

Quel est le cursus en section européenne?

Seconde européenne3h Anglais + 1h DNL (Histoire-Géographie ou Physique-Chimie)
Première européenne2h30 Anglais + 1h DNL
Terminale européenne2 h Anglais + 1h DNL
Horaires hebdomadaires en section Européenne Anglais

Notez bien qu’il n’est pas possible pour les élèves de choisir la matière de DNL: les élèves sont intégrés à la DNL Histoire-Géographie ou Physique-Chimie de manière aléatoire, pour former des groupes équilibrés.

Qu’est ce que la mention européenne?

Actuellement, la mention européenne pour le baccalauréat est validée si la note à l’épreuve écrite de langue est égale ou supérieure à 12/20 et si la note à l’épreuve orale de la discipline non linguistique est égale ou supérieure à 10/20.

La mention européenne donne une valeur ajoutée au diplôme de baccalauréat et représente un plus pour le parcours post-bac quelles que soient les études supérieures visées.

A qui s’adresse la section européenne?

Aux élèves motivés par la langue et la culture anglophone qui ont un bon niveau de langue et qui aiment s’impliquer en classe. Elle est ouverte aux élèves issus de sections européennes, mais aussi à ceux qui n’ont pas eu cette opportunité.

Le programme en anglais européen est identique à celui du tronc commun d’une classe classique. Cependant, le rythme de travail y est plus soutenu et les exigences renforcées, notamment en termes d’autonomie.

Lire la suite

icecast ssl https cloudflare

Configurer Icecast avec un certificat SSL et Cloudflare

Voici comment configurer un serveur Icecast pour utiliser un certificat SSL pour proposer des flux radio servis en HTTPS, le tout derrière Cloudflare.

Depuis que Strict Transport Security (HSTS) a été activé par défaut pour tous les sites hébergés sur le serveur, la page de Thunderstruck Radio ne s’affiche plus correctement car le serveur Icecast est encore servi en simple HTTP, donc sans certificat SSL.

Nous allons donc changer tout cela et sécuriser Icecast avec le certificat SSL de notre domaine, de manière à ce que les flux radio ainsi que le flux JSON soient servis en HTTPS.

Étape 1 : créer un sous-domaine au niveau DNS

Il vaut mieux séparer la radio de votre site principal, c’est beaucoup plus simple à gérer et évite les épineux problèmes de configuration.

J’opte pour ajouter le sous-domaine thunderstruck.skyminds.net avec un enregistrement DNS de type A dans Cloudflare:

thunderstruck.skyminds.net.	1	IN	A	xxx.xxx.xxx.xxxCode language: CSS (css)

On garde le sous-domaine en DNS seulement, nul besoin d’activer le cache (puisque c’est un flux).

Étape 2 : ouvrir le port 8443 dans le pare-feu

J’utilise Cloudflare donc nous avons quelques ports HTTPS ouverts par défaut qui peuvent être utilisés sans blocages :

# Ports HTTPS ouverts par défaut chez Cloudflare, sans support cache :

    443
    2053
    2083
    2087
    2096
    8443Code language: PHP (php)

Nous utilisons ufw donc la commande est très simple pour ouvrir le port 8443 :

ufw allow 8443/tcp comment "Icecast SSL"Code language: JavaScript (javascript)

Le serveur accepte désormais les connexions sur le port 8443 pour Icecast.

Étape 3 : configurer le sous-domaine sous NginX

Nous allons maintenant configurer notre sous-domaine et éditer le bloc serveur de notre domaine sous NginX:

nano /etc/nginx/sites-available/skyminds.conf

Et nous y ajoutons ce bloc:

# Thunderstruck.skyminds.net
server {
    listen       8443 ssl http2;
    listen  [::]:8443 ssl http2;

    server_name thunderstruck.skyminds.net;

    # Let's Encrypt
    ssl_certificate         /etc/nginx/ssl/skyminds.net/fullchain.pem;
    ssl_certificate_key     /etc/nginx/ssl/skyminds.net/privkey.pem;

    location / {
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_pass              http://127.0.0.1:8443;
        proxy_read_timeout      90;
        proxy_redirect          off;
        proxy_buffering         off;
        tcp_nodelay             on;

	    # CSP headers
	    add_header Content-Security-Policy "media-src 'self' https://thunderstruck.skyminds.net:8443";
    }
}Code language: PHP (php)

Testez la configuration et rechargez nginx :

nginx -t

service nginx reload

Étape 4 : unifier le certificat SSL et sa clé privée

Icecast peut fonctionner avec un certificat SSL à partir de la version 2.4.4. Commencez donc par vérifier que cette version est à minima installée sur le serveur:

icecast2 -v

Ensuite, Icecast nécessite un fichier de certificat unique, qui est en fait une compilation du certificat et de sa clé privée.

Nous créons donc un fichier shell qui va contenir notre commande:

nano /home/scripts/icecast-ssl.sh

et dans lequel nous ajoutons notre commande cat :

#!/bin/bash
cat /etc/nginx/ssl/skyminds.net/fullchain.pem /etc/nginx/ssl/skyminds.net/privkey.pem > /etc/icecast2/bundle.pemCode language: JavaScript (javascript)

Vous pouvez exécuter le fichier de manière à générer le fichier bundle.pem:

bash /home/scripts/icecast-ssl.sh

On assigne maintenant les bons droits pour que le certificat soit lisible par icecast2:

chown icecast2:icecast /etc/icecast2/bundle.pem

Étape 5 : automatiser le renouvellement du certificat Icecast

J’utilise acme.sh pour la génération et le renouvellement automatique de tous les certificats du serveur donc il est très utile d’éditer la configuration du certificat pour que le script de génération du certificat pour SSL ait lieu automatiquement, juste après le renouvellement du certificat de notre domaine.

On édite donc la configuration acme.sh du domaine:

nano /root/.acme.sh/skyminds.net_ecc/skyminds.net.conf

Et nous éditons la directive Le_RenewHook avec le chemin de notre nouveau script shell :

Le_RenewHook='bash /home/scripts/icecast-ssl.sh && service icecast2 restart'Code language: JavaScript (javascript)

Sauvegardez les changements.

Lire la suite

linux ubuntu server unattended upgrade

Ubuntu : activer les mises à jour automatiques avec unattended-upgrades

La mise à niveau de votre serveur Ubuntu est une étape importante pour garantir que votre système est toujours à jour et sécurisé. Avec le paquet unattended-upgrades, vous pouvez facilement activer les mises à niveau sans avoir à vous soucier du redémarrage manuel ou des temps d’arrêt.

Comme son nom l’indique, le paquet unattended-upgrades permet de lancer les mises à jour automatiquement à intervalles réguliers, sans action de la part de l’administrateur. Vous pouvez donc planifier les mises à jour lorsque le trafic est faible, et l’outil est même capable de redémarrer le serveur si besoin.

Dans ce tutoriel, nous allons vous montrer comment installer et utiliser unattended-upgrades sous Ubuntu Server 22.04. Nous aborderons également les avantages de l’utilisation de cet outil et la manière dont il peut contribuer à garantir que votre système est toujours à jour.

Cela peut être également un très bon complément si vous avez déjà installé Ubuntu Pro avec le support étendu des mises à jour.

Installer unattended-upgrades

Pour commencer, vous devez d’abord installer le paquet unattended-upgrades sur votre serveur Ubuntu – ouvrez une fenêtre de terminal et entrez la commande suivante :

apt install unattended-upgrades

Une fois que unattended-upgrades est installé, on le paramètre:

dpkg-reconfigure -plow unattended-upgrades

Répondez “Yes” pour installer les mises à jour stable automatiquement.

Activez ensuite l’outil:

unattended-upgrades enable

Paramètrage d’unattended-upgrades

Le paquet est bien plus puissant qu’il n’y paraît. Personnellement, j’aime bien être informé des mises à jour et des changements sur le serveur, activons donc les notifications.

On édite notre fichier de configuration local (à créer si besoin). C’est le fichier qui ne sera pas écrasé si le paquet est mis à jour:

nano /etc/apt/apt.conf.d/52unattended-upgrades-local

Et en suivant la documentation, on demande la notification récapitulative des mises à jour, le redémarrage automatique si besoin, vers deux heures du matin pour ne pas gêner nos visiteurs:

// email to send notifications
Unattended-Upgrade::Mail "admin@example.com";
// automatic reboot at 2:00 AM
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";	Code language: PHP (php)

Lire la suite

climate change cli fi movies list

Cli-Fi movies: the ultimate list

Climate fiction, also known as cli-fi, is a genre of literature that explores the social, political, and environmental consequences of climate change and global warming. This relatively new genre has gained popularity in recent years as the urgency of the climate crisis has become increasingly apparent, and as people have become more concerned about the future of the planet. Cli-fi often imagines future worlds where the Earth has been affected by significant environmental changes, and how human societies might adapt to these changes.

One of the defining characteristics of cli-fi is its focus on environmental themes. This genre often explores the impacts of environmental degradation, species extinction, and resource scarcity on people and the world, as well as the interconnectedness of social, economic, and political systems with the natural world. Cli-fi can encompass a range of sub-genres, including science fiction, dystopian fiction, and post-apocalyptic fiction, and it can be set in a variety of settings, from cities to rural areas, from the poles to the tropics, and from the past to the future.

One of the main reasons why cli-fi has become such an important genre is that it serves as a cautionary tale, warning readers about the dangers of neglecting the environment and the need for immediate action to address these challenges. Many cli-fi works are dystopian in nature, imagining a future world where the effects of climate change have spiraled out of control, leading to environmental collapse and social upheaval. These works often highlight the urgent need for action, and serve as a powerful reminder of the consequences of inaction.

However, not all cli-fi is dystopian. There are also works of cli-fi that imagine more optimistic futures, in which people have taken bold action to mitigate the impacts of climate change and transition to a more sustainable way of life. These works are often less bleak than their dystopian counterparts, and provide a more hopeful vision of the future. By exploring alternative futures, they offer readers a chance to imagine a better world and to consider different paths forward.

Cli-fi is also an important genre because it provides a platform for exploring complex and interconnected environmental and social issues. By imagining the consequences of current actions and decisions, cli-fi helps to raise awareness about the challenges of climate change, and it provides a way for people to think about the future and their place in it. This genre is especially important for younger generations, who will be most affected by the impacts of climate change, as it provides them with a way to imagine their future, and to think about the world they want to create.

One of the key strengths of cli-fi is its ability to reach a broad audience. Cli-fi is a work of fiction, which makes it accessible to a wide range of readers, including those who might not be interested in more technical or scientific treatments of environmental issues. This genre also attracts the attention of activists and educators, who see it as a powerful tool for raising awareness and inspiring change. Cli-fi provides a way to bring environmental issues to life, and to make them real and relevant to people’s lives, and this makes it an important tool for engaging people in the climate crisis and inspiring them to take action.

Another important aspect of cli-fi is that it is rooted in scientific fact and reflects the latest understandings of the environmental and social impacts of climate change. This makes it a valuable tool for informing the public, and for inspiring people to think about the future in a new and more informed way.

Technologies such as climate engineering or climate adaptation practices often feature prominently in works exploring their impacts on society.

Climate fiction is distinct from petrofiction which deals directly with the petroleum culture and economy.

Although the term “climate fiction” only became used in the 2010s, climate change has been a topic of fiction since the 20th century, pioneered by authors such as J. G. Ballard and Octavia E. Butler. Prominent climate fiction authors include Margaret Atwood, Kim Stanley Robinson and Richard Powers.

1970s

Our Man Flint (1966)
No Blade of Grass (1970),
Soylent Green (1973)
Day of the Animals (1977)

1990s

FernGully (1992)
Split Second (1992)
The Fire Next Time (1993)

The American President (1995),
Waterworld (1995)
The Arrival (1996)
Twister (1996)

2000s – sorted by movie genre

Disaster Movies

Tornados

Twister (1996)
Storm Cell (2008)
NYC Tornado Terror (2008)
F4 Vortex (2010)
Christmas Twister (2012)
Seattle Superstorm (2012)
Into the Storm (2014)

Hurricanes – Torrential Rains

Split Second (1992)
The Fire Next Time (1993)
Category 6 (2004)
Category 7 (2005)
Flood (2007)
Beasts of Southern Wild (2012)
Hurricane Heist (2018)

Tech Failures – Hacks

The Storm (2009)
Category 8 (2013)
500 MPH Storm (2013)
Geostorm (2017)

Apocalypses

Flooded

Noah (2014)

Frozen

The Day After Tomorrow (2004)
Absolute Zero (2006)
Arctic Blast (2010)
Ice Age 2012 (2011)
Ice 2020 (2011)
100̊ Below Zero (2013)

Desiccated

Interstellar (2014)

Melting Tundra

Last Winter (2006)
The Thaw (2009)

Dystopias

Flooded Worlds

Waterworld (1995)
AI (2001)
Lost City Raiders (2008)

Frozen Worlds

Road (2009)
Colony (2013)
Snowpiercer (2014)

Desert Worlds

Rover (2014)
Young Ones (2014)
The Last Survivors (2014)
Mad Max: Fury Road (2015)

Psychological Dramas

Half-Life (2008)
Take Shelter (2011)
Future Weather (2012)
Beasts of Southern Wild (2012)
Night Moves (2013)
The East (2013)
Chloe & Theo (2015)
First Reformed (2017)
Mother (2017)
Parasite (2019)

Comedies

Sit/Rom Comedy

American President (1995)
A Glaring Emission (2011)
Long Shot (2019)
Satire Sharknado 2 (2014)
Downsizing (2017)

Animated Children’s Movies

FernGully (1992)
Ice Age: Meltdown (2006)
The Simpsons Movie (2007)
Cloudy with a Chance of Meatballs (2009)
Happy Feet 2 (2011)
Frozen II (2019)
Arctic Dogs (2019)

Aliens & Superheroes

Aliens discover a warming planet

Split Second (1992)
The Predator (2018)

Aliens promote a warning to create a hospitable planet

The Arrival (1996)
MFKZ (2018)

Aliens and/or Supervillains attack humans to stop global warming

The Day Earth Stood Still (2008)
Tomorrowland (2015)
Kingsman (2015)
Venom (2018)
Avengers: Infinity War (2018)
Avengers: Endgame (2019)
Godzilla: King of Monsters (2019)
Spiderman: Far from Home (2019)
Hobbs & Shaw (2019)

Are there any omissions? Feel free to recommend or add title suggestions in the comment section below!

orange fibre optique logo

Au revoir Free, je passe à la fibre Orange

Et voilà, après plus de 20 ans chez Free, je viens de passer chez Orange pour bénéficier de la fibre optique.

Cela fait des années que j’attends ce moment : la fibre est déployée sur les poteaux de mon village depuis plus de 6 mois mais l’installation individuelle n’avait pas commencée.

Lorsque j’ai vu le camion nacelle chez mon voisin, j’ai vite compris que la FFTH, c’était maintenant!

Inscription chez Orange

Comme c’est Orange qui déploie, c’est eux qui sont prioritaires pour proposer des offres fibres aux particuliers. Ils ont une période de grâce sans concurrents, ce qui explique que beaucoup de gens migrent chez eux puisqu’ils sont prioritaires (et les seuls sur le créneau).

L’autre avantage, c’est que le fil de fibre optique est déployé chez vous par l’un des prestataires de l’opérateur historique: ils savent où se trouvent les regards, les fourreaux… et ils peuvent se targuer d’un travail de qualité.

J’ai eu un rendez-vous sous 10 jours pour la pose de la fibre chez moi.

Installation de la fibre

J’avais passé des heures à fouiller et creuser le jardin sans succès pour trouver le regard EDF et télécom et les techniciens l’ont trouvé en moins de 20 secondes. Quelques dizaines de minutes plus tard, le fil optique passait en dessous de la route, traversait le jardin en lieu et place du précédent fil de cuivre téléphonique et ressortait en bas de mon compteur électrique.

Le fil téléphonique n’étant pas dans une gaine, les techniciens l’ont fait courir le long du mur du garage qui donne derrière mon salon, dans laquelle la prise a été installée. Ce n’est pas ce que j’avais prévu (tous mes équipements réseaux se trouvaient à l’autre bout de la pièce) mais après une courte réorganisation et un peu de cable management, tout est maintenant parfait.

Free

J’ai toujours aimé Free. Cela fonctionne bien. Leurs Freebox sont géniales (comparées à la LiveBox, c’est le jour et la nuit) et pourtant j’en ai connu: Freebox 3, Freebox 4, Freebox 5 HD, Freebox 6 Revolution en enfin Freebox 8 Pop.

Le jour après le déploiement de la fibre à la maison, Free m’appelle pour que je j’annule ma résiliation… c’est un peu tard, étant donné qu’il n’y a plus le fil de cuivre! Ils me proposent alors un rabais de 5 euros. Je leur répond alors que ce n’est pas suffisant puisque l’offre Fibre me coûte moins cher, même avec cette réduction minime. Free ne récompense pas ses plus fidèles freenautes et ne sort des offres que lorsque vous les quittez.

Je n’ai pas du tout apprécié le fait qu’ils prélèvent le mois de novembre entier, alors qu’ils savaient depuis octobre que la migration avait lieu le 3 novembre: ils ont confirmé les migrations des lignes fixe et mobile mais m’ont prélevé au petit matin, 7 heures avant la connexion chez Orange. C’est assez lamentable.

Dernier grief : j’ai cherché à joindre le service client pour les résiliations. Lorsque l’on souhaite s’abonner, cela décroche dans la foulée. Pour résilier, vous êtes “inviter à renouveler votre appel ultérieurement”. Bof bof.

Je reviendrais peut-être un jour, le temps de digérer tout ça.

Alors la fibre?

Je branche la LiveBox 6: 666 Mb/s down, 562 Mb/s up, c’est sûr que ça va changer de l’ADSL (note: j’étais à 6 Mb/s down, 1Mb/s up).

La Livebox indique une synchronisation à 2 Gb/s mais le Wifi ne peut aller que jusqu’à 800 Mb/s, c’est quand même super. Cela est vraiment visible pour l’utilisation du NAS Synology, on va vraiment pouvoir l’utiliser depuis l’extérieur, ce qui n’était pas possible avec le trop faible upload en ADSL.

Projet à terme: monter un serveur, peut-être sur une base ARM?, de manière à consolider notre réseau de site.

ubuntu pro free

Ubuntu Pro : des mises à jour pour 10 ans

Canonical change son offre Ubuntu Pro. Désormais, tout le monde peut profiter gratuitement du support étendu dans la limite de 5 machines.

La distribution Linux Ubuntu est maintenue et développée par l’entreprise Canonical. La distribution en elle-même est disponible gratuitement, mais en parallèle Canonical propose des services payants, notamment Ubuntu Pro, un abonnement qui permet d’avoir une maintenance étendue pour la sécurité et la conformité. En temps normal, Ubuntu Pro est facturé 25 dollars par an et par machine, ainsi que 500 dollars par an et par serveur.

Canonical fait évoluer son offre Ubuntu Pro, ce qui permet aux utilisateurs d’en bénéficier gratuitement dans la limite de 5 machines, que ce soit des ordinateurs ou des serveurs, et que ce soit pour un usage personnel ou commercial.

Ubuntu Pro permet d’avoir des correctifs de sécurité plus rapidement lorsqu’une faille de sécurité est découverte, notamment pour avoir une meilleure protection. Ceci s’applique aux failles critiques, élevées ou moyennes, avec un niveau de réactivité qui peut varier. Des milliers d’applications sont prises en charge dans le cadre du programme Ubuntu Pro : Ansible, Apache Tomcat, Apache Zookeeper, Docker, Drupal, Nagios, Node.js, phpMyAdmin, Puppet, PowerDNS, Python 2, Redis, Rust, WordPress, etc.

Support à long terme de niveau « entreprise »

La proposition s’applique uniquement aux versions avec support à long terme (LTS) du système d’exploitation basé sur le noyau GNU/Linux. Et ce à partir de Ubuntu LTS 16.04.

Il s’agit de versions de niveau « entreprise » de l’OS. Les LTS sont aussi les plus utilisées par l’écosystème et représentent 95% des déploiements, selon Canonical.

Les utilisateurs peuvent obtenir leur abonnement gratuit à Ubuntu Pro sur la page dédiée au programme. Ubuntu One étant le compte unique dont l’utilisateur a besoin pour en bénéficier et se connecter à l’ensemble des services et sites liés à l’OS.

Lorsque l’on connecte les machines à Ubuntu Pro, elles bénéficient donc d’une couverture de maintenance de sécurité étendue, soit 10 ans au total.

Aussi, l’offre gratuite inclut le service Ubuntu Livepatch, celui-ci permet d’installer des mises à jour critiques du noyau sans redémarrer la machine.

Pour les serveurs, lorsque le système hôte physique exécute Ubuntu, l’ensemble des machines virtuelles Ubuntu sur ce serveur sont couvertes. Ubuntu Pro s’étend également à Google Cloud et AWS.

Configurez Ubuntu Pro sur votre serveur

Avec autant d’avantages, il ne nous reste plus qu’à configurer Ubuntu Pro sur le serveur.

Si votre serveur tourne sous Ubuntu Server, le paquet pro est normalement déjà installé. Vous pouvez vérifier cela avec la commande:

pro --version

Résultat de la commande:

27.11.2~22.04.1Code language: CSS (css)

La version minimale que vous devez posséder est la 27.11.2.

Lire la suite

PHP8

WordPress : tester la compatibilité avec PHP 8

Aujourd’hui, nous allons tester la compatibilité avec PHP 8 de tous les sites WordPress du serveur, en ligne de commande et de manière automatisée.

Fin du support pour PHP 7.4 pour novembre 2022

Le cycle de vie de PHP 7.4 est atteint et il n’y aura plus de mises à jour ni de support à la fin du mois de novembre 2022. Cela signifie qu’il est désormais temps de passer sous PHP 8 pour bénéficier des dernières améliorations techniques de PHP et des mises à jour de sécurité.

Et mieux vaut s’y prendre un peu plus tôt, notamment si vous possédez une boutique WooCommerce pour ne pas être pris au dépourvu en pleine période de fêtes (Black Friday, Noël…).

Tester votre code avec php-parallel-lint

Nous allons créer un nouveau projet composer avec php-parallel-lint qui se chargera de scanner notre code et de remonter toutes les incompatibilités, fonctions obsolètes ou problématiques susceptibles de donner des avertissements ou des erreurs lors du basculement vers PHP 8.

Commençons par installer php-parallel-lint:

composer create-project php-parallel-lint/php-parallel-lint php-parallel-lint --no-dev

# ou avec un user :
# sudo su -l www-data -s /bin/bash -c "composer create-project php-parallel-lint/php-parallel-lint php-parallel-lint --no-dev"Code language: PHP (php)

Résultat de la commande:

Creating a "php-parallel-lint/php-parallel-lint" project at "./php-parallel-lint"
Installing php-parallel-lint/php-parallel-lint (v1.3.2)
  - Installing php-parallel-lint/php-parallel-lint (v1.3.2): Extracting archive
Created project in /Users/matt/Downloads/project-ACTAGIS-php8-202208/php-parallel-lint
Loading composer repositories with package information
Updating dependencies
Lock file operations: 4 installs, 0 updates, 0 removals
  - Locking nette/tester (v2.4.2)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking squizlabs/php_codesniffer (3.7.1)
Writing lock file
Installing dependencies from lock file
Nothing to install, update or remove
2 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload filesCode language: JavaScript (javascript)

Installons maintenant l’outil qui permet de coloriser le code dans notre console:

composer require --dev php-parallel-lint/php-console-highlighterCode language: JavaScript (javascript)

Résultat:

Info from https://repo.packagist.org: #StandWithUkraine
Using version ^1.0 for php-parallel-lint/php-console-highlighter
./composer.json has been created
Running composer update php-parallel-lint/php-console-highlighter
Loading composer repositories with package information
Updating dependencies
Lock file operations: 2 installs, 0 updates, 0 removals
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
  - Downloading php-parallel-lint/php-console-color (v1.0.1)
  - Downloading php-parallel-lint/php-console-highlighter (v1.0.0)
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
Generating autoload filesCode language: JavaScript (javascript)

Scanner le code avec php-parallel-lint

Voici la syntaxe pour scanner votre code:

 ./php-parallel-lint/parallel-lint FOLDER_TO_SCAN -p PHP_VERSION

Lire la suite

PHP Composer Banner

PHP : installer Composer sous Ubuntu Server

Voici comment installer Composer, le gestionnaire de paquets PHP qui va grandement vous simplifier la vie en installant toutes les dépendances dont vous avez besoin en une seule commande, sous Ubuntu Server.

Composer est installé sur ma machine mais j’ai besoin en ce moment de vérifier si le code des sites hébergés par le serveur est compatible avec PHP 8. Je peux tout rapatrier sur ma machine et tester tout cela localement mais cela me semble quand même beaucoup plus simple de le faire depuis le serveur, sans transfert de fichiers.

Composer est un outil populaire de gestion des dépendances pour PHP, créé principalement pour faciliter l’installation et les mises à jour des dépendances des projets. Il vérifiera de quels autres paquets un projet spécifique dépend et les installera pour vous en utilisant les versions appropriées selon les exigences du projet. Composer est également couramment utilisé pour lancer de nouveaux projets basés sur des cadres PHP populaires tels que Symfony et Laravel.

Paquets pré-requis

On commence par vérifier que tout est à jour:

apt update && apt upgrade

Ensuite, on vérifie que les paquets pré-requis sont bien installés:

apt install curl unzip php-cli

Installer composer sur le serveur

On télécharge le fichier d’installation, soit avec php, soit avec curl :

# avec php 

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 

# ou alors avec curl

curl -sS https://getcomposer.org/installer -o composer-setup.phpCode language: PHP (php)

On installe ensuite composer très simplement avec PHP. On installe :

php composer-setup.php --install-dir=/usr/local/bin --filename=composerCode language: JavaScript (javascript)

Voici le résultat de la commande:

All settings correct for using Composer
Downloading...

Composer (version 2.4.1) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composerCode language: JavaScript (javascript)

Cela l’installe sous /usr/local/bin/composer de manière globale.

Mettre à jour composer

Pour mettre à jour composer, il suffit d’un simple:

composer update

Et voilà, composerest maintenant installé sur le serveur. Cela nous simplifiera grandement le travail dans quelques jours. Stay tuned!

votre macbook surchauffe

Régler le problème de surchauffe d’un MacBook

Depuis la mise à jour vers MacOS Monterey, mon MacBook Pro est en surchauffe permanente, avec le ventilateur à fond même en simple surf.

Si vous êtes confronté au même problème, voici comment j’ai réussi à retrouver un environnement de travail avec un volume de sonore acceptable (c’est-à-dire silencieux).

Solution 1 : vérifier les options de la batterie

C’est la solution qui a réglé mon problème mais j’ai mis du temps à la trouver car elle n’est indiquée nulle part sur le site du support technique d’Apple.

Ouvrez Préférences Système et cliquez sur l’icône Batterie:

macos preferences systeme batterie
Préférences Système ⟶ Batterie

Dans Batterie ⟶ Batterie, vous devez activer l’option Mode Économie d’énergie:

Dans l'onglet Batterie, activez l'option Mode économie d'énergie
Dans l’onglet Batterie, activez l’option Mode économie d’énergie

Ensuite, passez à l’onglet Adaptateur secteur et activez également l’option Mode économie d’énergie :

macos batterie secteur economie energie
Dans l’onglet Adapteur secteur, activez l’option Mode économie d’énergie

Cela a définitivement résolu mon problème et mon MacBook est redevenu silencieux. Je peux également l’avoir sur les genoux sans me brûler, ce qui est un avantage certain pour un laptop.

Lire la suite

WordPress Using WP CLI

wp-cli : importer et exporter les utilisateurs WP

Voici une méthode simple pour exporter tous les utilisateurs d’une base de données WordPress, pour les réimporter sur un autre site, à l’aide de l’excellent wp-cli.

Nous ferons référence à la base de données source en tant que source-db et à la base de données cible en tant que target-db et je supposerai que vous avez accès aux deux instances WordPress via wp-cli.

Étape 1 : exporter les utilisateurs WordPress

Cette étape fonctionnera avec la base de données source-db:

wp db export --tables = $(wp db tables 'wp_*_users') users.sqlCode language: JavaScript (javascript)
  • notez l’astérisque dans le nom de la table – utilisez-le pour éviter de taper le nom exact de la table pour votre base de données WordPress spécifique
  • notez le nom du fichier exporté, users.sql – cela permet d’identifier clairement le contenu de ce fichier.

Étape 2 : exporter la méta utilisateur WordPress

Cette étape fonctionnera avec la base source-db. Comme ci-dessus, notez le caractère générique et le nom de fichier:

wp db export --tables = $(wp db tables 'wp_*_usermeta') usermeta.sqlCode language: JavaScript (javascript)

Étape 3 : sauvegarde facultative des utilisateurs et usermeta

Cette étape fonctionnera avec la base target-db. Il s’agit d’une sauvegarde facultative des utilisateurs et des tables usermeta avant d’importer les nouvelles données:

  • répétez l’étape 1 (mais en travaillant avec target-db)
  • nommez le fichier backup-users.sql
  • répétez l’étape 2 (mais en travaillant avec target-db)
  • nommez le fichier backup-usermeta.sql

Cela nous donne donc:

wp db export --tables = $(wp db tables 'wp_*_users') backup-users.sql
wp db export --tables = $(wp db tables 'wp_*_usermeta') backup-usermeta.sqlCode language: JavaScript (javascript)

Lire la suite

WHM logo

WHM : obtenir l’accès root pour SSH

Je suis intervenu récemment sur un site qui tourne sur un serveur avec WHM (Cpanel) et j’ai eu besoin d’avoir un accès root en SSH.

Mais problème: l’hébergeur n’autorise pas l’accès root. Il faut signer une décharge de manière manuscrite qui exempte l’hébergeur de toute faute en cas de souci et met fin au support technique… ce qui n’est certainement pas ce que l’on souhaite, ni ce que notre client désire!

En cherchant un peu, j’ai trouvé un moyen très simple de circonvenir à ce problème.

Vérification de l’accès SSH de notre utilisateur

Connectez-vous à WHM.

Ensuite, allez dans Account Functions → Manage Shell Access pour vérifier que la connexion SSH est bien activée pour notre utilisateur.

Choisissez l’option Normal Shell :

WHM: configurer l'accès ssh de l'utilisateur
WHM: configurer l’accès ssh de l’utilisateur

Ajouter l’utilisateur au Wheel Group

Nous allons maintenant ajouter notre utilisateur au Wheel Group. C’est cette étape qui nous permettra d’obtenir l’accès root en SSH.

Lire la suite

linux apt packages

APT : the following packages have been kept back

Après la mise à jour d’Ubuntu Server sur le serveur, j’ai eu cette erreur récurrente après chaque mise à jour apt :

The following packages have been kept back:
  mysql-client mysql-server

Il m’était donc impossible de mettre à jour le serveur et client mysql , ce qui n’est évidemment pas idéal.

Et si l’on essaie de les installer directement avec:

apt install mysql-client mysql-server

On obtient alors ce message:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mysql-common : Conflicts: mysql-client-8.0 but 8.0.29-0ubuntu0.22.04.2 is to be installed
                Conflicts: mysql-client-core-8.0 but 8.0.29-0ubuntu0.22.04.2 is to be installed
 mysql-server : Depends: mysql-server-8.0 but it is not installable
E: Unable to correct problems, you have held broken packages.Code language: CSS (css)

Réinstaller mysql-apt-config

On commence donc par réinstaller le package mysql-apt-config :

wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.debCode language: JavaScript (javascript)

Et on installe le paquet :

dpkg -i mysql-apt-config_0.8.22-1_all.debCode language: CSS (css)

On relance donc la mise à jour :

apt update && apt upgrade

Les nouvelles versions des paquets peuvent désormais être installées :

9 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: http://repo.mysql.com/apt/ubuntu/dists/bionic/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
Listing... Done
libmysqlclient21/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.29-0ubuntu0.22.04.2]
mysql-client/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-common/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-client-core/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-client-plugins/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-client/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-server-core/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-community-server/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
mysql-server/unknown 8.0.29-1ubuntu18.04 amd64 [upgradable from: 8.0.28-1ubuntu18.04]
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  linux-headers-5.15.0-25 linux-headers-5.15.0-25-generic linux-image-5.15.0-25-generic linux-modules-5.15.0-25-generic
  linux-modules-extra-5.15.0-25-generic
Use 'apt autoremove' to remove them.
The following packages will be upgraded:
  libmysqlclient21 mysql-client mysql-common mysql-community-client mysql-community-client-core mysql-community-client-plugins
  mysql-community-server mysql-community-server-core mysql-server
9 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Code language: JavaScript (javascript)

J’ai également écrit un script bash qui automatise tout cela : Mettre à jour mysql-client-server-apt-config

Résoudre le message “Key is stored in legacy trusted.gpg keyring”

Dans le message précédent, nous pouvons trouvez ce message d’avertissement:

W: http://repo.mysql.com/apt/ubuntu/dists/bionic/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.Code language: JavaScript (javascript)

Je l’ai résolu en déplaçant le fichier dans le répertoire trusted.gpg.d :

mv trusted.gpg trusted.gpg.d/

Et voilà, plus d’erreur avec apt et notre système met bien tous ses paquets à jour.