Salut à tous,

Je viens partager avec vous une mésaventure numérique qui vire à l'absurde. Depuis une semaine, je suis enfermé dehors de mon compte LinkedIn. connexion manuel refusée, connexion automatique via gmail refusé : récupération mot de passe erreur 404. erreur 400, erreur, erreur, etc., captcha en boucle... le grand classique.

Jusqu'ici, rien de bien original. Mais voilà le twist : pour « vérifier mon identité » et me rendre l'accès, LinkedIn exige une copie de ma carte d'identité nationale.

Pas mon CV (pourtant bien rempli), pas mon numéro de téléphone (affiché publiquement sur ma bannière depuis des mois), pas une question de sécurité. Non. Ma CNI.

Comme si j'allais confier un document aussi sensible à une plateforme qui n'arrive même pas à gérer un simple login sans erreur 400. Un vol d'identité peut ruiner une vie, et je ne confie ma CNI qu'à ceux qui ont le droit de la voir : la police, la justice. Pas à un réseau social qui se prend pour un commissariat.

Après une semaine de combat, j'ai eu droit à :

- Une multitude d'interlocuteurs (ou de robots) qui répètent « ta carte d'identité, et rien d'autre » en boucle.
- Un agent qui m'a suggéré de passer par un notaire public. Ni plus, ni moins. Smiley lol
- Une fin de non-recevoir polie, mais ferme : sans CNI, pas de compte. Et pas de suppression non plus (à ce stade, je demande la suppression du compte).

J'ai donc décidé de ne plus discuter et de passer à l'action : signalement à la CNIL, contact avec La Quadrature du Net, et un petit post sur les réseaux sociaux pour prévenir les copains. Parce qu'exiger une CNI pour un compte gratuit, c'est non seulement absurde, mais aussi contraire au RGPD (consentement forcé, minimisation des données => article 5 et article 7).

Bref, si vous avez des soucis avec LinkedIn, bon courage. Déjà avoir un interlocuteur, ça va être compliqué. Mais vous allez parler à des murs. Et si un jour on vous demande votre CNI pour un service gratuit, rappelez-vous : vous n'êtes pas chez les flics.
Modifié par Niuxe (17 Jul 2026 - 19:12)
En essayant mon programme de test
https://alma-musica.net/html/tests/test-progarea.html Sur Safari/iOS je constate le comportement suivant
Au moment du drop Safari ouvre une page de recherche Google sur le texte contenu dans la zone déplacée.
Je suis obligé de revenir en arrière pour retrouver ma page, où je constate que la zone a bien été déplacée.
J’en déduis qu’il doit y avoir un événement de type touch qui se produit après le drop.
Une idée pour éviter ce problème ?
Salut, je teste aussi de plus en plus les outils IA intégrés au workflow de développement, et le côté terminal est vraiment intéressant. Le fait qu’ils comprennent l’arborescence et le contexte du projet change pas mal l’utilisation par rapport à un simple chat. Je n’ai pas encore essayé Claude Code, mais je suis curieux de voir comment il se compare à Cursor ou Copilot sur des projets complets.
Le projet avance bien, doucement mais sûrement. Il n’est toujours pas publié pour une utilisation par d’autres, mais j’ai avancé sur la FAQ et sur l’accès au code source / contribution, au bon vouloir de chacun, sans dépendre d’un outil tiers.

Voici le lien de la FAQ : https://code.breat.fr/b/brivacia/docs/faq
Elle est en anglais seulement et donne accès à tout ça si ça intéresse quelqu’un.

Et bien sûr, toute idée, suggestion ou rapport de problème est le bienvenu.
Modifié par Breat (06 Jul 2026 - 11:08)
Bonjour gcyrillus,

Merci de ton suivi.

Il y a l'image par défaut dont le alt est renseigné.

Cette image est supposée être celle qui représente le mieux le produit.

Ensuite il y a une ou plusieurs images complémentaires accessibles par survol ou click sur les vignettes, tu connais le système car tu as conçu le code.

Je veux bien renseigner les alt des vignettes mais franchement c'est impossible de traduire en texte intelligent les images variantes d'un même produit.
Autre approche, alt="vignette n°2", cela me semble ne présenter aucun intérêt.

Par ailleurs cela ne résout pas le problème d'arborescence mal formée selon Google.

Qu'en penses-tu ?
Bonjour,

Je reviens sur le sujet.

La structure du carroussel est actuellement la suivante :

<figure class="photos">
<div><img tabindex="0" src="im/pr/1721G.webp" alt="" width="100" height="58" loading="lazy" decoding="async" /></div>
<div><img src="im/pr/1721G.webp" id="1721X435Xwebp" alt="Texte de présentation du produit" width="280" height="162" fetchpriority="high" decoding="async" /></div>
<div><img tabindex="0" src="im/mu/1721-1G.webp" alt="" width="100" height="46" loading="lazy" decoding="async" /></div>
<div><img src="im/mu/1721-1G.webp" id="1721-1X435Xwebp" alt="" width="280" height="127" loading="lazy" decoding="async" /></div>
<div><img tabindex="0" src="im/mu/1721-2G.webp" alt="" width="100" height="49" loading="lazy" decoding="async" /></div>
<div><img src="im/mu/1721-2G.webp" id="1721-2X435Xwebp" alt="" width="280" height="135" loading="lazy" decoding="async" /></div>
</figure>


