PHP Manual
/
Správa servera

Rozdiely medzi CLI a CGI

15. 10. 2021

PHP môže bežať v rôznych prostrediach. Najbežnejším prostredím je `CGI`, ktoré sa spustí, keď PHP spracuje požiadavku HTTP. Skript PHP je však možné spustiť aj z terminálu, v tomto prípade ide o takzvanú úlohu CLI (Command-line interface).

Najdôležitejšie rozdiely medzi CLI a CGI

  • Na rozdiel od CGI SAPI, CLI štandardne nezapisuje na výstup žiadne hlavičky.
  • Niektoré direktívy php.ini sú v CLI SAPI prepísané, pretože v prostredí shellu nemajú význam:
    • html_errors: CLI má predvolenú hodnotu FALSE.
    • implicit_flush: predvolená hodnota CLI je TRUE
    • max_execution_time: predvolená hodnota CLI je 0 (neobmedzené)
    • register_argc_argv: predvolená hodnota CLI je TRUE
  • Skript môže prijímať argumenty príkazového riadku! Premenná $argc udáva počet argumentov odovzdaných aplikácii. A pole $argv poskytuje pole skutočných argumentov
  • Pre prostredie shellu sú definované 3 nové konštanty: STDIN, STDOUT, STDERR. Všetky sú spracovateľmi súborov pre príslušné zariadenie shell. Napríklad STDIN je obsluha súboru pre fopen('php://stdin', 'r'). Riadok z STDIN môžete prečítať takto: $strLine = trim(fgets(STDIN));. STDIN je už pre vás definovaný pomocou PHP CLI.
  • PHP CLI nemení aktuálny adresár na adresár vykonávaného skriptu. Aktuálny adresár pre skript bude adresár, v ktorom spustíte príkaz PHP CLI.
  • Pre CLI PHP je k dispozícii množstvo UŽITOČNÝCH možností. Ktoré vám umožnia získať cenné informácie o nastaveniach php, vašom php skripte alebo ho spustiť v rôznych režimoch.
  • V PHP 5 došlo k určitým zmenám v názvoch súborov CLI a CGI. V PHP 5 bola verzia CGI premenovaná na php-cgi.exe (predtým php.exe) a verzia CLI sa teraz nachádza v hlavnom adresári (predtým cli/php.exe).
  • V PHP 5 bol zavedený aj nový režim: php-win.exe. Táto verzia je ekvivalentná verzii CLI, až na to, že v php-win sa nič nevypisuje, a teda neposkytuje žiadnu konzolu (na obrazovke sa nezobrazuje žiadny "dos box"). Toto správanie je podobné ako pri PHP GTK.

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.
Status:
All systems normal.
2024