Bug #76724 [Ver]: Unable to start session when using PHP CGI

From: Date: Thu, 09 Aug 2018 11:34:10 +0000
Subject: Bug #76724 [Ver]: Unable to start session when using PHP CGI
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-216693@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76724&edit=1 ID: 76724 Updated by: cmb@php.net Reported by: geral at braldesign dot com Summary: Unable to start session when using PHP CGI Status: Verified Type: Bug Package: Session related Operating System: CLOUDLINUX 6.10 standard PHP Version: 7.2.8 Block user comment: N Private report: N New Comment: In the olden days there was no CLI SAPI. Instead the CGI executable could be used, and -q (which is --no-headers) served to make it more useful for the command line. For better compatibility with the CLI SAPI, we might consider to “fix” it[1]. OTOH, perhaps we should rid the -q option of the CGI SAPI altogether? Anyhow, the following workaround might be sufficient in this case: php -q -d session.use_cookies=0 -d session.cache_limiter="" <file> [1] <https://github.com/php/php-src/blob/php-7.3.0beta1/sapi/cgi/cgi_main.c#L2420> Previous Comments: ------------------------------------------------------------------------ [2018-08-09 10:01:07] geral at braldesign dot com The /usr/bin/php is the cgi version : # /usr/bin/php -v PHP 7.2.8 (cgi-fcgi) (built: Jul 19 2018 09:57:11) Apparently this is setup like this as deployed by CloudLinux service, should I contact them about this? ------------------------------------------------------------------------ [2018-08-09 09:56:25] spam2 at rhsoft dot net if you provider is using cgi-fcgi instead of /usr/bin/php for cronjobs he is a fool becaus ethat breaks the usual way such code looks like if(PHP_SAPI !== 'cli') { session_start(); } ------------------------------------------------------------------------ [2018-08-09 09:54:18] geral at braldesign dot com I was retesting everything, so my server provider uses cgi-fcgi to execute cronjobs, to test this I just echo php_sapi_name() on an empty script executed by cronjob. I'm only using sessions because the backoffice uses it, i'm only using it as global variables. ------------------------------------------------------------------------ [2018-08-09 09:30:29] requinix@php.net php-cli should be used for cronjobs, yes, but this bug report is about php-cgi. They are not the same. Either you are using php-cli and this bug is irrelevant, or you are using php-cgi and you should not be. And you know sessions don't really work from the command line, right? You would have to force a particular session ID, new or existing, for sessions to work across multiple runs. ------------------------------------------------------------------------ [2018-08-09 09:28:27] spam2 at rhsoft dot net a proper software runtime skips session_start() when not running within a webserver environment, these are a few lines of PHP code and be it only to prevent spit session files to disk for no gain ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=76724 -- Edit this bug report at https://bugs.php.net/bug.php?id=76724&edit=1

« previous php.bugs (#216693) next »