Comment puis-je fixer la Permission d'erreur lorsque j'appelle la fonction session_start()?
lorsque j'ai téléchargé le script sur le serveur j'ai eu cette erreur
Warning: Unknown:
open(/tmp/sess_58f54ee6a828f04116c2ed97664497b2,
O_RDWR) failed: Permission denied (13)
in Unknown on line 0Warning: Unknown: Impossible d'écrire
session de données (fichiers). Veuillez vérifier
que le réglage actuel de
session.save_path est correcte (/tmp) en
Unknown on line 0
l'apparition de l'erreur quand je l'appelle session_start();
bien que j'ai défini la permission de dossier /tmp en 777 .
InformationsquelleAutor Waseem Abu Senjer | 2011-01-03
Vous devez vous connecter pour publier un commentaire.
Changer de session chemin d'accès où vous pouvez écrire des données ou contactez l'administrateur du serveur sur /tmp problème
http://php.net/manual/en/function.session-save-path.php
vous aurez besoin de changer votre
session.save_path
php.directive iniVous pouvez le faire en utilisant
session_save_path
Si vous avez un accès SSH, voici comment corriger l'autorisation et la propriété
Remplacer NAME_OF_USER par l'utilisateur sous lequel s'exécute le php. Vous pouvez trouver: il suffit de mettre ces lignes dans un fichier php:
En outre, vous pouvez utiliser
ini_set('session.save_path', '/dir/here');
en supposant que vous avez accès à cette fonction. Les autres moyens proposés sont valables.J'ai juste eu exactement le même problème avec un de mes scripts PHP, et j'étais comme ce que je n'ai casser 'cos il a parfaitement fonctionné la veille et je suis en cours d'exécution à partir de ma propre local Chiot Linux de la machine de sorte qu'il n'est même pas un hôte ou quoi que ce soit.
La seule chose que j'avais fait avant qui essayait de se Java fonctionne dans le navigateur web, de sorte que certains comment j'avais réussi à obtenir que Java fonctionne mais est tombé en PHP - oups!
De toute façon je ne me souviens que, tout en essayant d'obtenir Java de travail, j'ai supprimé le contenu du dossier /tmp pour essuyer quelque chose qui peut être à l'origine du problème (en fait, il s'est avéré avec Java j'utilise le plugin ancienne oij avec le nouveau Firefox)
Pour résoudre ce problème, j'ai ouvert Gestionnaire de Fichiers Rox, est allé à l' /dossier et clic droit sur la tmp
folder -> Mount Point 'tmp' and clicked properties
.J'ai remarqué que les autorisations ont été définies en tant que Propriétaire - Lire, Écrire, Exec, mais le Groupe et le Monde était mis à Lire et Exec et ne pas Écrire. J'ai mis une croix en Écriture pour le Groupe et le Monde et maintenant, PHP fonctionne bien à nouveau.
Je ne sais pas à quel point les autorisations pour tmp doit être changé, mais pour le PHP pour l'utiliser, il doit être réglé pour avoir des autorisations d'Écriture.
Vérifier que vous n'êtes pas en cours d'exécution dans l'espace de disque problèmes. Si toutes les autorisations sont correctes (et 777 devrait le faire pour vous), alors vous pouvez toujours obtenir cette erreur (pour certaines versions de PHP et d'Apache) si il n'y a pas assez d'espace pour écrire sur le disque.
J'ai eu ce problème dans la situation suivante:
Conclusion: Pour une pertinence raison, j'ai dû changer ma version de PHP, et tout en passant par des sessions en vie, les séances d'obtenir endommagé.
Je me rends compte que c'est un vieux post, mais je viens de tomber sur ce problème et trouvé une solution de facilité.
Pour moi, la question qui se passait avec l'un de mes sites déployés localement. Je n'avais pas essayé d'accéder à des sites web en utilisant d'autres navigateurs, mais c'était la même chose à chaque fois que j'ai essayé d'accéder à ce site via google Chrome. J'ai décidé d'aller dans les outils de développement Chrome, sous l'onglet application, -- et en cliquant sur "Effacer la mémoire". Voila-tout fonctionne comme par magie à nouveau.
Espère que cela aide quelqu'un d'autre!
J'ai le même problème de permission, mais sur /var/lib/php/session/.
Pour le fixer, j'ai supprimer le fichier et redémarrer php-fpm.
Maintenant tous fonctionne bien.
Ajoutez la ligne suivante
avant
Si :
Alors vous allez voir ce message d'erreur lorsque par exemple, Apache, PHP processus tente d'exécuter la collecte des ordures sur les fichiers de session.
Correctifs :
si vous utilisez
Apache
serveur web, la solution est d'aller à votre ligne de commande et tapez:puis, à partir de la fenêtre ouverte, ouvrez le fichier nommé
httpd.conf
et de recherche pourUser
ouGroup
modifier ces 2 lignes:C'est parce que vous voulez que votre serveur pour avoir l'autorisation de vos répertoires systèmes, en particulier vous voulez changer le
User
ou vous pouvez laisser votreGroup
soitstaff
ouadmin
.Pour moi, le problème semble être un WHM bug!
J'ai un tas d'ajouter sur les domaines et tous fonctionnent très bien, mais avec un sous-domaine, il apporte cette erreur.
Chose d'étrange, mais si j'utilise l'URL complète avec le nom de domaine principal, il fonctionne très bien:
main-domain.com/my.subdomain.com
Si j'utilise le sous-domaine directement, il apporte de la "Permission denied (13)":
my.subdomain.com
La chose, c'est tous les domaines compagnons de la racine est:
/home/xx/
Mais pour mon sous-domaine, je ne sais pas pourquoi, la racine est: (je ne devrais pas avoir accès à cette dir)
/
Si ses vraiment essayer de l'atteindre: /tmp au lieu de /home/xx/tmp
Qui existe aussi, mais n'ont pas le droit d'autorisations
Pour clarifier ce sont des exemples de l'ensemble du chemin:
/home/mon-compte/public_html
/home/mon-compte/tmp
/tmp
La solution de contournement que j'ai utilisé était:
J'ai d'abord eu ce problème, en raison de nginx posséder le /tmp emplacement et php-fpm était en cours d'exécution en vertu de l' 'apache' utilisateur et de groupe en raison de la http://www.conf. J'ai troqué l'utilisateur/groupe dans ce fichier, et puis il a travaillé sur ok. Vous voudrez peut-être vérifier
<?php echo exec('whoami'); ?>
pour vérifier.À l'aide de PHP 5.6 j'avais déjà utilisé session_save_path() pour pointer vers un répertoire dans le domaine de la structure. Il a bien fonctionné jusqu'à ce que j'ai mis à jour à la version 7.0, au moment où j'ai reçu le relevé d'erreur. Au PHP.net j'ai trouvé plusieurs commentaires qui indique l'affectation d'un chemin direct ne fonctionne pas toujours, j'ai donc utilisé leur suggestion.
session_save_path(realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../session'));
a parfaitement fonctionné. N'oubliez pas de changer
/../session
à l'emplacement relatif de votre répertoire de session.