星期三, 10月 20, 2010

Zend_Session_Exception' with message 'session has already been started by session.auto-start or session_start()

在用了Zend_Auth後
某天莫名的出現這問題
Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'session has already been started by session.auto-start or session_start()'...
也搞不懂發生了什麼事情
後來找到有人提出是因為php.ini的session.auto_start問題
//php.ini
session.auto_start = 1; //改為0即正常運作,當然記得要restart apache

在每個php有用到session的,就必須先執行 session_start()
在php.ini中的session.auto_start
如果為0,則須執行 session_start()
如果為1,則不須執行 session_start()
而Zend要有session的主控權,所以用Zend_Session(Zend_Auth會用到)時,要關掉auto start

不過還有人改了session.auto_start後 還是沒解決
查出是Directory權限的問題
自己是還沒遇過,不過先寫下來預防萬一
大致上的問題在application.ini裡設定resources.session.save_path
而該file需要該group有足夠的權限,而chmod 775 session即足夠

Reference
Zend_Session_Exception' with message 'session has already been started by session.auto-start or session_start()

沒有留言: