Session doesnot work in nginx. php-fpm create new session file every time

October 19, 2014 8.2k views

My application cannot read (already created ) session file. so when I try to make two file



echo $_SESSION['test']

when I browser 1.php, it will crease a session file(in session.savepath) sess..... with out error. When browse 2.php again create another sess_... file with error:
** Notice: Undefined index:test**
I have given access to the session folder
```chown -R www-data:www-data /var/lib/php5/session
chmod -R 0777 /var/lib/php5/session

(same problem when I use /tmp also)

That's the reason I cannot login in any php application.  can anyone explain me what's going on? 

**I have nginx, varnish and php-fpm**
Thank you
1 Answer

Problem Solved !!!
I commented unset req.http.cookie and it's working

sub vcl_recv {
    # Happens before we check if we have this in cache already.
    # Typically you clean up the request here, removing cookies you don't need,
    # rewriting the request, etc.
#       if (!(req.url ~ "wp-(login|admin)")) {
#                unset req.http.cookie;
#        }

  • You've more or less just turned off Varnish. Everything worked as intended before, Varnish was caching the responses as it was told. Right now you'd probably do better with just removing it from your stack entirely.

    To break down the VCL you've just posted. If the requested URL is not, or contains either, "/wp-login" or "/wp-admin" it will drop all cookies, which was set earlier. When you start a session it will set a cookie, but since you're not requesting a page in either /wp-login or /wp-admin they get dropped (unset req.http.cookie) in varnish.

    I know this is an old question, I just don't want people having issues with Nginx or Varnish coming here thinking this is actually a solution to anything.

Have another answer? Share your knowledge.