GNU/Linux >> Znalost Linux >  >> Linux

PHP exec - zkontrolujte, zda je povoleno nebo zakázáno

Tím se zkontroluje, zda je exec dostupný a povolený PŘED pokusem o jeho spuštění. Pokud spustíte exec() a funkce neexistuje nebo je zakázána, vygeneruje se varování. V závislosti na nastavení serveru, které se může vykreslit do prohlížeče a téměř vždy zapíše řádek do souboru protokolu =zásah do výkonu.

// Exec function exists.
// Exec is not disabled.
// Safe Mode is not on.
$exec_enabled =
   function_exists('exec') &&
   !in_array('exec', array_map('trim', explode(', ', ini_get('disable_functions')))) &&
   strtolower(ini_get('safe_mode')) != 1
;


if($exec_enabled) { exec('blah'); }

if(function_exists('exec')) {
    echo "exec is enabled";
}

ini_get('disable_functions')

Co vlastně chcete udělat, je použít ini_get('disable_functions') abyste zjistili, zda je pro vás k dispozici:

<?php
function exec_enabled() {
    $disabled = explode(',', ini_get('disable_functions'));
    return !in_array('exec', $disabled);
}
?>

Odpověď na stackoverflow zde:Zkontrolujte, zda není "exec" zakázáno, což ve skutečnosti vypadá, že pochází z manuálové stránky PHP:http://php.net/manual/en/function.exec.php#97187

Cesta

Pokud výše uvedené vrátí true (můžete použít exec()), ale PHP stále nemůže spustit skript, existuje velká šance, že máte problém s cestou pro tento skript, otestujte to takto:

print exec('which bash');

a pak to zkuste

print exec('which ogr2ogr');

Tím se zkontroluje, zda funkce skutečně funguje (oprávnění, práva atd.):

if(@exec('echo EXEC') == 'EXEC'){
    echo 'exec works';
}

Linux
  1. Jak zkontrolovat informace o PHP

  2. Jak zkontrolovat moduly PHP a Apache, které jsou nainstalovány v systému Linux?

  3. Jak vypsat všechny moduly a zkontrolovat, zda jsou povoleny nebo zakázány v CentOS/RHEL 8

  1. Jak zkontrolovat, které moduly Apache jsou povoleny/načteny v Linuxu

  2. Jak zobrazit seznam modulů načtených nebo povolených v PHP z příkazového řádku

  3. Jak zkontrolovat, zda je SELinux povolen nebo zakázán

  1. Jak zkontrolovat rychlost vašeho ssh připojení

  2. Úloha Cron zkontrolovat, zda skript PHP běží, pokud ne, pak spustit?

  3. Jak zkontrolovat, zda je v jádře Linuxu povolen Retpoline nebo ne?