가끔 phpMyAdmin에서 "Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly" 와 같은 에러 메세지가 뜨면서 접근 할 수 없는 경우가 발생한다.
이 문제는 클라이언트(브라우저)측의 쿠키(cookies) 문제이거나 서버측의 세션(session)파일이 저장되는 곳의 퍼미션(권한) 혹은 소유권(ownership)과 관련된 문제일 경우가 많다.
아래와 같은 에러가 발생했을 것이다.
phpMyAdmin - Error
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.
클라이언트(브라우저)측에서 해야 할일
이 에러가 발생했을 경우 웹브라우저의 쿠키를 삭제함으로써 간단히 해결되는 경우가 있다.
IE 사용자의 경우 도구(톱니바퀴모양) -> 인터넷 옵션 -> 일반탭의 검색기록에서 삭제 -> 확인 과 같은 순서다.
크롬 사용자의 경우 설정 -> 페이지 하단의 고급 설정 표시 -> 개인정보 부분의 인터넷 사용정보 삭제 -> 쿠키 및 ... 삭제 체크 -> 인터넷 사용정보 삭제 와 같은 순이다.
서버측에서 해야 할일
브라우저에서 쿠키를 삭제하였는데도 같은 에러가 발생했을때는 서버측의 설정을 살펴보아야 한다.
php.ini 파일을 들여다보면 세션파일의 저장위치는 기본적으로 아래와 같다.
session.save_path = "/var/lib/php/session"
또는 세션파일의 저장위치를 /tmp 로 사용하는 경우도 있다.
session.save_path = "/tmp"
이 세션파일의 디렉토리 퍼미션과 소유권을 살펴보자
ls -la /var/lib/php
drwxrwx--- 2 root apache 4096 2013-07-12 07:16 session
ls -la /var/lib/php/session
-rw------- 1 apache apache 13842 2013-07-12 06:14 sess_2hp41jsraac5dei7nn93c5mre3ucgvgj
위에서 보는 바와 같이 세션 디렉토리는 User root / Group apache 의 소유권을 가지고 있다. 세션 파일은 User apache / Group apache 의 소유권을 가지고 있다.
추측컨데, CentOS 6.4의 경우 yum으로 아파치를 설치시 httpd.conf의 설정중에 User와 Group 지시자의 기본 설정값이 apache인 것을 확인할 수 있다. 아파치 설치시 apache 유저와 그룹이 함께 생성된다. 그런데 이를 nobody로 변경하는 경우가 많은데 여기에 문제의 포인트가 있지 않나 생각한다.
phpmyadmin의 설정파일을 살펴보자.
ls -la /usr/share/phpmyadmin | grep config.inc.php
-rw-r----- 1 root apache 1694 2013-07-12 07:07 config.inc.php
예상한대로 이 파일역시 소유그룹은 apache로 되어 있고 그 소유그룹에 읽기 권한이 있다. 즉, httpd.conf에서 User / Group을 변경하였다면 그 변경한 이름대로 위 파일들의 소유권한을 모두 변경해야 할 터이다.
또한, 이미 생성되어 있는 세션파일들도 소유권을 변경하거나 삭제하고 서비스를 재시작 하여야 할것으로 예상된다. 그 이외에도 변경해야 할 것이 있는지 알지 못하고 세션파일을 삭제함으로써 발생하는 문제가 무엇이 있는지는 모르겠다.
만일 아파치 설정에서 User / Group 을 nobody로 변경하였다면 아래와 같이 실행하자.
chown -R nobody:nobody /var/lib/php/session
혹은 세션파일의 접근권한을 누구에게나 주는 것이다.
chmod 0777 /var/lib/php/session
서비스를 재시작하고 결과를 다시 살펴보자.
service httpd restart
만약 같은 문제가 발생한다면 이번에는 같은 방법으로 phpmyadmin의 config.inc.php의 소유권도 변경해보자.
phpmyadmin의 경로는 자신이 설치한 경로를 입력하도록 하자
chown root:nobody /usr/share/phpmyadmin/config.inc.php
다시 서비스를 재시작하고 결과를 확인해보자. 해결되었기를 바란다...
'리눅스 > CentOS' 카테고리의 다른 글
[CentOS] phpmyadmin 설치 및 설정시 참고사항 (0) | 2013.07.19 |
---|---|
[CentOS] Apache(아파치) 설정파일 분석 - httpd.conf (10) | 2013.07.18 |
[CentOS] Apache(아파치) 모듈 (1) | 2013.07.09 |
[CentOS] Apache(아파치) 구조 (0) | 2013.07.09 |
[CentOS] PHP - APC 설정 (0) | 2013.07.05 |