2015-01-17 2 views
0

프로덕션 서버 하나에서 다른 서버로 이동하는 3 개의 작동중인 응용 프로그램이 있습니다. 3 개의 앱 모두 Auth를 사용합니다. 원래 서버에서 3 번 모두 제대로 작동합니다. 새 서버에서 이러한 앱 중 하나가 작동합니다 (CakePHP 1.3 일 수 있습니다). 즉, 리디렉션 후 내 PagesController에서 사용자의 세션 데이터 (예 : 사용자 이름 및 역할)에 로그인 한 후 사용할 수 있습니다.새 서버에서 리디렉션 한 후 CakePHP 세션이 손상된 것 같습니다.

다른 2 개의 앱 (하나는 1.3이고 다른 하나는 2.3 임)에서 로그인 리디렉션 후 세션 데이터가 사라진 것처럼 보입니다. 나는 이것을 PagesController에서 $ this-> Auth-> user() 디버깅하여 확인했다. 나는 또한 세션 데이터가 $ this-> Auth-> login()을 호출 한 후 UsersController에 있지만 리다이렉트 후에 없어 졌음을 확인했다.

수년간 사용해온 응용 프로그램이므로 새로운 서버에서 문제가 디렉토리 권한과 같은 것으로 확신합니다. 모든 권한을 검토 한 결과 문제를 찾을 수 없습니다. 필자는 작동하지 않는 하나의 응용 프로그램에 대한 사용 권한을 비교하지 않았고 난처하게되었습니다.

제안 사항?

답변

0

클래스를 시작하기 전에 AppController 상단에서 ob_start() 또는 session_start()를 시도하십시오.

감사합니다 ..!

+0

Ritish, 나는 AppController의 beforeFilter() 메소드에서 CakeSession :: start()를 넣는 것을 끝내었다. (나는 이것을 넣기에 더 좋은 장소라고 생각했다 :-) 당신의 제안에 감사드립니다. –

0

또한이 질문과 해결 방법을 CakePHP Google 그룹에 게시하고 자세한 내용을 추가했습니다. 다음으로 이동하십시오 : https://groups.google.com/forum/#!topic/cake-php/ORfK1b9AYTU

문제는 리디렉션 후에 세션이 시작되지 않는다는 것입니다. 해결 방법은 beforeFilter()의 AppController에서 CakeSession :: start()를 호출하는 것이지만, 필요하지는 않습니다.

Ken

관련 문제