Search code examples
phpdatabasesessionzend-frameworkphp-7

error in zend session database for php7


My application need to use database instead of file for the session management. My Application is based on Zend Framework 1.12.17, php 5.6.25 and actualy on wampserver

That is my config.ini

resources.session.use_only_cookies = true
resources.session.gc_maxlifetime = 864000
resources.session.remember_me_seconds = 864000
resources.session.gc_probability = 1
resources.session.gc_divisor = 100
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "app_session"
resources.session.saveHandler.options.primary = "id"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"

When I want to upgrade php to php 7.0.10, a warning occurred

Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (D:\wamp\www\myapp\top\session) in D:\wamp\www\myapp\top\library\versions\ZendFramework-1.12.17-minimal\library\Zend\Session.php on line 732

I'm looking for the origin of this problem. Do you have an idea?

Thanks a lot


Solution

  • On September 2016, Zend Framework 1 is reached EOL (end-of-life). This means it will not be improved anymore. The codebase is too old to work well with PHP 7.

    Anyway, you have at least two option:

    1. Downgrade to or run in parallel PHP 5.6 on your server to support ancient ZF1 app.
    2. Write your own session save handler by extending the DbTable handler as suggested here.