PHP télécharge un fichier dans un répertoire en dehors de la racine du serveur Web

J’ai donc une question pour vous les gars … J’essaie d’écrire un site web en PHP qui permettra aux gens de télécharger des images sur mon serveur. J’ai la partie téléchargement qui fonctionne, donc ce n’est pas le problème. Le problème est lorsque j’essaie d’écrire les fichiers téléchargés dans un répertoire en dehors de la racine du document apache.

Le répertoire racine d’Apache est / var / www / et le répertoire que j’essaie d’enregistrer est / mnt / storage / images /. J’ai créé le répertoire, changé le groupe en www-data et changé les permissions sur le répertoire en 777 (même si je sais que c’est une sécurité horrible). J’ai essayé plusieurs choses avec le fichier de configuration apache, /etc/apache2/apache2.conf, à savoir l’ajout d’un tag et d’une ligne Alias, mais rien ne semble fonctionner. Chaque fois que j’essaie de télécharger un fichier dans le répertoire images, cela me donne une erreur de permission. J’ai même essayé d’y placer quelques fichiers manuellement et de naviguer dans le répertoire, en utilisant l’alias, avec le navigateur Web, et j’obtiens une erreur 403.

Je sais que je fais quelque chose de mal ou je n’ai rien fait pour que cela fonctionne. Je cherche de l’aide sur cette question depuis quelques jours, et tout ce que je trouve, ce sont des informations inutiles, ou des morceaux d’information qui aident à peine.

Btw … Je suis sur Ubuntu 11.04 avec Apache 2.2.17, et j’ai un access root et tout ce jazz.

Merci Robbie

EDIT: Voici la partie de la configuration d’Apache que j’ai mise dans:

Alias /images "/mnt/storage/images/"  Allow from all  

Vous devez accorder des permissions d’access Apache à TOUS les répertoires concernés:

 /mnt /mnt/storage /mnt/storage/images 

Il n’y a aucun intérêt à faire 777 sur les images si Apache n’a aucun droit sur les répertoires de storage ou mnt .

Bien sûr, seules les images doivent avoir des droits d’écriture, car c’est là que vous effectuez les opérations de fichiers. mnt et storage nécessiteraient au maximum des permissions de lecture, et vous pouvez vous passer d’permissions globales (xx7) en plaçant le compte utilisateur d’Apache dans un groupe et en ajoutant le répertoire images à ce nouveau groupe.

Vous avez probablement activé safe_mode en PHP. Éteignez

C’est probablement le open_basedir . Vous pouvez l’activer et le désactiver pour des domaines spécifiques … Essayez quelque chose comme

  php_admin_flag engine on php_admin_value open_basedir none  

(Info ici) [http://forum.parallels.com/showthread.php?t=62750%22] si vous utilisez Plesk. Ou vous devriez pouvoir l’adapter à ce que vous utilisez