2010-12-04 4 views
0

Je veux créer un lien symbolique avec PHP.PHP symlink(): Permission refusée dans le dossier inscriptible

Le lien symbolique doit aller au même endroit que le fichier téléchargé, ce qui devrait aller bien non?

Mon vrai problème est que lorsque j'utilise symlink(), j'obtiens une erreur d'autorisation refusée sur le même répertoire que PHP peut écrire à partir de $_FILES.

Je l'ai fait un test en utilisant text.txt comme le fichier de test et link comme le lien symbolique:

symlink("repository/text.txt", "link");

Le script PHP est exécuté à partir content/folder/script.php. Qu'est-ce que je fais mal ici? Est-ce que les liens symboliques ont besoin d'extensions de fichiers (j'en doute) ou quelque chose?

+1

Si vous n'avez pas spécifié le chemin absolu pour 'link', PHP utilisera le répertoire de travail actuel, est-ce que c'est ce que vous voulez? – ajreal

+0

Ouais c'était mon problème - s'il vous plaît voir le post de goreSplatter ci-dessous :-) – Bojangles

Répondre

2

Si cela est le code que vous utilisez

symlink("repository/text.txt", "link"); 

Et votre script fonctionne comme /var/www/scripts/script.php le lien symbolique sera créé dans le répertoire du script est exécuté dans.

Essayez d'utiliser un chemin absolu.

+0

Merci :-) qui a bien fonctionné. Le problème était que le second argument ('link') était relatif, pas absolu, comme vous l'avez dit. Tout est maintenant corrigé avec 'symlink (" repository/file.txt "," repository/link ");' – Bojangles

Questions connexes