Come posso eseguire il mio script CGI perl senza apache? Questo è a scopo di test, quindi una sorta di server a processo singolo che elabora solo una richiesta alla volta dovrebbe essere sufficiente per me.Come posso eseguire il mio script CGI perl senza apache?
risposta
Script shoud essere eseguito come utente specifico e attualmente non voglio configurare
suexec
sui testapache
.
Non c'è nulla impedisce di duplicare la configurazione necessaria Apache tranne che per l'utente in base al quale httpd
sta per essere eseguito, l'interfaccia/porto per l'associazione a ed eventualmente la directory cgi-bin
e l'esecuzione di una copia separata di httpd
(con l'opzione -f
). Quello sarebbe il modo più sicuro per testare l'applicazione nell'ambiente che si suppone sia in esecuzione.
Vedi Starting Apache:
è possibile specificare la sua posizione in fase di esecuzione utilizzando l'opzione
-f
della riga di comando come in/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf
Plack::App::WrapCGI o Plack::App::CGIBin rappresentano un modo per fare questo (insieme con plackup
e il server HTTP Plack single-threaded di default), ma non è in esecuzione il CGI nel contesto che realmente si aspettano di essere eseguito in (un processo autonomo), quindi è non del tutto carino (gli stessi avvertimenti valgono come usare il registro modperl, più o meno). Non sono a conoscenza di un server web puro perl che in realtà forchetta ed esegue CGI come CGI (né uno non perl che esegue CGI e richiede zero config, sebbene lighttpd si avvicini).
Il motivo per cui "stai utilizzando CGI.pm" è una domanda pertinente perché se non hai già avviato l'applicazione potresti prendere in considerazione la scrittura contro praticamente qualsiasi cosa altro, ad es.
(in ordine casuale per nascondere la mia evidente favoritismo) una ottenere la possibilità di eseguire facilmente la stessa app di un server HTTP standalone, FastCGI, mod_perl app o semplice CGI se arriva a spingere, e senza la mancata corrispondenza dell'impedenza che si ottiene scrivendo nell'interfaccia di CGI.pm
Ok, forse proverò Web :: Simple per quello script (è piuttosto semplice, quindi non penso che un framework specifico mi aiuterà molto). In ogni caso, ho trovato una semplice soluzione per il problema iniziale: "python -m CGIHTTerver 8080" servirà script nella sottocartella "cgi-bin" come CGI. –
Dal hai menzionato nei commenti che stai utilizzando CGI.pm, nota che CGI.pm offre una gamma di opzioni per l'esecuzione di script CGI dalla riga di comando. Vedi http://perldoc.perl.org/CGI.html#DEBUGGING. Anche senza CGI.pm, puoi sempre solo simulare le variabili d'ambiente necessarie e inserire il pipe nel tuo file. In pratica tutto quello che dovete fare per eseguire un CGI dalla riga di comando è impostare
QUERY_STRING = blah=x&fu=bar
per i metodi GET o
CONTENT_LENGTH = length of your file
per i metodi POST.
A meno che non si desideri utilizzare un browser Web ... – hobbs
Inserire l'output in un file e aprire il file con il browser web. –
Devi anche impostare 'REQUEST_METHOD' (= GET/POST), almeno il mio CGI.pm non ha capito la richiesta senza di esso. – Dallaylaen
Procuratevi una macchina virtuale e fare quello che come con esso, compreso l'esecuzione di apache. Duplica il più possibile l'impostazione del target.
- 1. Come strutturare il mio programma Perl CGI?
- 2. Perché DBD :: SQLite non può essere inserito in un database tramite il mio script Perl CGI?
- 3. Come posso pubblicare un contenuto CGI senza buffer da Apache 2?
- 4. Come posso eseguire il debug di uno script Perl?
- 5. Come posso compilare il mio script Perl in modo che possa essere eseguito su sistemi senza perl installato?
- 6. Come posso ridurre il tempo di avvio dello script Perl CGI?
- 7. esegui script python come server apgi cgi
- 8. In Perl, come posso disabilitare CGI :: Carp che è stato caricato in uno script richiesto?
- 9. Come posso eseguire automaticamente una grande quantità di script perl?
- 10. Utilizzo di ARGV e CGI in uno script Perl
- 11. Come posso eseguire un'applicazione Java su Apache 2.2 senza Tomcat?
- 12. Come posso scoprire quale script, programma o shell è stato eseguito il mio script Perl?
- 13. Come posso eseguire uno script Perl su Mac OS X?
- 14. Impostazione di Ruby CGI in Apache
- 15. Come posso gestire sessioni web con CGI :: Session in Perl?
- 16. Come posso offuscare il mio script Perl per rendere difficile il reverse engineering?
- 17. Come recuperare intestazioni HTTP in perl quando si utilizza CGI
- 18. Come posso eseguire Javascript nel mio programma Delphi senza TWebBrowser?
- 19. Come posso eseguire uno script 'R' senza sopprimere l'output?
- 20. Come posso eseguire il mio script Python dal terminale in Mac OS X senza dover digitare il percorso completo?
- 21. Come posso sapere se il mio script Perl è in esecuzione in Windows?
- 22. Come accedere all'intestazione HTTP della richiesta in uno script CGI?
- 23. Come posso reindirizzare il client da una pagina CGI a un'altra utilizzando Perl?
- 24. Perché il mio script Perl termina con 137?
- 25. Come posso trasferire il codice Perl da mod_perl a FastCGI?
- 26. Come posso eseguire il codice Perl memorizzato all'interno di una variabile di script della shell?
- 27. Download di script CGI anziché esecuzione
- 28. Come posso leggere il parametro URL in un programma Perl CGI?
- 29. Come posso ssh all'interno di uno script Perl?
- 30. Eseguire Node.js in apache?
Usi CGI.pm? –
Perché non vuoi usare Apache? Sembrerebbe strano non testare in un ambiente simile all'ambiente di produzione previsto. –
Script shoud essere eseguito come utente specifico e attualmente non voglio installare suexec su testing apache. –