Drapeau Français

Funigo

Drapeau Japonais

Météo Paris

Temp: - °C

Nuages: - %

Pluie: - mm

Météo Tokyo

Temp: - °C

Nuages: - %

Pluie: - mm

Taux de Change

1 EUR
    =
- JPY

Heure Paris

--:--

Heure Tokyo

--:--

Modifier ou supprimer un Articles du Blog TECH

PROD nodejsd pm2

sudo npm install -g pm2 Démarrage: ---------- cd /var/www/funigo pm2 start server.js --name funigo Les commandes ------------- pm2 status pm2 logs funigo pm2 restart funigo pm2 stop funigo

Sauvegarde funigo sur USB

********************************************************************************** # Faire la sauvegarde sur la clé USB ********************************************************************************** Faire le tar compresser ----------------------- cd /var/www timestamp=$(date +%Y%m%d_%H%M%S) && \ sudo tar czf /media/fred/back_funigo/funigo_$timestamp.tgz \ --exclude='./funigo/node_modules' \ funigo Vérification ------------ fred@funigo:/var/www $ ls -lh /media/fred/back_funigo/fu* -rwxr-xr-x 1 root root 283M Feb 2 10:22 /media/fred/back_funigo/funigo_20260202_102234.tgz

Apache configuration

fichier /etc/apache2/apache2.conf fred@funigo:~ $ sudo cat /etc/apache2/sites-available/funigo.conf # Redirection de HTTP vers HTTPS <VirtualHost *:80> ServerName www.funigo.fr ServerAlias funigo.fr # On redirige tout vers la version sécurisée Redirect permanent / https://www.funigo.fr/ </VirtualHost> # Configuration principale pour HTTPS (SSL) <VirtualHost *:443> ServerName www.funigo.fr ServerAlias funigo.fr # On adapte vos chemins Windows vers Linux SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/funigo.fr/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/funigo.fr/privkey.pem" # Vos headers de sécurité [cite: 81, 82] Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" <IfModule mod_headers.c> Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'sha256-8AFl6gs2BjOGxU9eZtoVWi4wLFMR4DkrvF+TlMsKORc='; style-src 'self' https://cdnjs.cloudflare.com 'unsafe-inline'; connect-src 'self' https://api.open-meteo.com https://api.exchangerate-api.com https://worldtimeapi.org https://cdn.jsdelivr.net; img-src 'self' data:; font-src 'self' https://cdnjs.cloudflare.com data:;" Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" Header set Referrer-Policy "no-referrer-when-downgrade" </IfModule> # Configuration du Reverse Proxy vers Node.js ProxyPass /.well-known ! ProxyPreserveHost On ProxyRequests Off ProxyPass / http://localhost:5000/ ProxyPassReverse / http://localhost:5000/ # Chemins des logs version Linux ErrorLog ${APACHE_LOG_DIR}/funigo-error.log CustomLog ${APACHE_LOG_DIR}/funigo-access.log common </VirtualHost> ******************************************************************************************************************************* Activer les modules Apache ******************************************************************************************************************************* 1. Préparer le terrain : Activer les modules Apache Sur Windows, vous activiez les modules avec des lignes LoadModule directement dans le fichier. Sur Raspberry Pi, c'est bien plus simple ! On utilise des commandes pour "allumer" les options. Ouvrez votre terminal et tapez ces commandes pour activer ce dont votre configuration a besoin: sudo a2enmod ssl (Pour le cadenas vert) sudo a2enmod proxy proxy_http (Pour parler à votre app Node.js) sudo a2enmod headers (Pour la sécurité renforcée) sudo a2enmod rewrite (Pour les redirections) sudo a2enmod ssl sudo a2enmod proxy proxy_http sudo a2enmod headers sudo a2enmod rewrite sudo systemctl restart apache2 fred@funigo:~ $ sudo a2ensite funigo.conf Enabling site funigo. To activate the new configuration, you need to run: systemctl reload apache2 On copie les fichiers .pem de window vers linux sudo cp ~/apache-file/*.pem /etc/letsencrypt/live/funigo.fr fred@funigo:~ $ sudo systemctl reload apache2