Il n'y a pas de bouton avant ou arrière. Au survol de la vignette tabindex="0" la grande image de la ligne suivante apparait.
C'est fait en CSS uniquement.

Facile de déterminer une taille fixe donnée aux div (une taille pour les vignettes, une autre pour l'image principale) puis de demander à l'image de remplir un maximum d'espace avec object-fit.

J'ai une petite alerte de PageSpeed Insights :

PageSpeed Insights a écrit :
L'arborescence d'accessibilité n'est pas bien formée
Une arborescence d'accessibilité bien formée aide les agents IA à naviguer sur la page et à interagir avec elle.


Pour les vignettes j'ai essayé de remplacer <div> par <button>
Mais alors tabindex dans img est interdit.

J'ai parcouru les liens de casper2 sans trouver de réponse bien claire.

Pour commencer savez-vous en quoi "L'arborescence d'accessibilité n'est pas bien formée " ?

Merci d'avance.
schtroumph a écrit :
Ah mais si j'utilise une ligne de commande c'est parce que quelqu'un me l’a passé, comme toi ou sur le forum de Linux Mint francophone. Donc je sais à quoi elle sert, car la personne a expliqué son utilité.

Merci pour toutes ces infos.


Petite anecdote lorque j'étais encore novice. Je suis allé sur le forum ubuntu pour demander comment faire un vhost avec apache. Le membre m'a fait faire des commandes qui ont littéralement planté le système.

En reprenant ce que j'ai dit précédemment (Avec Apple ou Microsoft, tu as des gardes fou. Avec Gnu/Linux, c'est yolo ! Donc à tes risques et périls. GNU/Linux est un formidable système. Mais ça demande de la réflexion) :
niuxe a écrit :

Tu peux planter ton /home. Pire, tu plantes ton système lorsque tu es en mode admin !

Modifié par Niuxe (23 Jun 2026 - 17:50)
schtroumph a écrit :

Merci pour l'info, j'aurais appris un truc de plus Smiley smile


Personnellement, je ne les utilise pas. Ça complique (je suis toujours fervent de KISS et YAGNI)

schtroumph a écrit :

Comment je fais pour vérifier le résultat d'une commande ? car effectivement, je fais un copier-coller et je tape sur entrée. Donc un copier-coller tout bête lol


Très dangereux ce que tu fais. Tu peux planter ton /home. Pire, tu plantes ton système lorsque tu es en mode admin !

RTFM : lire toujours le manuel !

Sous Linux, lire la documentation doit devenir un réflexe. En effet, bien que cela fasse un peu peur au premier abord, la documentation est vraiment le meilleur endroit pour en savoir plus sur les commandes que tu utilises.

La commande man (abréviation de manual) : afficher le manuel d'une commande
La commande man s'utilise très simplement : elle prend en paramètre le nom de la commande dont tu veux lire la doc. Par exemple, si je veux tout savoir sur la commande mkdir, je dois écrire :

man mkdir


