Newsgroup: it.comp.os.linux.debian
Titolo: Errore in esecuzione pagina php da linea di comando

ciao a tutti sto cercando di eseguire una pagina PHP in crontab
30 * * * * /usr/bin/php /home/server/httpdocs/app/public/index.php/ws/
call
se da comando eseguo:
php /home/server/httpdocs/app/public/index.php/ws/call
ottengo:
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/
cli/conf.d/mhash.ini on line 1 in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/
php5/20090626+lfs/mhash.so' - /usr/lib/php5/20090626+lfs/mhash.so:
cannot open shared object file: No such file or directory in Unknown
on line 0
sapete aiutarmi???
Thanks


Facebook: Massimo Bacilieri

 
quello che stai facendo non ha senso, non puoi "eseguire" una pagina web 
tramite cli, ma devi farla intepretare dal web server.
Altrimenti quei segmenti /ws/call dopo index.php non li inercetti come 
dovresti (a proposito, come dovresti?)


Hai lo shebang in testa al file?
Mi sa che inoltre devi chiamare il file con il parametro -f:
/usr/bin/php -f /home/server/httpdocs/app/public/index.php
Poi vale la considerazione piů generale: quella pagina php, č fatta per 
essere eseguita via cli? A naso direi di no.

Grazie per tutti i suggerimenti!!! seguo il vostro suggerimento e
ribaldo il problema, nel senso che ritorno al mio problema iniziale:
devo fare eseguire una pagina php nel mio crontab, come posso fare?
Grazie


Ovviamente non puoi... una pagina php *deve* essere visualizzata in un
browser, il che implica avere un terminale collegato su cui inviare
l'output.
Potresti provare con qualche orrore tipo un redirect di lynx, cioè
richiamare la pagina in lynx e redirigere l'output a /dev/null o
addirittura a un file di log (opzione -dump), in questo modo lo script
viene invocato da un browser e *potrebbe* funzionare.
Ammesso che sia eseguibile da lynx e, soprattutto, che non richieda
interattività con l'utente.


 l'output.
Cazzata.
php-cli è fatto apposta.
http://php.net/manual/en/features.commandline.php

 line 0
Commenta bene (tutto) in mhash.ini oppure installa quella libreria.
Max

 I commenti nei file ini sono con il ; e non con il #
io non vorrei fare danni sul server, e non compromettere il
funzionamento di apache e php
cosa dovrei fare esattamente??
Thanks

 php-cli è fatto apposta.
Non si finisce mai di imparare :-O


Il 09/11/2010 23.57, Sarah ha scritto:

Riassumiamo.
Quello che hai messo nel crontab in teoria va bene.
Quello che non va bene � il file mhash.ini che dovrebbe stare in /etc/php.d.
Devi essere root e modificare il file sostituendo ';' al posto di '#'.
Quando hai fatto, devi riavviare l'http server.
Ritornando al crontab, il file index.php/ws/call (strano file, non � che 
hai sbagliato qualcosa anche qui?) verr� eseguito solo se � composto da 
istruzioni php pure (quindi niente tag <?php e ?>).
A quel punto torna qui e posta il nuovo messaggio di errore che verr� fuori.

 istruzioni php pure (quindi niente tag <?php e ?>).
mmm proprio "pure" non sono, non voglio intasare il post con codice,
cmq nella mia pagina ho sia HTML che PHP che JS, diciamo che è una
pagina che eseguire dal browser funziona correttamente ... .esegue
delle operazioni sul DB e a video mostra dei risultati, io vorrei
lanciarla in background.
Grazie mille

 
allora l'unico modo e' lynx -dump http://.... 1>/dev/null 2>&1
 Gio'

 il file va corretto e va lasciato nella posizione in cui e'
con la soluzione sopra indicata, questa modifica non devo più farla?
Thanks

 
Esatto, in questo modo non utilizzi piu' php-cli.
 Giovanni
-- 
/*
 * SnB - 
http://www.snb.it
 */

> lynx -dump 
http://mio_ip/url
 1>/dev/null 2>&1
ho messo questa stringa in crontab ma non viene eseguito nulla
:(

 
e che cosa succede se, da riga di comando esegui:
lynx -dump 
http://mio_ip/url
 ?

ho eseguito senza il    1>/dev/null 2>&1     finale
ed ottengo:
-bash: lynx: command not found
azzzz perchè??

 ho messo questa stringa in crontab ma non viene eseguito nulla
E come faresti ad accorgertene?
O tu riesci a leggere da /dev/null? ;-)
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

> E come faresti ad accorgertene?
perchè la pagina modifica il DB ed io non vedo alcuna modifica
ritornando al mio problema, eseguendo da terminal
lynx -dump 
http://mio_ip/url
ottengo command not found

Please sono giorni che cerco di venirne a capo ma senza successo :(((


A rischio di essere antipatico, il motivo è presto detto: "command not 
found", ossia "comando non trovato", ossia non hai lynx nel tuo sistema. :-)
quindi hai 2 possibilità:
1- installi lynx
2- segui il consiglio di Giovanni Bechis e provi con wget
Luca

 Please sono giorni che cerco di venirne a capo ma senza successo :(((
Vedi che mica ti si può fare un corso di italiano, oltre a quello di 
linux.
Ti hanno già fornito le risposte.

 linux.
Che risposta!!!! Complimenti, scusa se mi posta con umiltà, chiedendo
come risolvere un problema senza fare danni!
Ovviamente ho capito che il comando non era stato trovato, ma volevo
sapere come installare il tutto senza fare casini.
Per quanto riguarda il wget
Modalità spider abilitata. Controllare se il file remoto esiste.
--2010-11-14 15:57:49--  
http://IP/app/public/index.php/ws/callws
Connessione a MIO_IP:80...connesso.
HTTP richiesta inviata, in attesa di risposta... 200 OK
Lunghezza: non specificato [text/html]
Il file remoto esiste e potrebbe contenere ulteriori collegamenti,
ma la ricorsione è disabilitata -- non viene scaricato.
ma non viene caricato nulla nel DB, quindi la pagina non viene
eseguita :(

 
Installalo.


 come risolvere un problema senza fare danni!
Hai ricevuto Nmila risposte a delle domande semplicissime.
A questo punto, se non vuoi fare danni, con altrettanta umità, ti si 
pongono due alternative:
1) studiare le risposte e capire cosa fare
2) affidarti ad un esperto