Copiare un file PHP e Python! postato il 17/10/2012 10:42:30 nel forum programmazione, gdrcd, open source, hosting e modificato da ffwp il 17/10/2012 10:44:58
Ciao a tutti,
é da stamattina presto che sto cercando di eseguire un programma esterno tramite le funzioni di eseguzione fornite da PHP.
- system();
- exec();
- shell_exec();
Vi spiego la situazione perché non c'é bisogno di allegare le strutture degli script:
Da uno script in php ricevo i dati mandati tramite un modulo e li memorizzo in un database. Fin qui nessun problema, operazioni essenziali e basilari il problema sorge quando salvato i dati, recupero con una query i dati inerenti e li salvo in un file txt (la ragione della scelta é un imposizione strutturale) a questo punto una funzione dovrebbe far partire l'eseguibile in Python per copiare il file in una cartella all'esterno del computer/server quindi materialmente fuori da C:/ e come si sa, php non permette di memorizzare all'esterno del server nessun file. Lo script in Python é semplicissimo: importa la libreria shutil e usa il metodo copy() per prendere il file e copiarlo in una cartella esterna o ancora meglio in un computer usato nella stessa rete, raggiungibile e con i permessi di lettura e scrittura nelle cartelle. Tutto funziona, l'unico problema é che php non lancia l'eseguibile .py. Le CGI vengono usate per produrre degli output quindi le ho escluse, php non é in safe_mode, Apache integra tutti i moduli per far andare python come CGI ma nessuna delle funzioni che ho citato fa partire l'eseguibile che mi copi il file.
Conoscete un metodo per risolvere questo problema?
edit: L'applicazione ho l'obbligo di farla web-based.
Vi ringrazio!
Pagine → 1
17/10/2012 16:29:25 e modificato da leoblacksoul il 17/10/2012 16:35:03
Diciamo che mancano un po' di informazioni per poter rispondere.
Innanzi tutto che comando stai cercando di dare per eseguire il file .py?
Su che sistema operativo stai lavorando?
Con che tipo di accesso (solo hosting, accesso completo alle shell, altro)?
I comandi che hai riportato eseguono comandi sulla shell, quindi non credo che tu abbia bisogno di caricare in Apache alcunchè relativo a Python. Deve però esserci Python installato sul server e devi conoscere il modo per richiamarlo (puoi non conoscere il modo per richiamarlo se la sua directory è già nel PATH).
Non ho mai usato python, però leggendo una pagina riguardo la libreria che vuoi usare mi sorge un dubbio: sicuro che shutil.copy() può copiare file in remoto?
Altro punto interessante: chi ha mai detto che php non può scrivere file su altre macchine? PHP può, perchè PHP può tranquillamente aprire socket arbitrari verso macchine e inviare testo come si fa con un qualsiasi socket in C o in Python (http://it2.php.net/manual/en/function.fsockopen.php ↗). Dipende dal modo esatto con cui tu vuoi farlo. Per mettere un file su una macchina che non è quella locale c'è necessariamente bisogno di sapere che protocollo vuoi usare, se è un protocollo abbastanza semplice (tipo FTP, se usi FTP ti conviene usare la libreria CURL http://it2.php.net/manual/en/intro.curl.php ↗ che già include il protocollo) potresti semplicemente aprire un socket con PHP e sei a posto.
17/10/2012 18:01:24
Non si smette mai di imparare!!!
grazie Leo!
sei stato gentilissimo.
Ho risolto con la socket generando i file giá da php e salvandoli su un determinato pc (che non é un server ma comunque sempre all'interno della rete aziendale.)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Felix Felicis GdR - Harry Potter GdR: La Verità Brucia - evento Auror
Ex Gratia GDR: Aggiornamenti | Volontà e Risolutezza
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
daphneee ha recensito Hogwarts Express - Harry Potter GDR Forum
La categoria Browser Game raggiunge i 3.600 giochi catalogati!
RAID Shadow Legends: Raddoppia i potenziamenti delle evocazioni
Enlisted: Preparazione per l'aggiornamento "Scorching Rays"
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
La Tana del Ladro: La Notte della Grazia Spezzata
Black Sails Chronicles: OFF - Aggiornamenti di Settembre
Il gestore di Black Sails Chronicles ha risposto alla recensione di xeno
Hogwarts Express - Harry Potter GDR Forum: 🧩 PNG attivi: nuove facce ad Hogwarts!
Lineage II → Entra in uno sconfinato mondo fantasy dominato da razze in contrasto tra loro. Scatena i tuoi poteri in uno dei Mmo più famosi al mondo!
I dati del generatore di rank sono stati aggiornati!
robertocovello ha recensito Storie di Agarthi
The Coven: Novità della settimana sul The Coven!
Felix Felicis GdR - Harry Potter GdR: Una Nuova Storia - ritorno a Hogwarts
Seconda Era → Vaste terre coperte di ombre e misteri, dove ogni eroe scrive la storia del Mondo di Eidel. Seconda Era, Play By chat
Piume Nere - Intervista ad Isabel Capuzzo, Creatrice di Piumenere.it e attuale Narratore...
Evoluzione Grafica - L'evoluzione grafica nei GDR-online. Abuso di Photoshop contro gioco. Chi vincerà la sfida?
Ineffabilità GdR - L'ineffabilità del gioco di ruolo: riflessioni e considerazioni
Il Grande Blu - Intervista al gestore di "Il Grande Blu" ambientato nel fantastico mondo di One Piece
Ultima OnLine - Scopriamo assieme Ultima Online prodotto dalla EA Games e caposaldo di tutti gli MmoRpg!
AddThis - Scopriamo il servizio gratuito di AddThis per sfruttare i social network e far conoscere il nostro GdR!
Giochi Manageriali - Giochi sportivi manageriali: una passione senza tempo!
eSport ed Olimpiadi - Per le Olimpiadi di Parigi si aggiungono gli eSport come nuova disciplina? Il punto della situazione!