Google
 

Problème de sessions avec PHP et IIS7

Par: Anonyme - 1 commentaire

Si un jour vous tombez sur ce problème, je suis certain que ce qui suit vous fera sauver beaucoup de temps. Mon ordinateur de développement a rendu l'âme récemment et j'ai dû réinstaller depuis le début sur une nouvelle machine. J'étais en XP et maintenant j'ai fait le saut à Vista avec IIS7 et PHP 5.2.3.

La réinstallation s'est bien déroulée et tout semblait être impeccable. Je me suis par contre rapidement heurté à un problème de sessions en quelques minutes.

Warning: session_start(): open([Chemin Variable], O_RDWR) failed: Permission denied (13) in [Fichier Variable] on line [N]

Pourtant, mes sites web tournaient si bien sur mon ancienne machine, mais maintenant je roulais sur un nouveau système d'exploitation, avec une version d'IIS plus récente et même chose pour PHP. Qui est le coupable.

C'était pourtant un problème de permissions lié au répertoire temporaire que PHP utilise pour ses sessions. Le vrai coupable était en fait la nouvelle version d'IIS. Il vous est possible de prendre connaissance des raisons pour lesquelles IIS 7 provoque ce type d'erreur en visitant cette page.

Maintenant, voyons comment solutionner ce problème de façon simple. Tout d'abord, bon nombre de personne auront donné une valeur à session.save_path dans leur fichier php.ini. Vous pouvez commenter cette ligne en ajoutant un ";" au début. Ainsi le répertoire par défaut sera utilisé par PHP pour les sessions et non pas le répertoire que vous lui aurez assigné.

Maintenant il vous faut modifier les permissions sur le répertoire temporaire. Très simple, lancer l'invite de commande et taper ce qui suit:

Système en français:

icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Utilisateurs:(CI)(S,WD,AD,X)

Ensuite:
icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATEUR PROPRIETAIRE":(OI)(CI)(IO)(F)

Système anglais:

icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)

Ensuite:
icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)



Questions et commentaires:

par: Vista x64

J'ai eu exactement le même problème, je suis tombé tout de suite sur ta page, et ça m'a pris 20 secondes ! TOUT FONCTIONNE !! Merci mille fois !

Pseudo (Requis)