테스트 사이트 - 개발 중인 베타 버전입니다

세션 폴더를 변경하려면 어찌해야하나요? 채택완료

박수철 9년 전 조회 5,116

일단 해본거는 /tmp/session 폴더를 만들고 ~/data 에 심볼릭 링크를 만들었습니다

소유자 그룹도 원본폴더와 심볼릭 링크 모두 apache 로 설정하고 로그인 테스트 해봤는데 로그인이 안됩니다.

두번째로 해본거는common.php 파일에서

session_save_path("/tmp/session");

이렇게 수정했습니다.
session 폴더 권한 777 줘도 안되고 selinux 꺼도 세션 파일이 생성안되네요.. 
어찌해야되나요?
댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

[config.php] 106라인 쯤

define('G5_SESSION_PATH', G5_PATH.'/tmp/session');

 

[common.php] 189라인 쯤 

//ini_set('session.save_path', G5_SESSION_PATH); 

session_save_path(G5_SESSION_PATH);

 

그래도 혹시 안되면 //ini_set의 주석을 빼보세요. 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

박수철
9년 전
답변감사합니다.
[config.php]
define('G5_SESSION_PATH', '/tmp/session');
로 수정해줬더니 세션폴더가 바뀌는것 같습니다. G5_PATH 는 붙이나 빼나 관계없네요..
하지만 여기서 '/' 디렉토리가 서버디렉토리로 인식되는것같습니다. ( /data/session 하니 서버디렉토리/data/session 에 세션파일이 정상적으로 생성)
서버 디렉토리 밖으로 / 를 정의할 수 있으면 가능하겠는데..

댓글을 작성하려면 로그인이 필요합니다.

잘 될지 모르겠지만

define('G5_SESSION_PATH', '/tmp/session');

define('G5_SESSION_PATH', $_SERVER['DOCUMENT_ROOT'].'/tmp/session');

로 바꿔보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

박수철
9년 전
죄송합니다... 어제 뭔가 실수한것 같네요. config.php 에서 '/' 가 그냥 하드디스크 루트 디렉토리로 정의됩니다.
방금 /usr/share/nginx/gnuboard(그누보드 서버디렉토리)/data/session
/usr/share/nginx/gnuboard(그누보드 서버디렉토리)/session
/usr/share/nginx/session
/session
/tmp
를 하나씩 테스트해봤는데 전부 세션이 만들어졌습니다.
/tmp/session 은 절대 안만들어지네요. 정확히 안만들어지는게 아니라 세션파일이 만들어지면 순식간에 삭제하는것 같습니다.
원래 목적이 다른 드라이브에 세션폴더를 지정하는거였으므로 목적은 달성했습니다..감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

W
9년 전
php.ini 부분을 수정하시고 그누 config.php 도 변경하셔야할거에요
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

박수철
9년 전
답변 감사합니다.
php-fpm 을 사용중이라 그런지몰라도 php.ini 의 session.save_path 를 수정해도 영향이 없네요..
/etc/php-fpm.d/www.conf 의 세션 디렉토리도 고쳐봤지만 그누보드에는 영향이 없었습니다..
박수철
9년 전
config.php 도 define('G5_SESSION_PATH', '/tmp/session'); 이렇게 고쳤는데 루트 디렉토리가 서버디렉토리로 잡히는 것 같아서.. 안됩니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인