Supprimer une vue

MariaDB [jap]> show FULL TABLES where table_type = 'view'; +---------------+------------+ | Tables_in_jap | Table_type | +---------------+------------+ | v_quiz_ora | VIEW | | vue_quiz_2 | VIEW | | vue_quiz_N2 | VIEW | | vue_quiz_N4 | VIEW | | vue_quiz_N5 | VIEW | | vue_quiz_n1 | VIEW | | vue_quiz_n2 | VIEW | | vue_quiz_n3 | VIEW | | vue_quiz_n4 | VIEW | +---------------+------------+ 9 rows in set (0.001 sec) MariaDB [jap]> drop view vue_quiz_N5; Query OK, 0 rows affected (0.006 sec)

Mysql configuration du service MYSQL par modification de la clé

Ordinateur\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL ImagePath --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL

Ouvrir un fichier dans un onglet

Ouvrir un fichier dans un onglet

Faire clignoter un élément (ex paramètre)

Faire clignoter le paragraphe <p style="animation: blink 2s infinite;"><br>Cliquer sur une ligne pour avoir des détails<br></p> Blink est l’identifiant qui permet la définition du keyframe dans le css Dans le css définition de @keyframes blink { 0% { opacity: 1; } 20% { opacity: 0; } 100% { opacity: 1; } }

Faire un commit

git add * git commit -m "202509141800 avec la documentation mise à jour" git branch -M main git push -u origin main git log --oneline History

Inserer des données avec un retour à la ligne dans un champ