Les principales sections du manuel
Comme tu peux le voir, le manuel de la commande est découpé en plusieurs sections (leurs noms sont écrits en gras et alignés à gauche de l'écran).
Voici leur signification.

- NAME : le nom de la commande dont tu es en train d'afficher le manuel ainsi qu'une courte description de son utilité.
- SYNOPSIS : c'est la liste de toutes les façons d'utiliser la commande. Nous y reviendrons un peu plus loin car il est vital de comprendre ce qui est écrit dans cette section.
- DESCRIPTION : une description plus approfondie de ce que fait la commande. On y trouve aussi la liste des paramètres et leur signification. C'est en général la section la plus longue.
- AUTHOR : l'auteur du programme. Il y a parfois de nombreux auteurs ; c'est souvent le cas d'ailleurs avec le logiciel libre.
- REPORTING BUGS : si tu rencontres un bug dans le logiciel, on te donne l'adresse de la personne à contacter pour le rapporter.
- COPYRIGHT : le copyright, c'est-à-dire la licence d'utilisation de la commande. La plupart des programmes que tu utilises sont certainement des programmes open source sous licence GPL, ce qui te donne le droit de voir la source et de redistribuer le programme librement.
- SEE ALSO : cette section te propose de « voir aussi »

Pour faire simple, les trois premières sections sont vraiment les plus importantes (NAME, SYNOPSIS et DESCRIPTION). Ce sont celles que nous regarderons dans la plupart des cas et c'est aussi pour cela qu'elles sont au début du manuel.

Comprendre le SYNOPSIS

Le SYNOPSIS est une des sections les plus importantes mais aussi une des plus difficiles à lire. Son rôle est de lister toutes les façons possibles d'utiliser la commande. En clair, le SYNOPSIS t'affiche toutes les combinaisons de paramètres que l'on peut réaliser avec cette commande. Certains SYNOPSIS sont simples, d'autres plus compliqués. Je pense que le mieux est de voir des exemples pour bien comprendre comment ça fonctionne.

La section SYNOPSIS de mkdir est présentée sur la figure suivante. (mince, je ne peux pas souligner le texte dans ce code)

mkdir [OPTION]... DIRECTORY...


Même si ce SYNOPSIS est court, il contient déjà beaucoup d'informations : il te dit comment on doit utiliser la commande. Détaillons point par point ce SYNOPSIS.

- mkdir : pour utiliser la commande mkdir, tu dois commencer par taper mkdir ; ça, c'est logique.
- [OPTION] : après mkdir, tu peux écrire une option. Dans le SYNOPSIS, on met des crochets pour indiquer que c'est facultatif. Tu n'es donc pas obligés d'écrire une option
- DIRECTORY : c'est le nom du répertoire à créer. Ce paramètre est obligatoire puisqu'il n'est pas entre crochets. C'est en effet logique : la commande mkdir sert à créer un dossier, la moindre des choses est d'indiquer le nom du dossier à créer !
- : le terme DIRECTORY est suivi de points de suspension. Cela signifie que l'on peut répéter DIRECTORY autant de fois que l'on veut. Traduction : on peut indiquer plusieurs répertoires à la fois pour que la commande les crée tous d'un coup.

Les mots du SYNOPSIS écrits en gras sont des mots à taper tels quels. Les mots soulignés, eux, doivent être remplacés par le nom approprié. C'est logique : on doit bel et bien écrire précisément mkdir, par contre on ne doit pas écrire DIRECTORY mais le nom du répertoire. La présence d'un paramètre souligné signifie donc : « Remplace le mot souligné par un mot qui convient à ton cas »

Comme on l'a vu, les points de suspension après DIRECTORY nous indiquent qu'on peut répéter le nom du répertoire autant de fois que l'on veut, ce qui nous permet d'en créer plusieurs d'un coup.
On peut donc aussi utiliser mkdir comme ceci :


mkdir un_répertoire un_autre_repertoire encore_un_repertoire et_un_autre_repertoire etc


Maintenant, on peut aussi préciser des options facultatives (que l'on peut répéter puisque dans le synopsis, il y a les points de suspension). Ces options sont listées dans la section DESCRIPTION du man juste un peu plus bas :


DESCRIPTION
       Créer les RÉPERTOIREs s'ils n'existent pas.

       Les paramètres obligatoires pour les options de forme longue le sont aussi pour les options de forme courte.

       -m, --mode=MODE
              utiliser le mode du fichier (comme avec « chmod »), et non au format umask (a=rw)

       -p, --parents
              pas d'erreur s'il existe, créer des répertoires parents comme il faut, avec des noms de fichier non touchés par l'option -m

       -v, --verbose
              afficher un message pour chaque répertoire créé

       -Z     définir le contexte de sécurité SELinux de tous les répertoires créés au type par défaut

       --context[=CTX]
              comme -Z ou, si CONTEXTE est indiqué, définir le contexte de sécurité SELinux ou SMACK à CONTEXTE

       --help Afficher l'aide-mémoire et quitter.

       --version
              Afficher les informations de version et quitter.


Petite astuce que je fais régulièrement (c'est du bash, il me semble). Je souhaite créer plusieurs répertoires dans un dossier spécifiques. J'utilise l'option -p puis j'ajoute des accolades et j'écris le nom des répertroires sans espaces


mkdir -p static/{css,img,js}


Avec la commande touch, je peux créer à la volée des fichiers vides avec la même extension suivant l'astuce dont je t'ai parlé :

touch static/css/{index,base,components,utilities,extra}.css


Ce qui donnera :

static/
|-- css
|   |-- base.css
|   |-- components.css
|   |-- extra.css
|   |-- index.css
|   `-- utilities.css
|-- img
`-- js


D'ailleurs, en Python, il m'arrive régulièrement de faire ce genre de manip (créer un __init__.py dans chaque dossier)


mkdir -p src/package_{a,b,c}
touch src/package_{a,b,c}/__init__.py


Pour finir, lorsque tu cherches une commande pour faire quelque chose sur ton système, il y a la commande apropos

schtroumph a écrit :

Effectivement c'est pas dans la liste :


Je me doutais que c'était une histoire de droits. Je ne fais pratiquement plus de php (sauf pour quelques cas). De mon côté, j'ai bataillé pour arriver à mes fins. J'ai fait un système avec la commande ln -s. Pour le coup, j'avoue que c'est un peu complexe. Mais ça fonctionne.

schtroumph a écrit :
Pour les sites je nomme toujours les dossiers et les fichiers en minuscules et un tiret du 6 à la place des espaces. Je ne savais pas qu'avec Linux il valait mieux faire la même chose pour les noms des disques. Je vais donc les renommer.


C'est dans le cas du web ! Apache, Nginx, Caddy, serveur de développement, etc. ne fonctionneront pas correctement avec des dossiers mal nommés (ce dont je t'ai parlé précédemment)
____

1. austère, mais très intéressant lorsqu'on connait déjà le sujet : https://www.formatux.fr
2. https://cheat.sh/ (il y a un input sinon en curl si tu veux avoir le résultat dans ton terminal)
3. explainshell.com (un site où tu colles une commande et il te décortique chaque partie en langage clair)
4. tldr (commande à installer sur ton système. L'équivalent de cheat.sh )
Modifié par Niuxe (23 Jun 2026 - 19:31)
Niuxe a écrit :

Ce + indique qu'il y a des listes de contrôle d'accès (ACL) actives sur ce dossier. Le propriétaire est root:root. Même si tes disques sont en drwxrwxrwx, Apache (qui tourne avec l'utilisateur www-data) ne peut pas traverser /media/nenex pour y accéder. C'est aussi pour ça que JDownloader ne voit rien.


Merci pour l'info, j'aurais appris un truc de plus Smiley smile

Niuxe a écrit :

Avant chaque commandes, vérifie ce que cela fait. Ne fais pas un copié/collé tout bête. Je te rappelle que sous GNU/Linux, tu peux exploser le système en une simple commande


Comment je fais pour vérifier le résultat d'une commande ? car effectivement, je fais un copier-coller et je tape sur entrée. Donc un copier-coller tout bête lol


Niuxe a écrit :

1. Vérifier les ACL

getfacl /media/nenex

Il y a de fortes chances que tu constates que www-data n'est pas dans la liste.



Effectivement c'est pas dans la liste :


getfacl : suppression du premier « / » des noms de chemins absolus
# file: media/nenex
# owner: root
# group: root
user::rwx
user:nenex:r-x
group::r-x
mask::r-x
other::---



Niuxe a écrit :

2. ajouter www-data au groupe nenex

sudo usermod -aG nenex www-data
sudo systemctl restart apache2

Relance une sauvegarde Akeeba. Normalement, c'est réglé.


Niuxe a écrit :

3. (alternative) : ajouter www-data directement aux ACL
Si la première solution ne suffit pas :

sudo setfacl -m u:www-data:rx /media/nenex
sudo systemctl restart apache2




La première solution n'ayant pas fonctionné j'ai utilisé la seconde. Et dans Akeeba j'ai bien accès à tous mes disques externes ! Mais le réglage n'est pas sauvegardé. Quand je reviens dans les paramétrages du profil le chemin à nouveau celui par défaut. Et j'ai toujours accès aux disques externes. Sauf si tu as une idée, j'irais demander sur le forum de Joomla.

Par contre avec JDownloader je ne vois toujours pas /media/nenex. J'imagine que si je fais la même chose que pour Akeeba, mais avec :


sudo setfacl -m u:www-data:rx /media/


je devrais voir le dossier nenex.

Je préfère demander avant de faire une con...ie Smiley smile .


Niuxe a écrit :

4. Pour ta question sur les permissions des disques
drwxrwxrwx au lieu de drwxr-xr-x : tes disques sont probablement formatés en NTFS ou exFAT. Ces systèmes de fichiers ne gèrent pas les permissions Unix, donc Linux leur applique des droits larges (777) par défaut. C'est normal et ce n'est pas la source du souci.

5. Pour approfondir
Si tu veux comprendre plus en détail les droits utilisateurs, groupes et permissions sous Linux, je t'invite à lire ou relire cet article ici : Droits sous Linux : Utilisateurs, Groupes, Permissions

Petit conseil en passant : attention aux noms de dossiers
Sous Linux et pour le web, c'est une bonne pratique de nommer ses dossiers en minuscules, sans espaces. Les espaces peuvent poser des soucis avec certains scripts ou applications.

Préfère le snake_case ou le kebab-case :
- image windows ? image_windows ou image-windows
- MUZIKA ? muzika ou muzyka
- NENEX ? nenex
- WEBGUNEAK ? webguneak

Ce n'est pas forcément la source de ton problème actuel, mais c'est une bonne habitude à prendre pour éviter des bugs incompréhensibles plus tard. Et pour les quotes autour des noms ('image windows'), c'est un bricolage qui finit toujours par casser un jour ou l'autre.


Pour les sites je nomme toujours les dossiers et les fichiers en minuscules et un tiret du 6 à la place des espaces. Je ne savais pas qu'avec Linux il valait mieux faire la même chose pour les noms des disques. Je vais donc les renommer.

J'irais voir ton lien Smiley smile . Merci pour tous ces conseils.
Salut,

Le problème vient des ACL sur /media/nenex. Regarde le petit + dans les permissions :

drwxr-x---+  7 root  root    4096 23 juin  07:33  .


Ce + indique qu'il y a des listes de contrôle d'accès (ACL) actives sur ce dossier. Le propriétaire est root:root. Même si tes disques sont en drwxrwxrwx, Apache (qui tourne avec l'utilisateur www-data) ne peut pas traverser /media/nenex pour y accéder. C'est aussi pour ça que JDownloader ne voit rien.

Avant chaque commande, vérifie ce que cela fait. Ne fais pas un copié/collé tout bête. Je te rappelle que sous GNU/Linux, tu peux exploser le système en une simple commande

1. Vérifier les ACL

getfacl /media/nenex

Il y a de fortes chances que tu constates que www-data n'est pas dans la liste.

2. ajouter www-data au groupe nenex

sudo usermod -aG nenex www-data
sudo systemctl restart apache2

Relance une sauvegarde Akeeba. Normalement, c'est réglé.

3. (alternative) : ajouter www-data directement aux ACL
Si la première solution ne suffit pas :

sudo setfacl -m u:www-data:rx /media/nenex
sudo systemctl restart apache2


4. Pour ta question sur les permissions des disques
drwxrwxrwx au lieu de drwxr-xr-x : tes disques sont probablement formatés en NTFS ou exFAT. Ces systèmes de fichiers ne gèrent pas les permissions Unix, donc Linux leur applique des droits larges (777) par défaut. C'est normal et ce n'est pas la source du souci.

5. Pour approfondir
Si tu veux comprendre plus en détail les droits utilisateurs, groupes et permissions sous Linux, je t'invite à lire ou relire cet article ici : Droits sous Linux : Utilisateurs, Groupes, Permissions

Petit conseil en passant : attention aux noms de dossiers
Sous Linux et pour le web, c'est une bonne pratique de nommer ses dossiers en minuscules, sans espaces. Les espaces peuvent poser des soucis avec certains scripts ou applications.

Préfère le snake_case ou le kebab-case :
- image windows ? image_windows ou image-windows
- MUZIKA ? muzika ou muzyka
- NENEX ? nenex
- WEBGUNEAK ? webguneak

Ce n'est pas forcément la source de ton problème actuel, mais c'est une bonne habitude à prendre pour éviter des bugs incompréhensibles plus tard. Et pour les quotes autour des noms ('image windows'), c'est un bricolage qui finit toujours par casser un jour ou l'autre.
Modifié par Niuxe (23 Jun 2026 - 12:06)
Niuxe a écrit :
Salut,

Félicitations pour le passage à Linux Mint Debian.

J'avais déjà mon ordi portable il manquait plus que mon fixe. C'est fait Smiley smile

Niuxe a écrit :

1. Vérifier les droits

ls -la /media/tonutilisateur/


Regarde si les dossiers de tes disques externes sont accessibles en lecture pour les autres utilisateurs (r dans drwxr-xr-x).


nenex c'est mon nom d'utilisateur et j'ai accès aux disques :


nenex@nenex:~$ ls -la /media/nenex
total 406
drwxr-x---+  7 root  root    4096 23 juin  07:33  .
drwxr-xr-x   3 root  root    4096  8 juin  16:22  ..
drwxrwxrwx   1 nenex nenex   4096 22 juin  08:12 'image windows'
drwxrwxrwx   1 nenex nenex   8192 21 juin  14:10  MUZIKA
drwxrwxrwx  39 nenex nenex 262144 23 juin  07:12  NENEX
dr-x------   1 nenex nenex   2048  8 mai    2018  Trackup
drwxr-xr-x  11 nenex nenex 131072 23 juin  07:33  WEBGUNEAK


Après, en dehors d'Akeeba, depuis n'importe quel logiciel j'ai accès en lecture et en écriture à mes disques externes. Sauf avec JDownloader où, comme avec Akeeba les disques n'apparaissent pas, et avec lui ni même le dossier /media/nenex.

Pourquoi pour les disques externes image windows, MUZIKA et NENEX c'est écris drwxrwxrwx et non drwxr-xr-x, donc sans les tirets du 6 ?

Niuxe a écrit :

2. Vérifier où le disque est monté

df -h
mount | grep "/media"

Parfois les disques externes se montent dans /mnt/ ou ailleurs selon la configuration.


Ils sont bien dans /media (je n'ai mis que les lignes de mes disques externes) :


/dev/sdc1          466G    457G  9,6G  98% /media/nenex/NENEX
/dev/sdd1          466G    283G  184G  61% /media/nenex/MUZIKA
/dev/sde1          954G     52G  903G   6% /media/nenex/WEBGUNEAK
/dev/sdb1          932G    666G  267G  72% /media/nenex/image windows



Niuxe a écrit :

3. Debug

sudo tail -f /var/log/apache2/error.log

Si le fichier n'existe pas, essaie /var/log/httpd/error.log.
Lance Akeeba Backup et regarde les logs Apache pour voir l'erreur exacte.


Quand tu dis de lancer Akeeba, c'est lancer une sauvegarde j'imagine ? c'est ce que j'ai fait et voici le log :


[Tue Jun 23 07:44:28.717135 2026] [http2:warn] [pid 1493:tid 1493] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive.
PHP Warning:  PHP Startup: Unable to load dynamic library 'intl' (tried: /usr/lib/php/20240924/intl (/usr/lib/php/20240924/intl: cannot open shared object file: No such file or directory), /usr/lib/php/20240924/intl.so (/usr/lib/php/20240924/intl.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
[Tue Jun 23 07:44:30.671839 2026] [mpm_prefork:notice] [pid 1493:tid 1493] AH00163: Apache/2.4.67 (Debian) OpenSSL/3.5.6 configured -- resuming normal operations
[Tue Jun 23 07:44:30.671858 2026] [core:notice] [pid 1493:tid 1493] AH00094: Command line: '/usr/sbin/apache2'
Salut,

Félicitations pour le passage à Linux Mint Debian. Pour ton problème d'Akeeba Backup qui ne voit pas les disques externes, c'est très probablement un problème de droits ou de montage. Apache (et donc PHP/Akeeba) tourne avec l'utilisateur www-data, qui n'a pas forcément accès à /media/tonutilisateur/.

1. Vérifier les droits

ls -la /media/tonutilisateur/


Regarde si les dossiers de tes disques externes sont accessibles en lecture pour les autres utilisateurs (r dans drwxr-xr-x).

2. Vérifier où le disque est monté

df -h
mount | grep "/media"

Parfois les disques externes se montent dans /mnt/ ou ailleurs selon la configuration.

3. Debug

sudo tail -f /var/log/apache2/error.log

Si le fichier n'existe pas, essaie /var/log/httpd/error.log.
Lance Akeeba Backup et regarde les logs Apache pour voir l'erreur exacte.

Tiens-nous au courant !
Salut

Après des soucis sous Winsows 10, je suis (enfin) passé à Linux Mint Debian et donc LAMP pour gérer les sites en local sous Joomla. J'ai installé un site, fait des mises à jours et j'ai voulu régler Akeeba Backup pour que les sauvegardes se fassent dans un dossier d'un de mes disques durs externes. Ceux-ci se trouvent dans /media/nomutilisateur/nomdudisquedur. Or, dans Akeeba Backup j'arrive bien dans /media/nomutilisateur, mais les disques durs externes n'apparaissent pas !

Joomla 6.1.1
Akeeba Backup 10.3.4
Concernant le RGPD, Brivacia ne s'appuie pas sur les logs serveur pour ses statistiques.

Chaque chargement du pixel reçoit un identifiant journalier anonyme calculé à partir d'une IP tronquée. Cet identifiant change tous les jours et ne permet pas de suivre un visiteur dans le temps.

D'ailleurs, la capture du modal https://i.ibb.co/spnf5QZ5/modal.png que j'ai mise dans le message montre exactement ce que Brivacia connaît (ou ne connaît pas) d'un visiteur.

De plus, la géolocalisation est entièrement configurable :
- désactivée ;
- limitée au pays via BlurLoc ;
- limitée au pays via Cloudflare.

Brivacia ne permet volontairement jamais une géolocalisation plus précise.

Les seuls logs conservés sont les logs de débogage de Brivacia dans le dossier logs.

Je n'ai pas encore fini les tutoriels mais, en gros, pour installer Brivacia :
- télécharger le ZIP ;
- le dézipper ;
- l'uploader sur votre serveur ;
- suivre l'assistant d'installation (site à suivre, nom du site, etc.) ;
- ajouter le code de suivi à toutes vos pages ;
- attendre les visites.

Le titre et le logo sont entièrement personnalisables. Il suffit par exemple de déposer un fichier logo (PNG, JPG, WebP, SVG...) dans static/images pour remplacer le logo par défaut. Le favicon est personnalisable de la même façon.

Brivacia peut suivre plusieurs sites depuis une même installation, gère le multilingue côté sites suivis et son interface est également traduite. Actuellement, le français et l'anglais sont disponibles, d'autres langues seront ajoutées par la suite.

Les traductions initiales sont réalisées avec l'aide de l'IA avant intégration puis peuvent être améliorées par la communauté, conformément à l'esprit AGPL du projet.

J'ai essayé de penser Brivacia pour être robuste (autant que possible pour une v1) et simple à utiliser, aussi bien pour un développeur que pour un non-développeur.

Et en prime, Brivacia reste extrêmement léger : l'archive complète pèse actuellement environ 1,4 Mo, base de test et logs inclus.
Bonjour,

Je développe actuellement Brivacia, un outil de statistiques web open source sous licence AGPLv3.

Le projet est déjà fonctionnel et utilisé sur mes propres sites. Il me reste principalement quelques graphiques à ajouter, la page À propos à terminer et la création du logo définitif.

La philosophie de Brivacia est simple :

Mesurer l'activité d'un site sans chercher à suivre individuellement ses visiteurs.

## Aperçu du projet

https://i.ibb.co/PZc9ksHd/dashboard-sombre.jpg
https://i.ibb.co/3mX4pXn5/dashboard-clair.jpg

## Ce qui différencie Brivacia

Contrairement à de nombreux outils analytics, Brivacia ne cherche pas à construire un profil visiteur.

Par exemple :

- aucune adresse IP complète n'est stockée ;
- aucun profil visiteur n'est créé ;
- les pages vues ne sont jamais associées à un visiteur particulier ;
- la géolocalisation se limite au pays et peut être désactivée.

J'ai même ajouté une page permettant aux visiteurs de voir exactement ce que le site connaît (ou ne connaît pas) à leur sujet :

https://i.ibb.co/spnf5QZ5/modal.png

## Exemple de graphique actuellement utilisé

La couleur bleue #1d9bf0 visible ici est probablement celle qui sera reprise pour la courbe analytics du futur logo :

https://i.ibb.co/Kp87gd5D/graph.png

## Ce que je recherche

Je cherche une personne à l'aise avec :

- Inkscape ;
- Affinity ;
- Illustrator ;
- Gimp ;
- ou tout autre outil similaire.

L'objectif est de créer le logo officiel du projet.

## Ressources déjà disponibles

Le logo historique de breat.fr existe depuis de nombreuses années et doit être conservé tel quel.

Au-delà de son aspect visuel, ce B est utilisé depuis longtemps sur mes projets et fait partie de leur identité. Je souhaite donc qu'il reste l'élément central du futur logo de Brivacia.

https://i.ibb.co/KjqLNRNh/logo.png

J'ai également réalisé un mockup très rapide sous Affinity afin d'illustrer l'idée générale recherchée :

https://i.ibb.co/HLRfPvBL/mockup.png

?? Le mockup sert uniquement à expliquer le concept. Le but n'est évidemment pas de reproduire ce rendu.

L'idée est la suivante :

- le B représente l'héritage de breat.fr ainsi que le B de Brivacia ;
- la courbe bleue représente les statistiques / visites ;
- le bouclier représente la limite volontaire imposée à la collecte d'informations.

Le B ne doit pas être un simple élément décoratif.

J'imagine une courbe analytics qui pénètre dans le B par l'une de ses ouvertures, circule à travers celui-ci puis en ressort. Cette interaction doit symboliser le fait que les visites sont comptabilisées par Brivacia.

Après avoir traversé le B, la courbe est ensuite stoppée par le bouclier avec un léger impact visible, illustrant la limite volontaire imposée à la collecte d'informations et l'absence de suivi individuel des visiteurs.

Le rendu final est bien entendu libre tant que cette idée générale reste reconnaissable.

Je dispose également du SVG du bouclier servant de base de réflexion (modifiable librement).

https://lucide.dev/icons/shield

## Livrables souhaités

- un logo principal (grand format) ;
- une version simplifiée pour favicon / footer / petites tailles ;
- les sources modifiables (SVG et/ou format natif du logiciel utilisé).

Je souhaite absolument récupérer les sources afin d'éviter de reproduire la situation de mon ancien logo dont j'ai malheureusement perdu les fichiers de travail il y a longtemps.

## Contrepartie

Je n'ai malheureusement pas de budget à consacrer à cette partie du projet.

En revanche, je peux proposer :

- un crédit permanent dans la page À propos de Brivacia ;
- un lien vers votre site, portfolio ou réseau social.

Si le projet vous intéresse, je peux fournir davantage de captures, le brief complet ainsi que les ressources existantes.

Merci d'avance ????

PS : Je suis un développeur amateur, pas un graphiste. J'ai une idée assez précise de ce que le logo doit raconter, mais pas les compétences nécessaires pour lui donner le rendu qu'il mérite.
De rien.

Fait attention à rattacher tes écouteurs à document et non pas aux items :
node() {
    this.element = newNode('li', ...);
    this.element.addEventListener('dragstart', event => this.dragstart(event));
    this.element.addEventListener('dragenter', event => this.dragenter(event));
    this.element.addEventListener('dragover', event => this.dragover(event));
    this.element.addEventListener('dragleave', event => this.dragleave(event));
    this.element.addEventListener('drop', event => this.drop(event));
    this.element.addEventListener('dragend', event => this.dragend(event));
    return this.element;
}

Dans le cas présent, si 20 items (10 items X 2 zones de drop) X 6 événements = 120 écouteurs, plus ceux des zones.
Si rattachement à document on réduit à 3 écouteurs, quelque soit le nombre d'items concernés dans la page (édit : 4 finalement, si l'on ajoute un écouteur dédié au nettoyage des classes d'état).
Modifié par Olivier C (15 Jun 2026 - 22:16)
OK je l'ai mis dans dragover sur l'une de mes classes mais pas dans l'autre, ou plutôt j'ai mis stopPropagation au lieu de preventDefault
Je me doutais bien que c'était quelque chose de ce genre mais j'ai été incapable de le voir.
Comme je disais, c'est gros comme une maison...
Merci beaucoup
Smiley smile
Modifié par PapyJP (14 Jun 2026 - 18:20)
PapyJP a écrit :
Merci de t’être donné tant de mal, mais ce que tu fais c’est reprogrammer le test, qui ne présente en soi aucun intérêt.

Sympa. Pas grave : de toute façon si j'interviens sur ce forum c'est que la problématique ou fonctionnalité m'intéresse. Donc ce n'est pas du temps perdu pour moi, je capitalise sur les réponses que je donne ici.
PapyJP a écrit :
Je n’ai nulle part dans mon projet besoin de déplacer des textes entre deux zones.

À la lecture de tes premiers messages ce n'est pas évident à déduire, mais j'entends.
PapyJP a écrit :
Est-ce que j’ai omis quelque chose dans les événements écoutés sur la zone ?

Oui : l'oubli de preventDefault() dans tes gestionnaires. Pour qu'un élément accepte un drop il faut obligatoirement appeler preventDefault() dans le gestionnaire dragover et, dans une moindre mesure, pour dragenter.

preventDefault() annule le comportement par défaut du navigateur pour cet événement. Dans le cas du drag & drop, le comportement par défaut du navigateur pour dragover est de refuser le drop. Le navigateur part du principe qu'un élément n'accepte pas qu'on dépose quelque chose dessus, sauf si tu le lui demande explicitement.
Modifié par Olivier C (15 Jun 2026 - 11:32)
Merci de t’être donné tant de mal, mais ce que tu fais c’est reprogrammer le test, qui ne présente en soi aucun intérêt. Je n’ai nulle part dans mon projet besoin de déplacer des textes entre deux zones. Ce n’est qu’un test bâclé pour comprendre comment fonctionne le mécanisme des événements DnD.
Je n’ai pas de réponse à ma question: pourquoi l’événement drop ne se déclenche pas sur la zone ? Est-ce que j’ai omis quelque chose dans les événements écoutés sur la zone ? Y a-t-il quelque chose à faire dans la déclaration de la zone?
Salut,

Intéressant ! je prends.

Moi je ferais ainsi :

getBoundingClientRect() donne la position et les dimensions de l'élément cible, donc :
- Si la souris est dans la moitié haute -> insertBefore(element, target)
- Si la souris est dans la moitié basse -> insertBefore(element, target.nextSibling)

Pour connaître la position verticale de la souris dans l'élément, utiliser e.clientY - rect.top.

Toutes ces classes CSS sur lesquelles le JavaScript s'appuie dans la démo... elles ne sont pas nécessaires : juste une classe sur les <ul> pour scoper les éléments draggables (ici .drag-list) avec ce comportement spécifique sur la page et pour les items on s'appuie sur l'attribut natif draggable="true", c'est tout.

Ça donne ceci : CodePen

---

PS : j'ai enlevé les classes JS car c'est du sucre syntaxique en ECMAScript, verbeux et sous performant (j'exagère un peu).

PS du PS : le window.addEventListener c'est parce que je suis sur CodePen, mais chez toi tu peux faire mieux en utilisant DOMContentLoaded.

PS du PS du PS : je conseille de donner du feed-back pour les utilisateurs, sinon l'expérience n'est pas très agréable :
.drag-list {
  &.drag-list-empty {
    /* Hauteur minimale pour drop si liste vide : */
    display: grid;
    min-height: 3em;
    width: 100%;
    outline: .1em dashed #777;

    &::before {
      content: 'Glissez vos items';
      align-content: center;
      text-align: center;
    }
  }
  
  li[draggable="true"] {
      cursor: grab;
  }

  li[draggable="true"].dragged,
  li[draggable="true"].over-top,
  li[draggable="true"].over-bottom {
      opacity: 0.4;
  }
}

Édit : correction du JS qui accepte des items si parent .drag-list vide, sinon on est bloqué.
Modifié par Olivier C (04 Jul 2026 - 13:23)
Jencal
Tu confirmes que wamp64 est 'obsolete'!
Une autre solution ? xamp ..ou..autres.
J'ai besoin du SQL (j'ai la table et le site)
Je voudrais réaliser la consultation en permettant le choix par l'utilisateur
de clés ex: années, , Rubriques , Désignations; lieux; patronymes ; notaires_curés_CJ.
Le fichier provient de la bibliothèque digitalisée de 64ans de publication (4x100pages)
voir https://www.geneabel.eu/Librairie/acces2.php
Je vais désinstaller Wamp64 et le réinstaller.
En prenant modèle sur ces codes, j'ai écrit un programme de test.
https://alma-musica.net/html/tests/test-progarea.html
Le but est de déplacer une texte dans la même zone ou dans l'autre zone.
Ce qui marche: déplacer un texte sur un autre texte place le texte déplacé avant le texte cible.
Ce qui ne marche pas: déplacer un texte dans une zone (cadre gris) en dehors du cadre vert.
L'évènement drop sur la zone n'a pas lieu.
Je suppose que c'est gros comme une maison, mais je ne vois pas comment corriger ça.
Une idée?
Merci de votre aide.
voilà la réponse :
php # afficher une salutation echo "Hello, world!"; ?>

fichier
php
# afficher une salutation
echo "Hello, world!";
?>

-------------------
Html
Résultat : html
Voici le résultat :
fichier utilisé:


html<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Exemple Hello 2</title>
</head>
<body>
<h1>Voici le résultat :</h1>
<p>
<?php
// Affiche le message dans le navigateur
echo "Bonjour le monde !";
?>
</p>
</body>
</html>
Bonjour à tous
Cela fait pas mal de temps que je n'ai pas programmé de fonction drag and drop et j'ai du mal à m'en sortir, d'autant que la dernière fois que je l'ai fait (il y a au moins 10 ans) la version de JavaScript n'était pas la même.
L'objectif: changer l'ordre des li dan un ul.
Auriez vous un modèle de code à me proposer ?
Merci de votre aide.
Salut, je me permets de répondre.

Sans jugement, Wamp est assez ancien… Si c’est pour apprendre, c’est un peu comme apprendre à conduire avec une vieille épave : ça fonctionne, mais ce n’est clairement pas le plus simple ni le plus moderne. Bon courage ????

Tu proposes de partager ton code source, mais ce n’est pas nécessaire. Le problème vient très probablement de ton installation WAMP, pas de tes fichiers. D’ailleurs, le fait que tu voies du HTML au lieu du PHP sur localhost le confirme.

Autre chose :
TU dis que tu as testé
http://localhost/project/hello.php

Et que ça ne donne "aucun résultat"... cest à dire ? c'est quoi "aucun résultat" ?

IL a quoi dans ce dossier projet ? un hello.php ? un index.php ? ont il bien la balise php necessaire ?
Modifié par JENCAL (11 Jun 2026 - 13:34)
Bonjour, pas de soucis vous passez quand vous voulez/pouvez.
Oui vous pouvez me transmettre les fichiers dont vous parlez, soit en publiant le lien de téléchargement sur ce forum, soit par message privé.

La réinstallation de wamp peut être une solution, mais vous ne saurez pas ce qui cause le problème actuel. A vous de voir ce qui est plus facile pour vous.

https://wampserver.aviatechno.net/?lang=fr Cliquer sur le bouton vert "directives d’installation" .
Désolé pour ce retarda répondre:
Je peux vous transmettre les infos demandées sous forme d'un ZIP (109k)
comprenant :
La page index affichée après l'ouverture de wamp (autoindex)
Le fichier Host de windows
hello.php (de test)
nouveau_1 page HTML contenant du php (pour test)
Wampserver.jpg utilisé pour créer les virtuals host (NB je remarque la non écriture de fichier .conf!)
J'espère que le fichier vous parviendra.
Bav

Ps ne serait-ce pas plus simple de réinstaller Wamp?
Salut

perso je ne met jamais d'overflow sur le html ou le body, je crée un container entre mon body qui s'occupe uniquement de ça, pour éviter ce genre de problèmes.


<body>
<div class="no_overflow">
 
</div>
</body>

.no_overflow {
    overflow-x: clip;
}



mais tu peux essayer ça, sans te promettre que cela fonctionne :


body {
    overflow-x: clip;
}

Modifié par Pedrothelion (10 Jun 2026 - 11:42)
50 Dernières réponses