从PHP5.6升级到PHP7,我遇到了这个错误:
sapi_apache2.c(326): PHP Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/var/lib/php/7.0/session)
这很奇怪,因为我们使用自定义会话处理程序,它会写入数据库。
PHP7有什么变化?
答案 0 :(得分:4)
在这种情况下,PHP警告会产生误导,因为会话未写入该目录。
在评估自定义会话处理程序的返回值时,PHP7比PHP5.6更严格。如果该write方法返回FALSE,则在调用session_write_close时将触发此警告。请参阅:PHP write-session documentation.
所以这里的解决方案是始终从write-session方法返回TRUE。如果出现错误,最好通过异常管理,而不是返回值。
答案 1 :(得分:0)
我刚才有此错误。为了产生错误,我已经卸载了php *软件包。要解决该错误,我已经重新安装了相同的php。