Créer un site staging pour WordPress sur un sous-domaine photo

Créer un site staging pour WordPress sur un sous-domaine

Le Centre de Kriya Yoga France n’avait pas de site staging, ce site de développement et de test qui permet de tester, développer ou mettre à jour de nouvelles extensions, sans affecter le site principal.

Une des extensions a eu besoin d’être débugguée par ses concepteurs mais pour des raisons de confidentialité, il nous est apparu intéressant et plus sécurisé de donner accès à un site de développement, fraîche copie du site original, pour le débuggage.

Si vous avez besoin de créer un site staging pour votre site WordPress et que votre hébergeur ne le propose pas, voici comment faire.

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

Nous choisissons la solution la plus simple: servir le site STAGING depuis un sous-domaine. Il suffit de créer un nouvel enregistrement DNS sous la forme:

staging IN A xxx.xxx.xxx.xxxCode language: CSS (css)

staging represente le sous-domaine et xxx.xxx.xxx.xxx représente l’adresse IPv4 du serveur.

Étape 2 : créer le server block sous NginX

Le domaine étant déjà actif, j’ai uniquement rajouté ce server block:

### STAGING ###
 server {
 listen              443 ssl http2;
 listen              [::]:443 ssl http2;
 server_name staging.kriyayoga.fr;
 root /home/www/kriyayoga/staging/public_html;
 set $root /home/www/kriyayoga/staging/public_html;
 index index.php index.htm index.html;
 error_log /var/log/nginx/kriyayoga_staging_error.log;
 #SSL
 ssl_certificate        /etc/nginx/ssl/kriyayoga.fr/fullchain.pem;
 ssl_certificate_key    /etc/nginx/ssl/kriyayoga.fr/privkey.pem;
 include snippets/mime-types.conf;
 #Exclusions
 include snippets/exclusions.conf;
 #Security
 include snippets/security.conf;
 #Static Content
 include snippets/static-files.conf;
 #Fastcgi cache rules
 include snippets/fastcgi-cache.conf;
 include snippets/limits.conf;
 include snippets/nginx-cloudflare.conf;
 #Gzip
 include snippets/gzip.conf;
 location / {
 try_files $uri $uri/ /index.php?$args;
 }
 location ~ .php$ {
 try_files $uri =404;
 include snippets/fastcgi-params.conf;
 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
 #Skip cache based on rules in snippets/fastcgi-cache.conf.
 fastcgi_cache_bypass $skip_cache;
 fastcgi_no_cache $skip_cache;
 #Define memory zone for caching. Should match key_zone in fastcgi_cache_path above.
 fastcgi_cache kriyayoga;
 #Define caching time.
 fastcgi_cache_valid 60m;
 #increase timeouts
 fastcgi_read_timeout 6000;
 fastcgi_connect_timeout 6000;
 fastcgi_send_timeout 6000;
 proxy_read_timeout 6000;
 proxy_connect_timeout 6000;
 proxy_send_timeout 6000;
 send_timeout 6000;
 #these lines should be the ones to allow Cloudflare Flexible SSL 
 #to be used so the server does not need to decrypt SSL if you wish
 proxy_set_header X-Forwarded-Host $host;
 proxy_set_header X-Forwarded-Server $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto https;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-NginX-Proxy true;
 }
 #Protect WooCommerce upload folder from being accessed directly.
 #You may want to delete this config if you are using "Redirect Only" method for downloadable products.
 #Place this config towards the end of "server" block in NginX configuration.
 location ~* /wp-content/uploads/woocommerce_uploads/ {
   if ( $upstream_http_x_accel_redirect = "" ) {
     return 403;
     }
     internal;
 }
 }Code language: PHP (php)

Testez la nouvelle configuration:

nginx -t

Puis redémarrez NginX:

service nginx reload

Note: il est important de noter que je n’ai pas besoin de créer de certificat SSL puisque mes certificats sont wildcard par défaut. Si ce n’est pas le cas chez vous, pensez à en générer pour votre sous-domaine.

Lire la suite

Grand Oral, bac, examen

