IT/PHP

[PHP] PHP session 저장소 권한 설정

월공 2022. 4. 17. 23:40
728x90
300x250

웹푸시 알림을 개발하면서 아파치 안에 노드 서버가 돌아가면서 PHP 세션에 접근을 할 필요가 있었다.

리눅스 서버상에서 별도로 path 지정을 하지 않았다면 PHP 세션 설정과 저장되는 경로는 아래와 같다.

[php.ini]
session.save_handler = files

/var/lib/php/session

 

세션이 저장되는것도 애초에 php.ini 에서 설정된 경로에 하나의 텍스트 파일로 저장된다

여튼 node 에서 php session 을 읽어들이려면 해당 경로에 위치한 파일에 접근을 해야하는데

노드 에서 파일 읽어들이는 fs 를 사용하면 permission denied 가 뜬다 .

 

해결방법은 우선 경로에 대한 권한 지정도 물론이지만 세션 파일이 새로 생성될때 무조건 660 으로 생성되는것도 문제라서 이 부분을 아래와 같이 선언하면 애초에 세션 파일이 생성될때부터 권한을 조정해서 node 에서 접근 할수 있게끔 조정 할 수 있다.

session_start();

$path = session_save_path().'/sess_'.session_id();
chmod($path, 0775);
728x90
300x250