Forum
>>
Programmazione Python
>>
Scripting
>>
exec script python da php
Pagina: 1 2 Avanti
Esegui il login per scrivere una risposta.
Scritto da Sabrina14 |
2016-08-25 23:50:20 - exec script python da php
|
Ciao a tutti, ho bisogno di aiuto. Sto usando Ubuntu 14.04 64bit su macchina virtuale.
Sto lavorando su una pagina php che tramite il comando exec dovrebbe eseguire uno script python. Con script molto semplici il tutto funziona, ma io avrei bisogno di far eseguire uno script python che apra un terminale, entri in una directory in cui è contenuto un altro script python e lo esegua. Per adesso sono riuscita a trovare uno script per aprire automaticamente un nuovo terminale: terminal.py. Di seguito è riportato il comando da terminale per aprire una nuova finestra ed eseguire provapunti.py. ss@ss-VirtualBox:~/dronekit-python/examples/mission_import_export$ python terminal.py -m gnome-terminal --wait python provapunti.py In questo modo tutto funziona, però io vorrei inserire questo comando in uno script python da richiamare nell'exec della mia pagina php. Qualcuno ha idea di come si possa fare? Grazie mille! |
|
Scritto da ㎝ |
2016-08-26 00:19:58 - Re: exec script python da php
|
Ciao Sabrina.
Perché pensi che sia necessario aprire un terminale per eseguire provapunti.py? THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝ |
|
Scritto da Sabrina14 |
2016-08-26 10:12:31 - Re: exec script python da php
|
In realtà perchè ho provato ad eseguirlo direttamente nell'exec della pagina php: lo status dell'operazione dice che è avvenuta con successo, ma di fatto non accade nulla. Siccome sono sicura che il comando che ho scritto precedentemente sia corretto pensavo di farlo scrivere direttamente in un nuovo terminale aperto in automatico. Devo necessariamente fare in modo che l'utente finale non faccia assolutamente nulla e quindi quando si verifica una certa condizione lo script deve essere eseguito in automatico...
Non so proprio come fare... |
|
Scritto da ㎝ |
2016-08-26 10:34:58 - Re: exec script python da php
|
Cosa dovrebbe accadere? Cosa fa lo script? Produce un output sul terminale? E cosa ne devi fare?
E che risultato deve vedere il tuo utente?
Siamo qui apposta. ㎝ THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝ |
|
Scritto da Sabrina14 |
2016-08-26 11:35:44 - Re: exec script python da php
|
Allora, vorrei eseguire uno script tramite exec su php nel momento in cui viene soddisfatta una condizione imposta in una clausola if.
Ho provato con uno script semplice in cui viene scritto su un file un messaggio di testo e tutto funziona ($status=0). ------------- file.php $command= 'python ciao.py'; exec($command, $out, $status); echo $status; -------------ciao.py (stessa cartella di file.php) #!/usr/bin/env python out_file = open("test.txt","w") out_file.write("This Text is going to out file\nLook at it and see\n") out_file.close() Io però vorrei eseguire uno script python (anche esso contenuto nella stessa cartella) che contiene una missione automatica per un drone simulato. La missione funziona se eseguita da terminale, ma non se richiamata dall'exec. Può essere dovuto al fatto che si tratta di un comando che dà vita ad un processo che si protrae per un periodo di tempo abbastanza lungo? Grazie mille! |
|
Scritto da Sabrina14 |
2016-08-26 15:59:10 - Re: exec script python da php
|
Probabilmente il problema è che non si riescono ad importare librerie aggiuntive (non standard di linux) che servono per far partire la missione del drone. Qualcuno ha mai fatto qualcosa di simile?
|
|
Scritto da ㎝ |
2016-08-26 17:45:18 - Re: exec script python da php
|
Ancora più probabilmente è un problema di configurazione dell'ambiente dell'utente con cui gira il tuo web server.
Riesci a provare ad eseguire lo script da shell con quello user (che probabilmente è `www-data` o `apache`)? Funziona? ㎝ THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝ |
|
Scritto da Sabrina14 |
2016-08-26 20:48:20 - Re: exec script python da php
|
Ho appena provato e riesco ad eseguirlo da terminale tramite l'user www-data.
L'utente apache non esiste. Può essere che il mio web server utilizzi un altro utente? Non so bene come fare per verificarlo. Ho provato ad utilizzare try: <<codice>> except in modo da stampare l'errore di esecuzione dello script python e risulta: /usr/lib/python2.7/lib-dynload/pyexpat.x86_64-linux-gnu.so: undefined symbol: XML SetHashSalt Ti dice qualcosa? |
|
Scritto da Sabrina14 |
2016-08-26 20:54:15 - Re: exec script python da php
|
Io ho provato a seguire queste istruzioni:
https://bbs.archlinux.org/viewtopic.php?id=140916 ma senza risultato purtroppo... |
|
Scritto da ㎝ |
2016-08-26 21:40:09 - Re: exec script python da php
|
mi copi l'output di
ldd /usr/lib/python2.7/lib-dynload/pyexpat.x86_64-linux-gnu.so|grep expate di sudo -u www-data ldd /usr/lib/python2.7/lib-dynload/pyexpat.x86_64-linux-gnu.so|grep expat? Dimenticavo. Magari anche l'output di questo file php $command= 'ldd /usr/lib/python2.7/lib-dynload/pyexpat.x86_64-linux-gnu.so|grep expat'; exec($command, $out, $status); echo $out; echo $status; Infine ;P prova a fare sudo updatedb locate libexpat.so.1 --- Ultima modifica di ㎝ in data 2016-08-26 21:51:02 --- THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝ |
Pagina: 1 2 Avanti
Esegui il login per scrivere una risposta.