Zadejte hledaný výraz...

Jak v zabudovanom PHP serveri vypsat informace do konzole?

node
verified
rating uzivatele
(5 hodnocení)
2. 1. 2017 18:24:13
Ahojte,
pouzivam zabudovany PHP server na nejake drobnosti v Kubernetes a mam problem s tym ze neviem nic zalogovat do konzoli. Skusal som pouzit stdout, stderr aj error_log ale nic. Co som googlil tak asi jedone var_dump + ob_clean ale to uz mi pride prilis specificke pre tento setup a nechcem nejak kvoli tomu menit aplikaciu.
Neviete ako to rozbehat? Eventuelne nejak nakonfigurovat php.ini?
2. 1. 2017 18:24:13
https://webtrh.cz/diskuse/jak-v-zabudovanom-php-serveri-vypsat-informace-do-konzole/#reply1246795
TomasX
verified
rating uzivatele
(4 hodnocení)
2. 1. 2017 18:58:54
co znamená, že jsi zkoušel použít? Jakým způsobem spuštít (pod čím) ten build-in server?
Pokud máš připojený stdout a stderr, můžeš na ně normálně poslat výstup
file_put_contents("php://stdout", "Hello World");
Připojený ho ale samozřejmě mít nemusíš, záleží jak ho spouštít. Pokud používáš systemd, můžeš v service definici nadefinovat stdout a stderr log soubory. Pokud používáš starší init systém, musíš stdout a stderr přesměrovat do souboru.
2. 1. 2017 18:58:54
https://webtrh.cz/diskuse/jak-v-zabudovanom-php-serveri-vypsat-informace-do-konzole/#reply1246794
node
verified
rating uzivatele
(5 hodnocení)
2. 1. 2017 19:19:27
server bezi ako a volam napriklad - STDOUT je definovane. Pripadne .
Znovu opakujem ze sa jedna o Kubernetes pod, ale to by nemalo nic ovplyvnovat na vystupe do konzoli.
2. 1. 2017 19:19:27
https://webtrh.cz/diskuse/jak-v-zabudovanom-php-serveri-vypsat-informace-do-konzole/#reply1246793
TomasX
verified
rating uzivatele
(4 hodnocení)
2. 1. 2017 19:47:09
Stdout z podu v kerbernetes je lokálně ukládáno do souboru, získáš ho přes příkaz kubectl logs , co ten vypisuje?
Něco děláš špatně, tohle normálně funguje. Buď nemáš php připojené do stdoutu, to, že je definovaná konstanta nic nedokazuje. Máš zapnuté warningy, buď je STDOUT platný resource nebo to vyhodí warning.
Zkus to na nejjednodušším příkladu:
fwrite(STDOUT, $_SERVER);
2. 1. 2017 19:47:09
https://webtrh.cz/diskuse/jak-v-zabudovanom-php-serveri-vypsat-informace-do-konzole/#reply1246792
Mně to v klasickém Ubuntu funguje:
Terminál 1
Soubor router.php
$path = $_SERVER;
file_put_contents("php://stdout", "nHello World from $pathn");
error_log('Test error message');
Terminál 2
Zpět v terminálu 1 se objeví
2. 1. 2017 20:29:46
https://webtrh.cz/diskuse/jak-v-zabudovanom-php-serveri-vypsat-informace-do-konzole/#reply1246791
TomasX
verified
rating uzivatele
(4 hodnocení)
2. 1. 2017 20:50:45
tohle samozřejmě standardně funguje všude i v kubernetes, osobní zkušenost :).
Buď node hledá logy jinde než jsou nebo má nastavený kubernetes jinak než tady píše a než je výchozí stav. Může být také problém s tou konstatnou STDOUT, některé verze php jí nemají a může vést kamkoliv, klidně na dev/null, raději bych aby zkoušel ten php://stdout
2. 1. 2017 20:50:45
https://webtrh.cz/diskuse/jak-v-zabudovanom-php-serveri-vypsat-informace-do-konzole/#reply1246790
Martin N.
verified
rating uzivatele
22. 11. 2020 14:15:38
Problem muze byt primo v image co pouzivas, pokud pouzivas jiny, nez je official php image, tak muze byt vynuceny jiny nastaveni a tedy pusobovat zmineny potize. 
Vyuzivam officialni php image a vzdy staci bezny php://stdout.
Pokud pouzivas i nejaky apache/nginx v druhym podu, tak se muzes divat do spatnyho terminalu/logu. (to uz jsem u vyvojaru taky resil)
22. 11. 2020 14:15:38
https://webtrh.cz/diskuse/jak-v-zabudovanom-php-serveri-vypsat-informace-do-konzole/#reply1246789
Pro odpověď se přihlašte.
Přihlásit