Generazione di pagine dinamiche

La maggior parte di questo testo si occupa di elaborare metodi di creazione di pagine dinamiche tramite script in Perl, script PHP, Java servlet e Java Server Pages. La configurazione base di Apache fornisce il supporto per i programmi CGI (basato su script Perl e alternative), e per l'piuttosto limitato 'include server-side' (SSI) meccanismo. I moduli pertinenti (mod_env, mod_cgi e mod_include) sono inclusi nel default Apache costruire. È meglio limitare il numero di directory che contengono codice eseguibile in grado di generare pagine dinamiche. La configurazione di default, come specificato nel file httpd.conf, permessi di programmi CGI solo in / local / apache / cgi-bin, e non ci sono le directory che permettono di file SSI. Queste impostazioni predefinite sono suscettibili di essere troppo restrittivo. Se si vuole rilassare i vincoli di un po ', è possibile aggiungere ulteriori direttive Directory per il file principale httpd.conf. Questi extra direttive Directory deve contenere le opzioni di controllo che consentono l'esecuzione di script CGI in una directory o la trasformazione SSI di file da una directory. Server-Side Includes sono contrassegnati da tag speciali in un file HTML, i tag, come:


   
   
  

Apache deve leggere i file, controllare il codice HTML, e di trovare ed elaborare i tag SSI. Ciò aumenta sensibilmente il costo del recupero di un normale file HTML. E 'meglio utilizzare una estensione di file distinti per contrassegnare i file per i quali è richiesta l'elaborazione SSI. L'estensione convenzionale. Shtml, il server deve essere configurato per gestire tali file in modo appropriato. Il file di configurazione httpd.conf sarà necessario includere le direttive:

AddType text / html. Shtml AddHandler server-parsed. Shtml

La prima direttiva definisce il tipo di contenuto che deve essere utilizzato nell'intestazione HTTP, quando i testi dei file elaborati vengono restituiti al client. La seconda direttiva consente l'analisi concreta da parte del server web. Tag SSI come flastmod o le dimensioni sono innocui, come l'inclusione di altri file HTML tramite il tag include. L'esecuzione di codice, come consentito da un tag di exec o da un tag include specificando in uscita da un CGI-script, può essere rischioso. Il codice può essere qualsiasi script di shell, se il sito non è adeguatamente protetto, ci sono modi che gli hacker possono modificare lo script che verrà eseguito da un file SSI. Le opzioni di Apache che consentono l'impiego di SSI ti permettono di distinguere tra gli usi semplici e gli usi che comportano l'esecuzione di codice. Se si desidera consentire i file in una directory da SSI-parsed, avrete bisogno di una direttiva di repertorio che identifica la directory e il livello di utilizzo che consentono:

 Options + Includes ...  o  Opzioni + IncludesNOEXEC ... 

Come esempio di include server-side, è possibile creare un semplice contatore per l'uso in una pagina web (questo script è per Linux o Unix). Ciò comporterebbe uno script di shell come la seguente:

Val = `counter` cat NewVal = `expr $ Val + 1` echo $ NewVal> contatore echo $ NewVal

Questo codice dovrebbe essere salvati in un file Count.sh, il file dovrebbe essere reso eseguibile, e un file per il contatore dovrebbe essere creato con una linea dati con il valore iniziale 0. Il contatore potrebbe poi essere richiamato dal codice HTML in un file. Shtml come segue:

... 
Questa pagina è stata letta volte.

(Tutti i file dovrebbero essere nella stessa directory.) Httpd.conf Il file contiene una direttiva ScriptAlias che identifica la posizione del tuo default cgi-bin. Una direttiva ScriptAlias organizza inoltre che Apache tratterà tutti i file nella directory specificata come file eseguibili, in modo da Apache cercherà di fork-exec questi file piuttosto che semplicemente restituire al client. Se si desidera che i programmi CGI in altre directory, sarà necessario utilizzare una estensione del file che identificano i programmi CGI:

AddHandler cgi-script. Cgi

Si potrebbe desiderare di utilizzare. Cgi per elaborare C / C + + e programmi. Pl per gli script Perl, nel qual caso si potrebbe avere:

AddHandler cgi-script. Cgi. Pl

