2010-01-13 4 views
5

나는 세션을 초기화하기 위해 노력하고있어하지만 난이 오류를 얻을 :PHP 세션 권한 문제

Warning: session_start() [function.session-start]: open(/tmp/sess_7af3ee9ec1350680bedcf63833d160bd, O_RDWR) failed: Permission denied (13)

가 session.path은 777 파마와/tmp로 설정됩니다.

"0; 777;/tmp"로 session.path를 편집하려고 시도했지만 세션 파일이 잘못된 권한 (쓰기 만)으로 만들어졌습니다.

apache2 및 우분투 9.10에서 PHP 5.2를 사용하고 있습니다. 아이디어가 있으십니까?

답변

4

는/tmp 디렉토리의 권한은 정말 xx777

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
$s = stat('/tmp'); 
printf('%o', $s[2]); 
file_put_contents('/tmp/phptest1234.txt', 'test'); 
unlink('/tmp/phptest1234.txt'); 

편집 있는지 확인하십시오 : 다음 시도, 나는이 문제를 해결 umask

<?php 
echo ' php-umask: ', sprintf('%o', umask()), "\n"; 
echo ' exec-umask: ', exec('umask'), "\n"; 
+0

스크립트가 44777을 반환합니다. 세션 파일은/tmp에 기록되었지만 권한이 잘못되었습니다. PHP는 세션 파일을 100366 권한으로 만듭니다. 쓸 수는 있지만 읽을 수는 없습니다. – Daniel

+0

0411의 umask처럼 들리지만 편집을 참조하십시오. – VolkerK

+0

반환 값 : php-umask : 22 exec-umask : 0022 – Daniel

1

tmp 디렉토리에 쓸 수있는 권한이없는 것 같습니다. 파일을 저장하려면 권한을 부여해야합니다.

+0

+1 : 나는 지난 1777 년이나 1666 년 대신에/tmp가 0770으로 설정되어있는 컴퓨터를 만났을 때 생각 나게합니다. 우분투 서버라고 생각해보십시오. – Powerlord

+1

그는 이미/tmp의 perms가 777로 설정되어있는 것으로 보입니다. –

0

, 잘못된 umask를 설정하는 타사 라이브러리가 있었다 777로, 그것을 삭제함으로써 문제가 해결되었습니다. 답변 주셔서 감사합니다.

+2

같은 문제가 있습니다. 어떻게 해결할 수 있습니까? . 감사 – bader

1

이 문제도 발생했습니다. 가을/etc/SYSCONFIG/아파치 잘못 umask를 설정 한 점에서 선이, 그래서 나는 그것을 주석 :

#umask 644 

모든 지금 잘.