Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/04/2026, à 12:32

LR

Forbidden, Symbolic link not allowed or link target not accessible

Bonjour,

J'ai un simple script php.

J'ai changé de PC. J'ai placé ce script dans /home/me/dev/mon_script/script.php

J'ai installé le méta paquet php qui a installé apache2 et php8

J'ai testé http://localhost qui m'affiche " Apache2 Default Page, IT WORKS".

J'ai testé http://localhost/info.php, ça fonctionne.

J'ai créé un lien vers /home/me/dev/mon_script/ dans /var/www/html/

Quand je teste http://localhost/mon_script/script.php, j'ai
403 Forbidden
You don't have permission to access this resource.

Dans error.log j'ai Symbolic link not allowed or link target not accessible: /var/www/html/mon_script

$ ls -l /var/www/html/
total 24
-rw-r--r-- 1 root root 10671 avril 25 11:40 index.html
-rw-r--r-- 1 root root    17 avril 25 12:03 info.php
lrwxrwxrwx 1 root root    36 avril 25 11:55 mon_script -> /home/me/dev/mon_script

Ça fait deux heures que je bloque là-dessus, quelqu'un peu m'aider à débloquer ça?

Merci d'avance

Hors ligne

#2 Le 25/04/2026, à 18:09

erresse

Re : Forbidden, Symbolic link not allowed or link target not accessible

Bonjour,
As-tu pensé à vérifier si ce n'est pas un problème de cloisonnement, genre ton application s'exécute dans un "bac à sable" et n'est pas autorisée à accéder à des éléments situés en-dehors de son environnement ou limité à certains dossiers spécifiques seulement ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#3 Le 25/04/2026, à 19:39

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

J'avoue que je ne sais pas comment vérifier ça...

C'est une installation de base, tout est standard et par défaut (noble)

Hors ligne

#4 Le 25/04/2026, à 19:42

iznobe

Re : Forbidden, Symbolic link not allowed or link target not accessible

Bonjour , c ' est normal .

Quel est l' objectif ?

Hors ligne

#5 Le 25/04/2026, à 21:21

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

L'objectif: modifier mon script dans /home/me/mon_script puis l'exécuter depuis http://localhost/mon_script/script.php

Dernière modification par LR (Le 25/04/2026, à 21:21)

Hors ligne

#6 Le 25/04/2026, à 22:43

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

il faut faire pointer DocumentRoot sur l'emplacement de tes fichiers.

les recommandations avec symlink qu'on trouve dans les bas fonds du web sont des bricolages tordus et inutiles, qui posent presque systématiquement des problèmes (sans surprise).

Voir 5. Hôtes virtuels.

Hors ligne

#7 Le 26/04/2026, à 09:45

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

Merci,

Du coup j'ai regardé dans /etc/apache2/sites_available et j'ai trouvé 000-default.conf qui apparemment correspond à /var/www/html

Donc j'ai ajouté

<Directory "/var/www/html">
		Options +FollowSymLinks
		AllowOverride all
		Require all granted
	</Directory>

Puis j'ai fais
$ sudo service apache2 restart

Mais j'ai toujours erreur 403 forbidden quand je vais sur mon script.

Je comprends la notion de noms de domaines, de virtual hosts, je comprends l'intérêt de gérer ça proprement avec des documentroot, des sites_enabled etc.

Mais je rappelle qu'il ne s'agit pas d'un site web, qu'il n'est sensé être accessible de nulle part, c'est juste un simple script php que j'ai codé pour automatiser une tâche et que je fais tourner quand j'en ai besoin.

Ça me semble rationnel de le placer dans /home/me/dev/mon_script

Ça me semble rationnel de le rendre exécutable par apache en faisant un simple lien symbolique dans /var/www/html

Je vais finir par faire l'inverse: placer mon_script/script.php dans /var/www/html et faire un lien symbolique dans /home/me/dev mais ça me semble moins rationnel et en tout cas moins propre...

Hors ligne

#8 Le 26/04/2026, à 09:47

iznobe

Re : Forbidden, Symbolic link not allowed or link target not accessible

et si tu fais :

php ~/chemin/script

ça doit marcher dans ce cas non ?

Il est aussi évoqué une autre manière de faire dans cette discussion : https://forum.ubuntu-fr.org/viewtopic.php?id=665951

Dernière modification par iznobe (Le 26/04/2026, à 09:50)

