session_start hangs

前端 未结 11 1093
野趣味
野趣味 2020-12-01 06:50

since a few hours our server hangs every time you do a session_start.

For testing purposes i created a script which looks like this:



        
相关标签:
11条回答
  • 2020-12-01 06:53

    Ok I face the same problem on 2 PC, 1 is MAC mini XAMPP, 1 is Windows 10 Xampp. Both is php spent infinity to run session_start(). Both PHP version is 7.x.x

    I found that session files is lock to read and write. So that I added code to make PHP read session files and immediately unlock when done with

    <?php
    session_start([
        'read_and_close' => true,
    ]);
    ?>
    

    or

    <?php
    //For PHP 5.x
    session_start();
    
    session_write_close();
    ?>
    

    After this PHP unlock session file => Problems solve

    0 讨论(0)
  • 2020-12-01 06:55

    If you use pgAdmin 4 this can happen as well.

    If you have File > Preferences > SQL Editor > Options > "Auto Commit" disabled, and you just ran a query using the query tool but didn't manually commit, then session_start() will freeze.

    Enable auto commit, or manually commit, or just close pgAdmin, and it will no longer freeze.

    0 讨论(0)
  • 2020-12-01 06:57

    To throw another answer into the mix for those going bananas, I had a session_start() dying only in particular cases and scripts. The reason my session was dying was ultimately because I was storing a lot of data in them after a particularly intensive script, and ultimately the call to session_start() was exhausting the 'memory_limit' setting in php.ini.

    After increasing 'memory_limit', those session_start() calls no longer killed my script.

    0 讨论(0)
  • 2020-12-01 07:00

    For me, the problem seemed to originate from SeLinux. The needed command was chcon -R -t httpd_sys_content_t [www directory] to give access to the right directory. See https://askubuntu.com/questions/451922/apache-access-denied-because-search-permissions-are-missing

    0 讨论(0)
  • 2020-12-01 07:04

    There are many reasons for that, here are a few of them:

    A. The session file could be opened exclusively. When the file lock is not released properly for whatever reason, it is causing session_start() to hang infinitely on any future script executions. Workaround: use session_set_save_handler() and make sure the write function uses fopen($file, 'w') instead of fopen($file, 'x')

    B. Never use the following in your php.ini file (entropie file to "/dev/random"), this will cause your session_start() to hang:

    <?php
    ini_set("session.entropy_file", "/dev/random");
    ini_set("session.entropy_length", "512");
    ?>
    

    C. session_start() needs a directory to write to.

    You can get Apache plus PHP running in a normal user account. Apache will then of course have to listen to an other port than 80 (for instance, 8080).

    Be sure to do the following things: - create a temporary directory PREFIX/tmp - put php.ini in PREFIX/lib - edit php.ini and set session.save_path to the directory you just created

    Otherwise, your scripts will seem to 'hang' on session_start().

    0 讨论(0)
  • 2020-12-01 07:06

    In my case it seems like it was the NFS Share that was locking the session , after restarting the NFS server and only enabled 1 node of web clients the sessions worked normally .

    0 讨论(0)
提交回复
热议问题