随着从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中发生了什么变化?
在这种情况下,PHP警告是误导性的,因为会话没有写给该目录。
评估自定义会话处理程序的返回值时,PHP7比PHP5.6更严格。如果该写入方法返回false,则在调用session_write_close时会触发此警告。请参阅:PHP写入文档。
因此,这里的解决方案是始终从写作方法中返回True。如果存在错误,则最好通过例外情况进行管理,而不是返回值。