8826 sujets

Développement web côté serveur, CMS

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
Modérateur
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 !
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'
Modérateur
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 :

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.
Modérateur
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)
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.
Modérateur
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)