php_sapi_name() returns cgi-fcgi in both CLI and web :(
Is there any reliable way to detect if the script is current running in command line mode when PHP is running with fcgi?
edit: nvm. it turns out I had to run the php-cli executable lol
php_sapi_name() returns cgi-fcgi in both CLI and web :(
Is there any reliable way to detect if the script is current running in command line mode when PHP is running with fcgi?
edit: nvm. it turns out I had to run the php-cli executable lol
Check the $_SERVER and the $_ENV superglobal arrays.
Try $_SERVER['REMOTE_ADDR'] or $_SERVER['argc'].
I found a good answer form https://stackoverflow.com/a/12654906/1197702
function drupal_is_cli() {
return (!isset($_SERVER['SERVER_SOFTWARE']) && (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0)));
}
Try this. Whether you have a difference:
if (defined('PHP_SAPI')) {
echo PHP_SAPI;
}
This is working for me on this box: Debian 7, Apache 2.2, PHP 5.4.4-14+deb7u7 (cgi-fcgi) & PHP 5.4.4-14+deb7u7 (cli)
function is_cli()
{
return (
!array_key_exists('SERVER_SOFTWARE', $_SERVER)
&& (php_sapi_name() === 'cli' || !array_key_exists('REMOTE_ADDR', $_SERVER))
);
}