GoJack - SMS gratis

Sviluppo software e assistenza => Server personale: tutte le guide e le esperienze degli utenti. => Topic aperto da: Daniele8787 - Novembre 30, 2012, 11:23:29 pm

Titolo: Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Novembre 30, 2012, 11:23:29 pm
Apro questo topic per affrontare la risoluzione di un bug di gojack, la cui origine è ignota, e di cui si è già parlato qua e là in altri topic. Coi servizi vodafone i server casalinghi, di vario tipo, crashano tutti.
Nessun problema sugli host in rete. Ed anche sui server casalinghi mai il problema si presenta con altri servizi usati con gojack, ma solo con vodafone. E provando con gojack web e il php di gotext 190sms.php nessun problema. La ragione potrebbe risiedere nel fatto che quel php utilizza fsockopen, mentre gojack usa cURL che a quanto pare ogni tanto per cause ignote crasha. Qualcuno che conosce il php e ha esperienza con la gestione di apache, sa dirmi a cosa potrebbe essere dovuto? O almeno dove dovrei fare ricerche e tentativi?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: littleqwerty - Dicembre 01, 2012, 12:32:49 am
c'è modo di recuperare i settaggi dell'ambiente lamp/wamp usando il php?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Elpablo75 - Dicembre 01, 2012, 02:39:52 am
Ho notato anch'io i crash. Ma succede credo con tutti i servizi, almeno nel mio caso O2ireland, alice ecc. Ma il crash non è sistematico, cioè non avviene a ogni invio.
Considerazione da profano, da quanto ho notato, al primo invio crasha, se si prova subito dopo invece l'invio va a buon fine. È come se gotext fallisse la connessione al server perché magari in quel momento il server non era attivo. Intanto che il server si riattiva (sento i dischi del pc che ripartono) gotext crasha.
Se così fosse, si dovrebbe trovare il modo di far inviare a gotext un segnale preventivo per risvegliare il server, segnale a sola andata, in modo che l'applicazione non si aspetti una risposta.
Col server riattivato magari il problema del crash si risolve. Ripeto, è una considerazione da profano.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 01, 2012, 02:53:52 am
Perchè parli di gotext? io intendo il crash del processo apache, del server proprio. Intendiamo la stessa cosa? non è che parli di crash di gotext java?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Elpablo75 - Dicembre 01, 2012, 10:19:15 am
Ops, io parlavo della java infatti. Quindi succede solo a me? Apache và una bellezza invece, uso xampp su windows server, pc baracca, adsl telecom 10M. Se vi può essere utile vi passo php.ini e httpd.conf. Così magari si riesce a sistemare entrambi i crash.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: antonino.spampinato - Dicembre 01, 2012, 02:56:53 pm
hai controllato i log di gojack confrontanto i log di apache (server casalingo).. parlando da profano, magari si capisce.

