2010-02-17 9 views
0

Actuellement j'utilise shared webhost (Linux) pour héberger mon site. Je sais que tout ce qui se trouve dans le répertoire '~/home/mon_nom_utilisateur/www' est modifiable par le serveur. Quels sont les autres endroits? Fondamentalement, je veux changer l'emplacement de stockage de session par défaut et probablement je ne devrais pas le mettre dans le répertoire www.Quels répertoires sont modifiables par le serveur Web sur un hébergement Web partagé?

Modifier

Est-ce que l'emplacement d'enregistrement de la session doit être serveur web inscriptible, depuis la session est enregistrée par le processus PHP?

EDIT 2

Comment pourrais-je donner lecture et écriture privilège d'Apache sur /home/my_user_name/tmp répertoire (tmp est hors du répertoire www)?

Répondre

2

Il n'y a pas vraiment de "standard" pour les répertoires qui puissent être écrits en écriture par le serveur httpd: tout dépend des droits d'accès qui ont été donnés par l'utilisateur qui possède les répertoires.

Les fichiers de session temporaires sont généralement stockés dans le répertoire /tmp, qui est généralement accessible à tous - mais cela signifie que vos fichiers de sessions seront dans un répertoire accessible par d'autres applications et utilisateurs qui utilisent le même serveur que vous.


Comme vous exécutez votre application à partir du répertoire /home/my_user_name/www, une solution pourrait être de créer un autre répertoire, comme /home/my_user_name/tmp, et donner lecture et écriture privilège d'Apache sur ce répertoire - et, puis, configurez votre application/php pour que les fichiers de session y soient stockés.

Une autre solution consisterait à stocker les données de session dans une base de données: vous avez probablement une base de données inaccessible aux autres utilisateurs et applications de votre serveur.

+0

@pascal: comment donner le droit de lecture + écriture à Apache sur le répertoire tmp? Apache viendrait sous utilisateur/groupe/autres? Probablement que ça ferait partie du groupe, n'est-ce pas? – understack

+1

Cela dépend quel répertoire est considéré comme "root" par Apache: si c'est le répertoire 'www', le' tmp' qui n'est pas "sous" le 'www' ne sera pas servi par Apache ;;; sinon, oui, vous pourriez utiliser un fichier '.htaccess' contenant quelque chose comme' Deny from All' pour empêcher Apache de le servir ;;; pour répondre à votre edit: quand les pages sont servies par Apache + PHP, il n'y a pas vraiment de "processus PHP": Apache est celui qui sert la page, même s'il utilise PHP pour cela. –

Questions connexes