Réflexions sur le Grand Oral du Bac

L’année 2021 a marqué l’avènement de la réforme Blanquer du lycée, avec pour la première fois la passation de l’épreuve du Grand Oral: les candidats ont deux questions à préparer qui concerne leurs deux spécialités (questions croisées ou non, au choix du candidat).

La préparation au Grand Oral

Pour les enseignants, cela a pris quasiment trois mois de préparation, de mars jusqu’à juin, pour que les élèves trouvent leur question problématisée, ainsi qu’un plan qui tienne la route.

J’ai noté qu’avec le contexte sanitaire très particulier de l’année scolaire ainsi que la très large part de contrôle continu continu (82%), les élèves avaient quasiment tous le bac d’office et le Grand Oral ne représentait alors qu’une variable d’ajustement de leur mention: soit la mention supérieure, soit la stagnation. Difficile dès lors de les motiver pour l’épreuve ou d’espérer qu’ils viennent s’inscrire aux oraux blancs.

L’épreuve du Grand Oral

J’ai cette année été invité comme enseignant spécialiste au jury du Grand Oral. Cela signifie que nous sommes deux enseignants: un enseignant spécialiste d’une discipline enseignée en spécialité de terminale et un autre enseignant lambda qui n’est pas spécialiste.

Le but est que le candidat puisse montrer ses connaissances au spécialiste, tout en vulgarisant suffisamment pour que le non-spécialiste puisse comprendre l’essence de l’exposé. Les deux notent l’éloquence et l’interaction de la présentation du candidat.

En pratique, mis à part les premiers candidats, tous les candidats d’un même jury peuvent connaître la question sur laquelle ils vont plancher puisque c’est forcément la question qui concerne l’enseignant spécialiste. Il est obligé de prendre la question qui correspond à sa spécialité. Dès lors, il y a peu de surprises pour les candidats.

Le cru 2021 a été très particulier car peu d’enseignants pouvaient vraiment dire à quoi allaient ressembler les prestations des candidats. L’épreuve est nouvelle, le nom grandiloquent et la grille d’évaluation assez opaque.

Personnellement, je m’attendais à quelque chose de grandiose, en rapport avec le nom. Il n’en est rien: ce sont juste des oraux, tels qu’on avait l’habitude d’en écouter autrefois, en section littéraire (L).

J’ai eu de très belles présentations, fouillées et structurées, bien argumentées et défendues, mais également des présentations faites à la va-vite, en 3 minutes, sans la moindre cohérence dans le discours, inspirées des anciennes notions du programme précédent (Mythes et Héros particulièrement).

Lire la suite

Nettoyer un site WordPress infecté par un script shell photo 1

Nettoyer un site WordPress infecté par un script shell

Il n’est pas rare de voir des sites WordPress infectés par des scripts shell, qui peuvent exploiter certaines failles du core WordPress, de plugins ou de thèmes.

Ces attaques de WordPress sont courantes et concernent les sites qui n’ont pas été protégés par un antivirus ou un plugin de sécurité comme iThemes Security.

Il peut donc arriver que certains malwares infestent votre site WordPress, de manière automatisée si certaines composantes (core, plugins, themes) ne sont pas mis à jour régulièrement.

La technique détaillée ci-dessous vous permet d’identifier et de supprimer ces fichiers dans vos dossiers WordPress.

Important: avant de commencer, faites une sauvegarde du site: fichiers et base de données.

Étape 1 : suppression des fichiers potentiellement infectés

Sur l’installation en question, ces fichiers n’appartiennent pas à WordPress ou sont infectés. Nous les supprimons à vue:

rm 1index.php index.php db.php del.php wikindex.phpCode language: CSS (css)

Nous supprimons également les répertoires wp-admin et wp-includes de WordPress car souvent des fichiers malfaisants sont copiés dedans:

rm wp-admin -rf
rm wp-includes -rf

Étape 2 : réinstallation de WordPress

On réinstalle WordPress:

wp core download --force --skip-content --locale=fr_FR --allow-root

Lire la suite