Si dovrà anche le direttive di repertorio che identificano le directory che possono contenere script eseguibili, ad esempio:

 Options + ExecCGI 

Apache deve quindi eseguire qualsiasi file. Cgi in questa directory (e file. Pl se è stato specificato entrambi). Il server web è di avviare un nuovo processo per un programma CGI (o per un tag SSI exec). Il nuovo processo viene creato tramite fork quindi chiama exec su Linux / Unix. Il nuovo processo eredita lo stesso utente-id e group-id, come il processo di creazione, di conseguenza, avrà normalmente user-id 'nessuno'. Spesso si desidera che questi processi per l'esecuzione con diverso utente-ID. Un approccio si basa su un set-user-ID di sistema di file. Il sistema di Apache incorpora un meccanismo più sicuro attraverso i suoi estensioni suexec. Il meccanismo suexec impone una serie di controlli di sicurezza prima che cambi la user-id associato a un processo figlio CGI. Tali controlli hanno lo scopo di impedire a chiunque di subdolamente ottenere un programma da eseguire con user-id = "root", e per evitare l'esecuzione di qualsiasi script o un file eseguibile che potrebbe essere stata cambiata da qualcuno che non sia il proprietario ufficiale. Devi essere un amministratore di sistema con accesso root per impostare le estensioni suexec. Se si esegue il vostro sistema Linux, si potrebbe provare questo come un esercizio avanzato nella gestione Apache.

ForWindows utenti, l'installazione di Apache è banale. Si scarica l'Apache come un file di archivio compresso eseguibile (da http://httpd.apache.org/). Questo file può essere eseguito, creerà il server Apache e le sue file necessari, e aggiungere collegamenti al menu Start. Tipicamente, il server Apache viene installato in C: \ Program Files \ Apache Group \ Apache. Questa directory è sottodirectory \ bin (ese

s e script), \ (file di configurazione conf), \ log (file di log), \ cgi-directory (bin standard per i programmi CGI) e \ htdocs (la directory standard per i documenti). La directory htdocs dovrebbe contenere diversi file di esempio, ma la directory cgi-bin sarà probabilmente vuota. È probabile che si devono fare un cambiamento al \ conf \ httpd.conf; questo file possono essere aperti con qualsiasi editor di testo. Il file, probabilmente non ha un valore specificato per il parametro ServerName, potrebbe essere necessario definire qualcosa come ServerName localhost (o forse ServerName 127.0.0.1). (Se non c'è nulla di definito, Apache cercherà di trovare un server DNS che può dire il nome del server corretto in base all'indirizzo IP della vostra macchina e il record DNS, questo tentativo fallirà se non sono collegati a un server DNS, in modo da Apache ha vinto 't start.) Dopo modificare httpd.conf, la vostra base di Windows Apache dovrebbe essere pronto per l'esecuzione. È possibile avviarlo dal menu Start, e quindi avviare un browser e di utilizzare questo browser per connettersi al server localhost.

Utenti Linux / Unix avere un lavoro un po 'più da fare, ma beneficio da ottenere una migliore comprensione del sistema di Apache. Utenti Linux / Unix avrà bisogno di circa 20 Mbyte di spazio su disco per una directory Apache finale di distribuzione (/ local / apache), e lo spazio un po 'più di una directory in cui Apache è compilato e collegato (/ home/me/apache_1.3.27). È possibile scaricare una versione tar.gzip del server (1.3.27 o superiore); decompressione (gunzip) questo archivio, ed estrarre i file (tar-xf ...). Questo processo dovrebbe creare una sottodirectory apache_1.3.27 nella vostra home directory. Questa è effettivamente la copia master. Gran parte del materiale da questa directory sarà ripetuto nella directory di distribuzione finale. La directory bin contiene apache, cgi-bin, conf, htdocs, le icone, i registri, le sottodirectory src e altri. Cgi-bin sottodirectory contiene alcuni programmi piccolo esempio utilizzando script di shell e Perl. La directory htdocs contiene una serie di esempi, tra cui uno utilizzato per illustrare la negoziazione dei contenuti in base alle preferenze del cliente lingua. Esso contiene inoltre la documentazione di Apache nella sottodirectory / manuale.

un articolo presentato da Jasmin Summersby


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo è "la generazione delle pagine dinamiche" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 268 users browsing the articles directory