Pour insérer des retours à la ligne dans une colonne texte (comme ARTICLE ou CONTENU) dans MySQL, tu peux utiliser la séquence d’échappement qui représente un saut de ligne. Par exemple : INSERT INTO funigo_blog (TITRE, ARTICLE, DATE_CREAT, DATE_MODIF) VALUES ('Titre de l'article', 'Première ligne Deuxième ligne Troisième ligne', '2025-09-10', '2025-09-10'); Autre méthode avec la fonction CHAR() pour insérer un saut de ligne (code ASCII 10) : INSERT INTO funigo_blog (TITRE, ARTICLE, DATE_CREAT, DATE_MODIF) VALUES ('Titre', CONCAT('Première ligne', CHAR(10), 'Deuxième ligne', CHAR(10), 'Troisième ligne'), '2025-09-10', '2025-09-10');

Voir l'année et le niveau intégré dans la table quiz

mysql> SELECT DISTINCT annee, niveau FROM quiz; +-------+-----------+ | annee | niveau | +-------+--------+ | 1991 | N3 | | 1991 | N4 | | 1993 | N4 | | 1992 | N3 | | 1992 | N4 | | 1991 | N2 | | 1993 | N3 | | 1994 | N4 | | 1992 | N2 | +-------+--------+

Insérer des valeurs dans une table

INSERT INTO vocab_char (niveau, kana, kanji, francais) VALUES ('N5', 'つかう', '使う', 'employer, utiliser'); N5 つかう 使う employer, utiliser select * from vocab_char where kanji = '使う'; mysql> select * from vocab_char where kanji = '使う'; +------------+--------+-----------+--------+------------------------+ | voca_index | niveau | kana | kanji | francais | +------------+--------+-----------+--------+------------------------+ | 26312 | N5 | つかう | 使う | employer, utiliser | +------------+--------+-----------+--------+-------------------------+ 1 row in set (0.00 sec)

Avoir les caractères japonais sous POWERSHELL

PS C:WINDOWSsystem32> mysql --default-character-set=utf8mb4 -u root -p Enter password: **********

Renuméroter l'index d’une table

Créer une nouvelle table temporaire avec la même structure (sauf l'ID) : Nous allons créer une table temporaire pour y stocker les données avec les nouveaux IDs. CREATE TABLE quiz_new ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, ANNEE INT, NIVEAU VARCHAR(2), TEXTE TEXT, REP_OK TEXT, QUESTION TEXT, REP1 TEXT, REP2 TEXT, REP3 TEXT, REP4 TEXT ); Insérer toutes les données de l'ancienne table dans la nouvelle, en générant de nouveaux IDs consécutifs : C'est ici que nous utilisons une variable utilisateur pour assigner un id consécutif à chaque ligne lors de l'insertion. SET @row_number = 0; -- Initialiser le compteur INSERT INTO quiz_new (ANNEE, NIVEAU, TEXTE, REP_OK, QUESTION, REP1, REP2, REP3, REP4) SELECT ANNEE, NIVEAU, TEXTE, REP_OK, QUESTION, REP1, REP2, REP3, REP4 FROM quiz ORDER BY id; -- Il est important de trier pour que les nouveaux IDs reflètent un ordre logique si désiré Note : Nous ne spécifions pas la colonne id dans l'INSERT de quiz_new, car elle est AUTO_INCREMENT et générera automatiquement les IDs à partir de 1. ORDER BY id est important ici pour s'assurer que si vous aviez des IDs non consécutifs dans l'ancienne table, les nouvelles IDs suivent l'ordre des anciennes IDs. Supprimer l'ancienne table quiz : DROP TABLE quiz; Renommer la nouvelle table quiz_new en quiz : ALTER TABLE quiz_new RENAME TO quiz;

Intégrer un fichier csv dans une table après DELETE

Réinitialiser le compteur sans vider la table (uniquement si la table est déjà vide mais le compteur est élevé) Si vous avez déjà vidé la table avec DELETE FROM mais que le compteur n'a pas été réinitialisé : SQL -- 1. Vérifiez que la table est bien vide : SELECT COUNT(*) FROM quiz; -- Doit retourner 0 -- 2. Réinitialiser le compteur AUTO_INCREMENT à 1 ALTER TABLE quiz AUTO_INCREMENT = 1; -- 3. Ensuite, chargez vos données LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/quiz.csv' INTO TABLE quiz FIELDS TERMINATED BY ',' ENCLOSED BY '"' -- Ajustez cette ligne si vos champs ne sont pas entourés de guillemets LINES TERMINATED BY ' ' IGNORE 1 ROWS -- Ajustez cette ligne si votre CSV n'a pas d'en-tête ( @dummy_id, -- Lit le premier champ du CSV dans une variable temporaire non utilisée ANNEE, NIVEAU, TEXTE, REP_OK, QUESTION, REP1, REP2, REP3, REP4 );

Modifier une colonne en TEXT

ALTER TABLE quiz MODIFY question TEXT;

Importer les données d'un fichier csv dans une table

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/quiz.csv' INTO TABLE quiz FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY ' ' IGNORE 1 ROWS;

Effacer les données d'une table

DELETE FROM quiz; : Supprime toutes les lignes, mais ne réinitialise pas le compteur AUTO_INCREMENT. TRUNCATE TABLE quiz; : Supprime toutes les lignes et réinitialise le compteur AUTO_INCREMENT à sa valeur de départ (généralement 1). C'est beaucoup plus rapide pour vider une table.

Extraire les données d'une table dans un fichier csv

SELECT * FROM quiz INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/quiz_20250907.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY ' ';

Voir le répertoire autorisé à charger

mysql> SHOW VARIABLES LIKE 'secure_file_priv'; +------------------+------------------------------------------------+ | Variable_name | Value | +------------------+------------------------------------------------+ | secure_file_priv | C:ProgramDataMySQLMySQL Server 8.0Uploads | +------------------+------------------------------------------------+ 1 row in set, 1 warning (0.00 sec)

Avoir UTF8 dans Mysql 8.0 Command Line CLI

mysql> SHOW VARIABLES LIKE 'char%'; +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | cp850 | | character_set_connection | cp850 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | cp850 | | character_set_server | utf8mb4 | | character_set_system | utf8mb3 | | character_sets_dir | C:Program FilesMySQLMySQL Server 8.0sharecharsets | +--------------------------+---------------------------------------------------------+ 8 rows in set, 1 warning (0.01 sec) Se logger avec powershell Mysql -u root -p --default-character-set=utf8mb4