Hors ligne

#9 Le 26/04/2026, à 09:56

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

Bonne idée ! Comment n'y ais-je pas pensé plus tôt roll

Merci iznobe. C'est clairement le plus simple, et ça fonctionne cool

Par contre, quand je debug, j'aime bien générer du html pour afficher des résultats donc je reste intéressé par la petite option bien placée qui permettra à apache de servir un fichier qui se trouve derrière un lien symbolique dans /var/www/html.

Hors ligne

#10 Le 26/04/2026, à 10:08

iznobe

Re : Forbidden, Symbolic link not allowed or link target not accessible

c' est bien pour ça que j' avais demandé quel était le besoin précisément tongue .

tu peux toujours mettre dans ton script , un " truc " qui dit d' enregistrer les sorties debug dans un fichier debug.html , qui sera enregistré dans /var/www/html .
Mais du coup , ça obligera de faire ça en root .

Dernière modification par iznobe (Le 26/04/2026, à 10:10)

Hors ligne

#11 Le 26/04/2026, à 10:26

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

En effet mais à ce compte-là je dois aussi bien pouvoir enregistrer la sortie debug dans /home/me/dev et l'ouvrir "manuellement" dans firefox.

Hors ligne

#12 Le 26/04/2026, à 10:38

iznobe

Re : Forbidden, Symbolic link not allowed or link target not accessible

oui, aussi.

Hors ligne

#13 Le 26/04/2026, à 12:21

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

tu devrais lire la doc apache que j'ai mise en lien : on n'utilise plus service.

et mieux vaut créer un virtualhost que modifier celui par défaut !

Hors ligne

#14 Le 26/04/2026, à 12:41

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

Oui, j'ai lu que VirtualHost lie des noms de domaines. Donc ça ne me concerne pas.

J'ai lu que Options +FollowSymLinks permet que apache suive les liens symboliques qu'il trouvera dans ce répertoire (et ses descendants). Mais ça ne marche pas.

Hors ligne

#15 Le 26/04/2026, à 13:26

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

LR a écrit :

Oui, j'ai lu que VirtualHost lie des noms de domaines.

pas forcément non ! (tu as lu ça où ?)

et ça te concerne forcément si tu utilises apache : tout passe par un virtualhost.

Hors ligne

#16 Le 26/04/2026, à 20:33

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

krodelabestiole a écrit :

pas forcément non ! (tu as lu ça où ?)

Dans la documentation :

Cet hôte virtuel sera seulement appelé pour le nom de domaine example.com…

krodelabestiole a écrit :

et ça te concerne forcément si tu utilises apache : tout passe par un virtualhost.

Soit, j'ai donc essayé /etc/apache2/sites_available/000-default.conf

Du coup, pourquoi ça ne marche pas?

<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	#ServerName www.example.com

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html

<Directory "/var/www/html">
		Options +FollowSymLinks
		AllowOverride all
		Require all granted
	</Directory>

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

Dernière modification par LR (Le 26/04/2026, à 20:34)

Hors ligne

#17 Le 26/04/2026, à 20:56

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

LR a écrit :

Dans la documentation :

Cet hôte virtuel sera seulement appelé pour le nom de domaine example.com…

oui : c'est un exemple !

sur la même page :

Chaque hôte virtuel peut être appelé en fonction d'un nom de domaine ou sous-domaine, c'est la configuration la plus courante. Mais on peut également définir un numéro de port particulier, ou une adresse IP particulière (si le serveur en possède plusieurs) pour laquelle on affichera tel ou tel contenu web.

j'ai essayé de faire aussi clair que possible...

on a eu de très nombreuses personnes sur le forum qui comprenaient mal les permissions linux, et ont utilisé des liens symboliques en pensant que ça allait résoudre leurs problèmes.
spoiler : ce n'est pas le cas. ça ajoute juste un niveau de complexité supplémentaire, et inutile.

plus d'info quand j'aurais le temps plus tard.

Hors ligne

#18 Le 26/04/2026, à 20:58

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

Quand j'aurai le temps je vais comparer les fichiers de config de mon installation sur mon ancien PC avec ceux de ma nouvelle machine. Il doit bien y avoir un paramètre qui change...

Hors ligne

#19 Le 26/04/2026, à 22:07

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

