Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #21378
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Newsgroups | it.comp.www.php |
| Subject | Re: intercettare php://stdout |
| Date | 2017-01-19 10:57 +0000 |
| Message-ID | <eebkdfFd0tdU1@mid.individual.net> (permalink) |
| References | <o5pr2m$pmu$1@gioia.aioe.org> <c860f180-3f45-4e78-dd77-f52faefe6156@che_leggi_in.firma> <o5q3j8$18b8$1@gioia.aioe.org> |
On 19/01/2017 10:15, alex wrote:
> Il 19/01/2017 09:03, g4b0 ha scritto:
>> Dipende dal contesto in cui sei. Tralasciando i syntax error che hai
>> postato,
>
> ????
Hai scritto stout/sterr invece di stdout/stderr.
>> genericamente parlando stderr é lo stream di errore, mentre
>> stdout é lo stream di output.
>
> si
Per precisare: sono gli stream del processo che esegue il codice.
Quindi di mod_php nel caso di Apache o FPM, e di php-cli nel caso
appunto di Pphp-cli.
> Da terminale:
>
> $ firefox http://local/test.php
>
> e quindi voglio che certi dati (di debug) venissero visualizzati nella
> console (terminale), e non nella pagina web.
> Si può?
No.
"Shell" significa "conchiglia", perché i processi che ci lanci sono
"chiusi dentro" l'ambiente della shell stessa.
Quindi stdout e stderr di firefox sono una cosa. stdout e stderr del
webserver sono un'altra.
Puoi fare un pstree per vedere il nesting dei processi. Avrai qualcosa tipo
init --- bash --- firefox
|- apache --- apache --- mod_php --- test.php
|- apache --- mod_php --- test.php
...
Come vedi per mandare output da mod_php alla bash di firefox dovresti
risalire apache (child) -> apache (parent) -> init e poi ridiscendere
init -> bash
Visto che init se ne sbatte di tutto (tranne che degli zombie), e che
apache ha forkato come daemon (droppando stdout e stderr, quindi
mandando qualsiasi cosa nel limbo), non puoi.
Quello che succede di solito è che da test.php ordini a mod_php di
scrivere sul suo stderr qualcosa (con la funzione che hai scritto).
Apache (child) intercetta lo stderr di mod_php e lo scrive su un log,
per poi scartarlo.
Non c'è una risalita verso l'alto, perché quella è riservata agli errori
che il child vuole comunicare al parent.
Bye.
Back to it.comp.www.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
intercettare php://stdout alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-01-19 08:49 +0100
Re: intercettare php://stdout g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2017-01-19 09:03 +0100
Re: intercettare php://stdout alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-01-19 11:15 +0100
Re: intercettare php://stdout g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2017-01-19 11:54 +0100
Re: intercettare php://stdout alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-01-19 12:39 +0100
Re: intercettare php://stdout Alessandro Pellizzari <shuriken@amiran.it> - 2017-01-19 10:57 +0000
Re: intercettare php://stdout alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-01-19 12:46 +0100
csiph-web