non si potrebbe riscrivere il php da zero senza curl?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 06, 2012, 12:55:44 am
Eh il problema è che è un lavoraccio riscrivere la classe browser usando fsockopen al posto di cURL. Se qualcuno lo vuol fare, per me vabene. Ma io non ne ho il tempo. :( speravo di trovare il bug senza riscrivere tutto.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: littleqwerty - Dicembre 06, 2012, 02:28:22 am
Eh il problema è che è un lavoraccio riscrivere la classe browser usando fsockopen al posto di cURL. Se qualcuno lo vuol fare, per me vabene. Ma io non ne ho il tempo. :( speravo di trovare il bug senza riscrivere tutto.

da ignorante, puoi farmi un esempio per farmi capire in cosa consiste il lavoro da fare?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 06, 2012, 03:32:20 am
La classe browser serve per gestire TUTTE le connessioni, salvare i cookie e altre cose legate strettamente alla connessione. Riscriverla, significa riscrivere 1000 righe di codice basato sulla libreria di php cURL che a quanto pare genera questo problema con vodafone. Riscriverla da capo con l'altra funzione fsockopen implica rifare da capo almeno la parte della connessione e il modo in cui vengono inseriti i cookie e gli headers durante la richiesta. E francamente fsockopen non l'ho mai usata...
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 06, 2012, 05:07:37 am
Risolto!

Ho notato che si bloccava sempre sia in widget sia in vodafone sms quando arrivava a un link simile a questo

http://exch.vodafone.it/CommonAuth/Master/CommonAuthSetCookie.asp?orgUrl=https://widget.vodafone.it/190/trilogy/jsp/md.do?method=commit&CAuthData=8yHychtertetetF8F66vvch5LqweqweqHt9M
ertetetetet5ifS33LRIfzfhfghfhfh9rJBCDfsdfsdfsdfSnnD8dcsdasdasdasda=

arrivato a questo link apache crasha ma non si sa perchè. Forse perchè l'url è troppo lungo oppure perchè contiene due volte http://. Però, siccome questo link si trova sempre in redirect, per risolvere basta un ignorelocation="1" nella seconda page dell'xml di vodafone sms (2 redir 1) e nella prima di vodafone widget, (1 redir 4) per risolvere il problema. Per fortuna in gojack ho inserito questo apparentemente inutile parametro, che forse in freesmee non è neppure più supportato.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: MaC - Dicembre 06, 2012, 10:37:29 am
Quando hai segnalato questo problema ho tentato di fare una prova, ma devo avere un problema da qualche parte :D
Subito dopo aver premuto Invia, mi appare "Errore nell'invio!" (indirizzo http://localhost/sms/gojackweb.php?a=connect ). Succede con Rossoalice e Vodafone (non ho impostato altri servizi). Ho provato ad abilitare il log, ma non vedo nessun file d'aiuto. Devo cercarlo in qualche directory particolare?

Ubuntu 12.10 - gojack 3.0.8
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: rccrcc - Dicembre 06, 2012, 12:18:02 pm
Risolto!

Ho notato che si bloccava sempre sia in widget sia in vodafone sms quando arrivava a un link simile a questo

http://exch.vodafone.it/CommonAuth/Master/CommonAuthSetCookie.asp?orgUrl=https://widget.vodafone.it/190/trilogy/jsp/md.do?method=commit&CAuthData=8yHychtertetetF8F66vvch5LqweqweqHt9M
ertetetetet5ifS33LRIfzfhfghfhfh9rJBCDfsdfsdfsdfSnnD8dcsdasdasdasda=

arrivato a questo link apache crasha ma non si sa perchè. Forse perchè l'url è troppo lungo oppure perchè contiene due volte http://. Però, siccome questo link si trova sempre in redirect, per risolvere basta un ignorelocation="1" nella seconda page dell'xml di vodafone sms e nella prima di vodafone widget, per risolvere il problema. Per fortuna in gojack ho inserito questo apparentemente inutile parametro, che forse in freesmee non è neppure più supportato.

FUNZIONA ALLA GRANDE: COMPLIMENTI PER L'ENNESIMA VOLTA!!
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 06, 2012, 08:08:54 pm
FUNZIONA ALLA GRANDE: COMPLIMENTI PER L'ENNESIMA VOLTA!!
Grazie. :) ora aggiorno gli xml pubblici.

Quando hai segnalato questo problema ho tentato di fare una prova, ma devo avere un problema da qualche parte :D
Subito dopo aver premuto Invia, mi appare "Errore nell'invio!" (indirizzo http://localhost/sms/gojackweb.php?a=connect ). Succede con Rossoalice e Vodafone (non ho impostato altri servizi). Ho provato ad abilitare il log, ma non vedo nessun file d'aiuto. Devo cercarlo in qualche directory particolare?

Ubuntu 12.10 - gojack 3.0.8

Domanda: hai disattivato l'aggiornamento automatico? dovresti avere la 3.1.0 o forse non hai inviato mai nessun sms? l'aggiornamento avviene dopo un invio eseguito correttamente. Comunque se l'errore ti compare subito e senza nessun'altro messaggio, allora significa che il php gojack.php si chiude forzatamente magari per raggiunto max execution time che va aumentato insieme al max input time. Perchè altrimenti gojack.php risponde SEMPRE con un messaggio in cui spiega cos'è successo. Al limite dice "il sito non ha risposto nelle modalità previste nell'xml". Strano che ti succeda anche con alice... fin'ora nessuno l'aveva segnalato. Dovresti provare impostando altri servizi. Oppure riprovando con i servizi vodafone, ora che aggiorno gli xml pubblici. Dovrai andare in strumenti -> aggiorna xml.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 06, 2012, 10:05:19 pm
Aggiornamenti:

su vodafone sms funziona il trucchetto dell' ignorelocation="1" ma su widget non funziona perchè a quanto sembra i redirect servono per effettuare correttamente il login. Cosi a questo punto ho voluto verificare se il crash sparisce accorciando l'url in questione. Misura 243 byte e portandolo a 233 il crash sparisce. Mentre a 234 c'è ancora il crash. I caratteri eliminati sono dello stesso tipo di quelli che restano presenti...cioè lettere e numeri semplici..quindi è solo un problema di lunghezza url. Qualcuno sa come eliminare questo problema della libreria curl? E soprattutto perchè sugli host non da problemi? A questo punto non aggiorno gli xml, perchè sarebbe inutile, almeno per widget. E inserisco il limite di 233 byte in gojack per gli url, segnalando nel log il fatto che l'url è stato tagliato.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: littleqwerty - Dicembre 06, 2012, 11:44:21 pm
potrebbe essere un limite di windows?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: MaC - Dicembre 06, 2012, 11:49:39 pm
Non invio praticamente mai sms, per questo non si aggiorna. Cmq ho aggiornato a mano sia il core che la web, ma il risultato non cambia. L'unica differenza è che ora me lo salva nelle bozze. Devo avere un problema da qualche altra parte (nginx?)

EDIT: trovato... colpa mia che tengo le cose aggiornate :P
2012/12/06 23:47:14 [error] 1470#0: *116 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Cannot redeclare gzdecode() in /usr/share/nginx/www/sms/gojack.php(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code on line 775" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "POST /sms//gojack.php?servizio=Vodafone-SMS HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 06, 2012, 11:54:56 pm
Ok..dalla prossima versione non avrai nessun problema. Ho già fixato quell'errore nella versione che sto per rilasciare. :) Ma come mai non ti compariva già nella web quest'errore come succede per tutti? avrai impostato tu apache a nasconderti gli errori e ad inserirli nel log.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: MaC - Dicembre 06, 2012, 11:57:07 pm
Ho editato poco prima della tua risposta... colpa della gzdecode()
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: MaC - Dicembre 07, 2012, 12:00:21 am
Io uso nginx, decisamente più leggero di apache.
Comunque ho disabilitato la visualizzazione degli errori perché tanto ho i log (che ho imparato ad amare). Ci ho fatto il mio tirocinio di laurea con rsyslog e logrotate :D
Con un errore del genere non credo che sia compromesso l'utilizzo della web; non penso tu faccia chiamate a gzdecode() prima di un invio.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 07, 2012, 12:02:29 am
Ok, facciamo cosi: ti invio per email il nuovo php, e cosi puoi provare con i servizi vodafone sul server casalingo.

EDIT: inviato sulla tua casella di posta con cui sei registrato qui (l'altra mail non la ricordo più :) )
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: MaC - Dicembre 07, 2012, 11:47:02 am
Esito invio con Vodafone SMS

Messaggio inviato!

File gojacksetting.php di precedente versione, aggiornato automaticamente. GoJack aggiornato alla versione 3.1.0 Integrato GoJack OCR Aggiunti: menwes Aggiornati: SMS440

Non avevo aggiornato il services.xml, quindi credo di non avere il tag ignorelocation, sbaglio?
PS: mi ha fatto il downgrade del core, vero?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 07, 2012, 02:20:03 pm
Ok grazie mille. Evidentemente non hai il crash del processo perchè tu non hai apache come hai detto. Sei su linux? Alla fine non ho aggiornato gli xml, perchè quel tag funziona solo su vodafone sms e non su widget..e quindi preferisco tagliare il link troppo lungo direttamente in gojack.php, e cosi funziona su entrambi i servizi. Si ti ha fatto il downgrade, perchè la versione deve essere sempre uguale a quella presente qui sul server centrale.

Comunque secondo te a cosa può essere dovuto il fatto che sui server sul pc, con apache, il processo del server crasha solo coi servizi vodafone per via di un link di redirect troppo lungo, mentre gli host con apache non hanno nessun problema?
Cioè perchè con apache e curl c'è il limite di 233 caratteri nel link, (mentre con fsockopen nessun limite), e invece sugli host con lo stesso software, apache, il limite non c'è?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: MaC - Dicembre 07, 2012, 05:17:02 pm
Sinceramente non ne ho idea. Il limite per la lunghezza degli url dovrebbe essere ben maggiore ( http://stackoverflow.com/questions/1289585/what-is-apaches-maximum-url-length ).
Non si può provare a generare un file di log per vedere cosa non gli piace (o dove va in crash)?

EDIT: dimenticavo, sono su Linux :)
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Dicembre 07, 2012, 05:19:28 pm
Il log di gojack c'è già, si attiva con l'opzione. Il link che non gli piace è quello che ho riportato qualche post fa. Ci vorrebbe un log di apache, visto che è apache che crasha. Però un crash solitamente non è intenzionale..e quindi nel log non si vedrebbe niente, se non l'ultima azione eseguita forse. Boh.. vabè, per ora ho risolto tagliando tutti gli url più lunghi di 233 byte. Se metto anche solo 234 con vodafone crasha sempre...e su tutti i server casalinghi apache.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: antonino.spampinato - Dicembre 07, 2012, 09:33:14 pm
COSA? alcuni web server hanno un limite get di 256 caratteri (è forse compreso) l'host.dominio.com. il link completo di quanti caratteri è?
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: MaC - Dicembre 07, 2012, 10:08:58 pm
Il log di gojack c'è già, si attiva con l'opzione. Il link che non gli piace è quello che ho riportato qualche post fa. Ci vorrebbe un log di apache, visto che è apache che crasha. Però un crash solitamente non è intenzionale..e quindi nel log non si vedrebbe niente, se non l'ultima azione eseguita forse. Boh.. vabè, per ora ho risolto tagliando tutti gli url più lunghi di 233 byte. Se metto anche solo 234 con vodafone crasha sempre...e su tutti i server casalinghi apache.
Parlavo proprio del log di apache. Magari prima del crash arriva qualche messaggio di errore.
Titolo: Re:Php cURL crash con i servizi vodafone e server apache su pc
Inserito da: Daniele8787 - Settembre 19, 2013, 11:24:48 pm
ho risolto installando appserver che contiene sempre apache..ma non crasha..il problema forse era easyphp