en fait si on ne spécifie rien de particulier dans le VirtualHost (<VirtualHost *:80> pour prendre en charge toutes les requêtes sur le port 80, pas de ServerName particulier...), le VirtualHost sera pris en compte, en tout cas le premier correspondant et activé (voir ls -l /etc/apache2/sites-enabled : ce sont simplement des symlinks, comme expliqué là)

Mais c'est seulement le premier VirtualHost (par ordre alphabétique du nom du fichier) qui est pris en compte.
Par défaut c'est donc 000-default.conf
https://doc.ubuntu-fr.org/apache2#par_defaut

... et mieux vaut éviter de modifier celui-ci, c'est aussi indiqué :

De plus ces fichiers existants par défaut peuvent éventuellement être écrasés lors de mises à jour majeures du système.

Pour le désactiver :

sudo a2dissite 000-default

à partir de là tu peux créer ta config dans un fichier propre. Par ex. dans un fichier /etc/apache2/sites-available/custom.conf :

<VirtualHost *:80>
	DocumentRoot "/home/me/dev/"
	<Directory "/home/me/dev/">
		AllowOverride all
		Require all granted
	</Directory>
	ErrorLog /var/log/apache2/error.custom.log
	CustomLog /var/log/apache2/access.custom.log combined
</VirtualHost>

(ou plutôt que custom, le nom du site ? ce serait plus clair !)

pour activer la config :

sudo a2ensite custom
sudo systemctl reload apache2

et pour appeler le script depuis ton navigateur :
http://localhost/mon_script

tout est expliqué dans la doc (chercher DocumentRoot sur la page)...


si tu as des problèmes de permissions, voir 10.1 Permissions
si c'est trop compliqué, donne le retour de :

ls -l /home/me/dev/mon_script

Hors ligne

#20 Le 26/04/2026, à 22:11

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

Oui, je comprends bien.

Ce n'est pas que ce soit trop compliqué en soit, c'est que c'est trop compliqué pour juste faire tourner un pauvre script qui tournait très bien sans faire tout ça sur mon ancienne machine...

$ ls -l dev/mon_script
total 104
-rw-rw-r-- 1 me me  4278 avril 25 11:39  script.php

Hors ligne

#21 Le 26/04/2026, à 22:13

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

voir aussi ce tuto si tu n'es pas à l'aise avec ça : https://doc.ubuntu-fr.org/tutoriel/lamp … de_travail

Hors ligne

#22 Le 26/04/2026, à 22:25

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

LR a écrit :
$ ls -l dev/mon_script
total 104
-rw-rw-r-- 1 me me  4278 avril 25 11:39  script.php

si seul me a accès ton fichier, Apache n'y aura pas accès (utilisateur www-data).
pareil pour root.

monter un serveur web, même pour un développement local, ce n'est effectivement pas ce qu'il y a de plus simple.
ce n'est pas trop compliqué non plus.

comme souvent, il faut surtout comprendre le fonctionnement des permissions.
c'est juste un paragraphe : 10.1 Permissions.

Hors ligne

#23 Le 26/04/2026, à 22:33

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

LR a écrit :
-rw-rw-r-- 1 me me  4278 avril 25 11:39  script.php

ici tout le monde y a accès en lecture, mais pas forcément aux répertoires parents.
c'est aussi pour ça que les fichiers de sites vont généralement dans /var/www ou /srv/www (leurs permissions sont standardisées), alors que tout le monde n'est pas censé avoir accès à ton home !

pour vérifier :

namei -l $PWD/dev/mon_script

... et avec un symlink il faut faire cette gymnastique à la fois pour le chemin du symlink et pour celui de sa cible...

Hors ligne

#24 Le 26/04/2026, à 22:46

LR

Re : Forbidden, Symbolic link not allowed or link target not accessible

En effet merci.

Comme error.log disait "Symbolic link not allowed", je me suis focalisé sur les paramètres apache alors qu'il disait aussi "or link target not accessible" ce qui indique peut-être un problème de permissions.

Effectivement, mon dossier utilisateur /home/me n'autorisait pas l'accès en lecture.

J'ai fais chmod 755 /home/me et j'ai pu exécuter mon script.

Et ce n'est pas forcément une bonne idée d'ouvrir mon home en lecture à tout le monde...

Hors ligne

#25 Le 26/04/2026, à 22:47

krodelabestiole

Re : Forbidden, Symbolic link not allowed or link target not accessible

non... roll

Hors ligne