Guida Installazione Web Server Apache
Apache HTTP Server è il nome dato alla piattaforma server modulare più diffusa (circa l’80% dei server attualmente in uso utilizzano questa piattaforma ) in grado di operare da sistemi operativi sia Unix, quindi linux e Microsoft.
Apache oltre ad essere un server come inteso in senso tradizionale ossia una piattaforma che permette la spedizione, l’elaborazione ed il reinvito di dati effettua anche un’operazione di proxy.
.Apache presenta un’architettura essenzialmente modulare i cui moduli sono
- Core: programma principale composto da un ciclo sequenziale di chiamate ai moduli.
- Translation: traduce la richiesta del client
- Acces Control: controlla eventuali richieste dannose
- MIME Type: verifica il tipo di contenuto
- Response: invia la risposta al client e attiva eventuali procedure
- Logging: tiene traccia di tutto ciò che è stato fatto
Gli amministratori del server possono usare il file httpd.conf, che su sistemi unix solitamente è messo sotto /etc/httpd/conf, mentre su sistemi windows è situato nella subdirectory conf della directory di installazione di apache. Questo file offre tutta la libertà che offre il server, quindi aggiungere moduli, estensioni, nuovi mime-type e altro ancora. Per esempio se si volesse aggiungere un modulo bisognerebbe usare questa sintassi:
LoadModule nome_modulo percorso_del_file
Installare Apache su Linux
Apache è un programma open source ( leggesi completamente gratuito e fruibile ) scaricabile dalla Rete all’indirizzo http://httpd.apache.org/).. Esistono piu’ di un modo per installare Apache su questa piattaforma.
- I installazione della nostra distribuzione; possiamo usare il sistema RPM (RedHat Package Manager);
- Oppure possiamo utilizzare il metodo classico basato sulla compilazione dei sorgenti
Se disponiamo dei CD d’installazione di una distribuzione Linux, di Mandriva, potremo integrare Apache nel nostro sistema utilizzando il comodo Rpmdrake, un software con cui gestire le installazioni, le disinstallazioni e l’aggiornamento dei pacchetti presenti nell’OS. Da Kde andremo su:
Configurazione > Gestione pacchetti
Cerchiamo la voce Apache nell’interfaccia grafica selezioniamo il quadratino bianco posto alla destra del suo nome clicchiamo su installa, ci verrà a questo punto richiesto il CD di installazione di Apache, lo inseriamo e avremo l’installazione..
Oppure lo scarichiamo dalla rete , presso le distrizioni apache, l’ultima piu’ recente alla scrittura di questa guida è la 2.2.16 ed è gia’ stabile e digitare il comando.
rpm -ihv ./apache-1.3.31-40.i386.rpm
Tanto basterà ad installare Apache. A questo punto ci dovremo occupare di aggiungere i vari moduli necessari, scaricandoli dalla rete. Ossia dovremo scaricare ii sorgenti di Apache che troverete presso questo sito http://httpd.apache.org/download.cgi. Decomprimiamo attraverso il comando
tar xvfz apache_1.3.23.tar.gz
Raggiungeremo quindi i sorgenti con il comando:
cd apache_1.3.23
e compiliamo attraverso il comando:
./configure –prefix=/usr/local/apache
dove “prefix” è ovviamente il percorso dove lo abbiamo installato. Per finire :
make
e finiremo quindi l’installazione con un:
make install
Per vedere se tutto è andato a buon fine andiamo nella Shell e lanciamo l’istruzione:
/usr/local/apache/bin/apachectl start
Non avete ricevuto messaggi di errore? perfetto avete installato apache sulla vostra distrizibuzione Linux.
Installare Apache su Windows Vista e Windows Xp
Occorre subito fare una precisazione, se avete ancora Windows XP o se siete stati talmente intelligenti da non montare Vista basta che andiate sul sito ufficiale di apache e facciante il downalod di una delle distruzioni , suggeriamo una installer per abbreviare il tutto. Clicca Qui
Se invece vi siete trovati nelle mie condizioni, ossia con SO Vista, vi dovete un tantinello sbattere, dato che pare proprio che i signori di Microsoft si siano adoperati al fine di iimpedire che su questo Sistema Operativo girasse Apache. Quindi il primo passo da compiere in questo caso è:
- Disattivare il controllo UAC: start -> pannello di controllo -> Account Utente e protezione per la famiglia -> Account Utente -> Attiva o disattiva controllo account utent (fatevi un favore non lo riattivate mai piu)
- Lanciare l’installer appena scaricato e seguire le istruzioni, come Network Domain e Server Name possiamo mettere “localhost” (se l’installazione avviene in locale) e come porta scegliere 80.
A questo punto avrete installato Apache anche su vista, facciamo un’installazione preliminare
Andate sul vostro Computer e andate sul percorso dove avete deciso di installare il sistema operativo, nel nostro caso è
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
dato che lo abbiamo lasciato dove suggerito dall’installazione, aprite con un file di testo, il file che vi abbiamo indicato sopra
andate su DocumentRoot e modificate come segue, se per esempio volete utilizzare la cartella www al posto di quella sopra indicata
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot “C:/www”
e modificate anche sotto come segue
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory “C:/www”>
Adesso per i fortunati possessori di Windows Vista occorre fare un’altra modifica.
Andare nella cartella di installazione di Apache Server, entrare nella cartella /bin/ e cliccare col tasto destro sul file ApacheMonitor.exe, da qui clic su Proprietà. In alto selezionare la tab “Compatibilità” e spuntare l’opzione “Esegui il programma in modalità compatibile per Windows XP (Service Pack 2)”.
il gioco è fatto adesso avete il vostro apache server come se stesse utilizzando Windows XP. Dimenticavamo durante l’installazione mettete qualcosa del genere , consigliamo la porta 80 in modo da potere vedere il server quando digitate
http://localhost
dato che di default risponde sempre sull’80
Apache http
Come Apache viene avviato genera un processo principale chiamato httpd, ed una serie di processi subordinati tutti visibili nel listening Il server rimane in ascolto nella porta standard di default che è l’80 ma sarebbe cmq possibile metterlo in una delle 1024 porte disponibili.
In linux le operazioni per avviare arrestare il server sono rispettivamente
/etc/rc.d/init.d/httpd start x avviare
/etc/rc.d/init.d/httpd restart x riavviare
/etc/rc.d/init.d/httpd stop x fermare
Le analoghe operazioni da eseguire con windows sono
Start / Programmi / Apache HTTP Server / Control Apache Server / Start
Start / Programmi / Apache HTTP Server / Control Apache Server / Restart
Start / Programmi / Apache HTTP Server / Control Apache Server / Stop
ovviamente da windows avrete a disposizione la comoda icona a piuma che permette di fare questo automaticamente, anche in alcune versioni di linux specialmente le ultime vedi ubuntu è adesso possibile utilizzare la stessa semplificazione.
Analizziamo adesso piu’ in dettaglio il file httpd.conf, La prima sezione chiamata “Section 1”, è dedicata all’ambiente in cui opera Apache (“Global Environment”).Contiene
- il ServerType, attraverso cui viene indicata la modalità di funzionamento di Apache; nel nostro caso quest’ultima sarà: ServerType in modalità standalone o demone, questo indica che il server risponde in maniera automatica agli input che gli provengono dai client.
- La ServerRoot, ossia le directory dei file di configurazione
- PidFile su windows lo trovate come httpd.pid ed in pratica è il file in cui Apache scrive i processi al momento del suo avvio.
Troviamo poi due opzioni
ResourceConfig correlato al file sm.conf
AccessConfig correlato al file access.conf
da qui in poi trattiamo solamente le istruzioni principali, le piu’ utilizzate insomma.
Timeout è il tempo che attende prima di inviare un errore di timeout, utilizzato in genere quando si hanno troppi processi e si tarda troppo a rispondere.
KeepAlive KeepAlive che permetterà di inviare più file attraverso una stessa connessione TCP.
DSO (Dynamic Shared Object). Che si divide in “LoadModule” e “AddModule”. Osservando queste istruzioni troveremo una serie di righe, molte delle quali commentate, che permettono di abilitare o disabilitare alcuni “moduli” o funzionalità addizionali. Quando viene decommentata, aggiunta o commentata una voce in “LoadModule” è necessario operare nello stesso modo sull'”AddModule” corrispondente. Se per esempio decidiamo di installare PHP 5 come modulo aggiuntivo di Apache, per rendere operativa questa modifica dovremo aggiungere in corrispondenza dei “LoadModule” la riga non commentata
LoadModule php5_module “PATH/php/php5apache.dll”
e, in corrispondenza degli “AddModule”, dovremo fare lo stesso scrivendo
AddModule mod_php5.c
veniamo adesso ad analizzare la sessione 2. E iniziamo con la porta attraverso la quale il server web è in ascolto ossia la 80 ma potrebbe per esempio accadere che sullo stessa macchina girino sia il server di apache e di ibis a questo punto
Supponendo che abbiate installato con successo il vostro Apache , vediamo adesso come installarvi anche mysql e php. Partiamo dal mysql , quindi recatevi nel sito ufficiale , ossia http://dev.mysql.com
e fatevi il download dell’ultima configurazione che al momento della scrittura di questa guida è la 5.1.37 ovviamente scegliete la versione installer e installate come indicato dalle figure qui sotto
con la raccomandazione di mettere una password che ricordiate e segnarvela da qualche parte, onde evitare spiacevoli conseguenze, dato che una volta messa mysql non permette di cambiarla.
Fatto questo se nella schermata dopo tutto parte in maniera automatica senza segnalazioni di errori vorrà dire che tutto è andato a buon fine. Se cosi’ non dovesse essere andato, andate su programmi, software dal pannello di controllo e rimuovete mysql, uscite da internet se ci siete , disattivate tutti i firewall e rifate la procedura descritta sopra. Adesso che abbiamo mysql ci rimane solamente che inserire il php e per farlo facciamo nel seguente modo
PHP 5.3
Andate nel sito ufficiale della php, e poi nella sezione download e scaricatevi la versione piu’ recente , ammesso e non concesso che sia una beta. Al momento della scrittura di questa guida risulta essere la versione 5.3. Avviate ed eseguite, con l’avvertenza di mettere il php quando ve lo richiede in c:\PHP e mettere tutte le estensioni sempre quando il programma ve lo richiede. In pratica questo accorgimento vi crea la sottocartella ext dove mettere tutte le relative estensioni del caso.
Una volta fatto questo occorre eseguire le seguenti procedure.Aprire Pannello di Controllo -> Sistema e Manutenzione -> Sistema. Nella barra di sinistra cliccare su “Proprietà di Sistema avanzate“, poi sul tasto “Variabili d’ambiente..“.
Dalla tendina sotto (variabili di sistema) selezionare “Path” e cliccare su “Modifica”. In fondo al testo già presente aggiungere la stringa “;C:\php” (con il punto e virgola, senza gli apici).
Riavviare il vostro sistema operativo
Aprite con un editor di testo il file di configurazione di windows ossia il httpd.conf e apportate queste modifiche dopo la sfilza di loadmodule
# Start Php integration
LoadModule php5_module “C:/php/php5apache2_2.dll”
AddType application/x-httpd-php .php
PhpIniDir “C:/php”
# End Php integration
praticamente da qui in poi ci sono le procedure per integrare il php con il server Apache
Modificare il parametro DirectoryIndex nel seguente modo
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
Andare in c:\PHP e aprire il file di configurazione del php che si chiama php.ini ( nelle versione precedenti alla 5.2 troverete qualcosa del tipo php.ini-recomended ) in questo caso lo dovrete rinominare in php.ini , apritelo sempre con il notepad o se lo avete molto consigliato utilizzate il notepad ++. Modificate extensio_dir nel seguente modo
; Directory in which the loadable extensions (modules) reside.
extension_dir = “C:/php/ext”
Settare display_errors” su On di default lo trovate su Off
Create la sottocartella sessionfiles in php e aggiungete nel php.ini la seguente riga di codice
session.save_path = C:/php/sessionfiles
come dice il nome ci verranno memorizzati i vari file di sessione.
Ora ci mancano due librerie di php che permettono di collegarsi al mysql, Queste librerie dovrebbero essere gia’ presenti in ext, ma se non le trovate li provate a recuperarle su sito della mysql o della php, altrimenti andate dal buon vecchio google e ve li cerca lui per voi. cmq le librerie da scaricare nella sottocartella ext sono
php_mysql.dll
php_mysqli.dll
fatto questo tornate al vostro php.ini e aggiungete le seguenti righe di codice
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_gd2.dll
riavviate il vostro server apache e per prova inserite dentro la cartella www il seguente codice
<?php
echo “benvenuti nel mio server php + apache +mysql”;
?>
e chiamatela index.php , andate su un browser e date il local host se vi compare quella scritta a video tutto è andato bene per il php, per vedere se tutto è andato bene anche per il mysql dovrete testarci con delle query oppure come abbiamo fatto noi direttamente con il Joomla
Icona per una pagina Web
Dopo avervi detto cos’e’ Apache ed in passi piu’ importanti per installarlo e per farlo funzionare , vi mostriamo adesso una funzione prettamente ludica ma di sicuro impatto per i visitatori della vostra pagina. Avete presenti quell’icone che appaiono nel vostro browser accanto all’url quanto visitate una determinata pagina web? Adeso vi indicheremo come farlo anche a voi.
Quando si inserisce una pagina fra i preferiti, il browser invia una request al file favicon.ico nella stessa directortu che contiene la pagina. Il file favicon.ico altro non è che un’icona nel formato Windows icon..
La direttiva AliasNatch permette di fare proprio questo , ossia redigere tutte le richieste di una favicon un’unica locazione che contiene l’icona del sito eseguendo la seguente sintassi
AliasMatch/favicon.ico/usr/local/apache2/icons/site.ico
Apache httpd
Come vi abbiamo gia’ detto il principale file di configurazione di Apache si chiama httpd.conf e contiene direttive e contenitori o come l’avevamo gia’ chiamate sezioni.
E’ possibile inserire commenti all’interno del file utilizzando il carattere “cancelletto” # all’inizio di un rigo. In quanto le righe di commento sono ovviamente ignorate da Apache
Una direttiva puo’ estendersi su piu’ righe se si utilizza alla fine di ciascun rigo il carattere backslash \
Quando un argomento di una direttiva è un percorso relativo, esso si intende riferito al percorso d’installazione del server o server root. Per esempio se l’installazione di Apache è avvenuta tramite il sorgente, come gia’ visto in questo capitolo, la server root è /usr/local/apache2 etc. Tramite la direttiva ServerRoot è anche possibile modificare questo valore predefinito.
I Container di direttive dette anche sezioni servono a limitare il raggio di azione delle direttive , il loro ambito sarà lo scope predefinito del server config e verranno applicate all’interno del server
<Directory “/user/local/apache/htdocs”>
….
</Directory>
<Location “/downloads/*.html”>
……
</Location>
<FileMastch “\.gif “>
….
<FileMatch>
Vediamo alcune direttive di Container predefinite da Apache.
<VirtualHost>
Specifica un server virtuale in quanto apache consente l’utilizzo di diversi server virtuali nella stessa macchina
<DirectoryMatch> applicano direttive a una certa directory o gruppo di directory nel file system.
<Location> e <LocationMatch> applicano le direttive a specifici URL o a modelli di URL.
<Files> and <FileMatch> applicano direttive a specifici file o modelli di file.
Affrontiamo adesso un attimo i Container Condizionali di direttive.
<IfDefine> le direttive di questo container verranono eseguite se si passa all’eseguibile di Apache un’istruzione specifica da linea di comando
<IfModule> eseguite solamente se il modulo passato come argomento è presente nel weeeb server.
Facciamo un esempio nel file di configurazione httpd.conf
<IfDefine SSL>
LoadModuel ssl_module modules/mod_ssl.so
</IfDefine>
Hosting Virtuale
Vi poniamo subito la domanda di cosa sia un Hosting Virtuale. La risposta è un modo di gestire diversi siti con una singola istanza del server Apache, utilizzando l’hosting virtuale basato su indirizzo IP ed anche sul nome.
Il modo piu’ immediato di ottenere un hosting virtuale è basato sulla combinazione indirizzo IP/Porta a cui il client si connette. Apache puo’ essere configurato a tale scopo usando le sezioni < VirtualHost>
un esempio potrebbe essere il seguente.
<VirtualHost 192.168.200.4:80>
(..)
</VirtualHost>
dove 80 è ovviamente la porta di ascolto
Facciamo adesso un esempio dove il server apache gestisce tre host virtuali basati su IP.
Listen8080
Listen 80
<VirtualHost 192.168.200.2>
ServerName www.example.com
DocumentRoot /usr/local/apache/sites/example.com
</VirtualHost>
<VirtualHost 192.168.200.2:8080>
ServerName www.example.com
DocumentRoot /usr/local/apache/sites/staging
</VirtualHost>
<VirtualHost 192.168.200.4:*>
ServerName www.example.net
DocumentRoot /usr/local/apache/sites/example.net
</VirtualHost>
La direttiva ServerName sarà utilizzata per la costruzione degli url, mentre la direttiva DocumnetRoot specifica una locazione diversa per i contenuti dei siti per ciascun host virtuale.
Ovviamente è indispensabile mettere le porte su il server è in Ascolto, altrimente, si genererebbero solo errori.
Questi erano hosting virtuali basati sugli ip, ma è anche possibile in modo analogo configurare hosting virtuali basati sui nomi in quanto non è dissimile dall’iP
Prendiamo in considerazione due host virtuali che condividono IP 192.168.200.2. Apache di volta in volta che avrà una richiesta deciderà verso quale host dirigere la richiesta, basandosi sul valore di intestazione di Host: della richiesta HTTP, che verrà comparato con il nome di host fornito da ServerName e con altri nomi in presenza di istruzioni opzionali ServerAlias
Vediamo subito un esempio.
Listen 80
NameVirtualHost 192.168.200.2
<VirtualHost 192.168.200.2>
ServerName www.example.com
ServerAlias example.com web.example.com
</VirtualHost>
L’istruzione NameVirtualHost india che un particolare IP sarà utilizzato per gli host virtuali basati sul nome.. Ovviamente i DNS dovranno essere configurati nel rooter per avere un indirizzamento a 192.168.200.2
Come ultimo passo vediamo come fare coesistere host virtuali basati sul nome con host virtuali basati sull’ip e lo facciamo nel modo piu’ semplice possibile ossia attraverso un esempio
NameVirtualHost 192.168.200.2
<VirtualHost 192.168.200.2>
ServerName www.example.com
DocumentRoot /usr/local/apache/sites/example.com
</VirtualHost>
<VirtualHost 192.168.200.2>
ServerName www.example.com
DocumentRoot /usr/local/apache/sites/staging
</VirtualHost>
<VirtualHost 192.168.200.4>
ServerName www.example.net
DocumentRoot /usr/local/apache/sites/example.net
</VirtualHost>
E con questa lezione concludiamo la nostra guida per quanto riguarda il server Apache ossia il server piu’ utilizzato nel web, nella speranza di esservi stati di aiuto.
Mi piace:
Mi piace Caricamento...
Correlati
Fabrizio S.
Share post:
Guida Installazione Web Server Apache
Apache HTTP Server è il nome dato alla piattaforma server modulare più diffusa (circa l’80% dei server attualmente in uso utilizzano questa piattaforma ) in grado di operare da sistemi operativi sia Unix, quindi linux e Microsoft.
Apache oltre ad essere un server come inteso in senso tradizionale ossia una piattaforma che permette la spedizione, l’elaborazione ed il reinvito di dati effettua anche un’operazione di proxy.
.Apache presenta un’architettura essenzialmente modulare i cui moduli sono
Gli amministratori del server possono usare il file httpd.conf, che su sistemi unix solitamente è messo sotto /etc/httpd/conf, mentre su sistemi windows è situato nella subdirectory conf della directory di installazione di apache. Questo file offre tutta la libertà che offre il server, quindi aggiungere moduli, estensioni, nuovi mime-type e altro ancora. Per esempio se si volesse aggiungere un modulo bisognerebbe usare questa sintassi:
LoadModule nome_modulo percorso_del_file
Installare Apache su Linux
Apache è un programma open source ( leggesi completamente gratuito e fruibile ) scaricabile dalla Rete all’indirizzo http://httpd.apache.org/).. Esistono piu’ di un modo per installare Apache su questa piattaforma.
Se disponiamo dei CD d’installazione di una distribuzione Linux, di Mandriva, potremo integrare Apache nel nostro sistema utilizzando il comodo Rpmdrake, un software con cui gestire le installazioni, le disinstallazioni e l’aggiornamento dei pacchetti presenti nell’OS. Da Kde andremo su:
Configurazione > Gestione pacchetti
Cerchiamo la voce Apache nell’interfaccia grafica selezioniamo il quadratino bianco posto alla destra del suo nome clicchiamo su installa, ci verrà a questo punto richiesto il CD di installazione di Apache, lo inseriamo e avremo l’installazione..
Oppure lo scarichiamo dalla rete , presso le distrizioni apache, l’ultima piu’ recente alla scrittura di questa guida è la 2.2.16 ed è gia’ stabile e digitare il comando.
rpm -ihv ./apache-1.3.31-40.i386.rpm
Tanto basterà ad installare Apache. A questo punto ci dovremo occupare di aggiungere i vari moduli necessari, scaricandoli dalla rete. Ossia dovremo scaricare ii sorgenti di Apache che troverete presso questo sito http://httpd.apache.org/download.cgi. Decomprimiamo attraverso il comando
tar xvfz apache_1.3.23.tar.gz
Raggiungeremo quindi i sorgenti con il comando:
cd apache_1.3.23
e compiliamo attraverso il comando:
./configure –prefix=/usr/local/apache
dove “prefix” è ovviamente il percorso dove lo abbiamo installato. Per finire :
make
e finiremo quindi l’installazione con un:
make install
Per vedere se tutto è andato a buon fine andiamo nella Shell e lanciamo l’istruzione:
/usr/local/apache/bin/apachectl start
Non avete ricevuto messaggi di errore? perfetto avete installato apache sulla vostra distrizibuzione Linux.
Installare Apache su Windows Vista e Windows Xp
Occorre subito fare una precisazione, se avete ancora Windows XP o se siete stati talmente intelligenti da non montare Vista basta che andiate sul sito ufficiale di apache e facciante il downalod di una delle distruzioni , suggeriamo una installer per abbreviare il tutto. Clicca Qui
Se invece vi siete trovati nelle mie condizioni, ossia con SO Vista, vi dovete un tantinello sbattere, dato che pare proprio che i signori di Microsoft si siano adoperati al fine di iimpedire che su questo Sistema Operativo girasse Apache. Quindi il primo passo da compiere in questo caso è:
A questo punto avrete installato Apache anche su vista, facciamo un’installazione preliminare
Andate sul vostro Computer e andate sul percorso dove avete deciso di installare il sistema operativo, nel nostro caso è
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
dato che lo abbiamo lasciato dove suggerito dall’installazione, aprite con un file di testo, il file che vi abbiamo indicato sopra
andate su DocumentRoot e modificate come segue, se per esempio volete utilizzare la cartella www al posto di quella sopra indicata
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot “C:/www”
e modificate anche sotto come segue
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory “C:/www”>
Adesso per i fortunati possessori di Windows Vista occorre fare un’altra modifica.
Andare nella cartella di installazione di Apache Server, entrare nella cartella /bin/ e cliccare col tasto destro sul file ApacheMonitor.exe, da qui clic su Proprietà. In alto selezionare la tab “Compatibilità” e spuntare l’opzione “Esegui il programma in modalità compatibile per Windows XP (Service Pack 2)”.
il gioco è fatto adesso avete il vostro apache server come se stesse utilizzando Windows XP. Dimenticavamo durante l’installazione mettete qualcosa del genere , consigliamo la porta 80 in modo da potere vedere il server quando digitate
http://localhost
dato che di default risponde sempre sull’80
Apache http
Come Apache viene avviato genera un processo principale chiamato httpd, ed una serie di processi subordinati tutti visibili nel listening Il server rimane in ascolto nella porta standard di default che è l’80 ma sarebbe cmq possibile metterlo in una delle 1024 porte disponibili.
In linux le operazioni per avviare arrestare il server sono rispettivamente
/etc/rc.d/init.d/httpd start x avviare
/etc/rc.d/init.d/httpd restart x riavviare
/etc/rc.d/init.d/httpd stop x fermare
Le analoghe operazioni da eseguire con windows sono
Start / Programmi / Apache HTTP Server / Control Apache Server / Start
Start / Programmi / Apache HTTP Server / Control Apache Server / Restart
Start / Programmi / Apache HTTP Server / Control Apache Server / Stop
ovviamente da windows avrete a disposizione la comoda icona a piuma che permette di fare questo automaticamente, anche in alcune versioni di linux specialmente le ultime vedi ubuntu è adesso possibile utilizzare la stessa semplificazione.
Analizziamo adesso piu’ in dettaglio il file httpd.conf, La prima sezione chiamata “Section 1”, è dedicata all’ambiente in cui opera Apache (“Global Environment”).Contiene
Troviamo poi due opzioni
ResourceConfig correlato al file sm.conf
AccessConfig correlato al file access.conf
da qui in poi trattiamo solamente le istruzioni principali, le piu’ utilizzate insomma.
Timeout è il tempo che attende prima di inviare un errore di timeout, utilizzato in genere quando si hanno troppi processi e si tarda troppo a rispondere.
KeepAlive KeepAlive che permetterà di inviare più file attraverso una stessa connessione TCP.
DSO (Dynamic Shared Object). Che si divide in “LoadModule” e “AddModule”. Osservando queste istruzioni troveremo una serie di righe, molte delle quali commentate, che permettono di abilitare o disabilitare alcuni “moduli” o funzionalità addizionali. Quando viene decommentata, aggiunta o commentata una voce in “LoadModule” è necessario operare nello stesso modo sull'”AddModule” corrispondente. Se per esempio decidiamo di installare PHP 5 come modulo aggiuntivo di Apache, per rendere operativa questa modifica dovremo aggiungere in corrispondenza dei “LoadModule” la riga non commentata
LoadModule php5_module “PATH/php/php5apache.dll”
e, in corrispondenza degli “AddModule”, dovremo fare lo stesso scrivendo
AddModule mod_php5.c
veniamo adesso ad analizzare la sessione 2. E iniziamo con la porta attraverso la quale il server web è in ascolto ossia la 80 ma potrebbe per esempio accadere che sullo stessa macchina girino sia il server di apache e di ibis a questo punto
Supponendo che abbiate installato con successo il vostro Apache , vediamo adesso come installarvi anche mysql e php. Partiamo dal mysql , quindi recatevi nel sito ufficiale , ossia http://dev.mysql.com
e fatevi il download dell’ultima configurazione che al momento della scrittura di questa guida è la 5.1.37 ovviamente scegliete la versione installer e installate come indicato dalle figure qui sotto
con la raccomandazione di mettere una password che ricordiate e segnarvela da qualche parte, onde evitare spiacevoli conseguenze, dato che una volta messa mysql non permette di cambiarla.
Fatto questo se nella schermata dopo tutto parte in maniera automatica senza segnalazioni di errori vorrà dire che tutto è andato a buon fine. Se cosi’ non dovesse essere andato, andate su programmi, software dal pannello di controllo e rimuovete mysql, uscite da internet se ci siete , disattivate tutti i firewall e rifate la procedura descritta sopra. Adesso che abbiamo mysql ci rimane solamente che inserire il php e per farlo facciamo nel seguente modo
PHP 5.3
Andate nel sito ufficiale della php, e poi nella sezione download e scaricatevi la versione piu’ recente , ammesso e non concesso che sia una beta. Al momento della scrittura di questa guida risulta essere la versione 5.3. Avviate ed eseguite, con l’avvertenza di mettere il php quando ve lo richiede in c:\PHP e mettere tutte le estensioni sempre quando il programma ve lo richiede. In pratica questo accorgimento vi crea la sottocartella ext dove mettere tutte le relative estensioni del caso.
Una volta fatto questo occorre eseguire le seguenti procedure.Aprire Pannello di Controllo -> Sistema e Manutenzione -> Sistema. Nella barra di sinistra cliccare su “Proprietà di Sistema avanzate“, poi sul tasto “Variabili d’ambiente..“.
Dalla tendina sotto (variabili di sistema) selezionare “Path” e cliccare su “Modifica”. In fondo al testo già presente aggiungere la stringa “;C:\php” (con il punto e virgola, senza gli apici).
Riavviare il vostro sistema operativo
Aprite con un editor di testo il file di configurazione di windows ossia il httpd.conf e apportate queste modifiche dopo la sfilza di loadmodule
# Start Php integration
LoadModule php5_module “C:/php/php5apache2_2.dll”
AddType application/x-httpd-php .php
PhpIniDir “C:/php”
# End Php integration
praticamente da qui in poi ci sono le procedure per integrare il php con il server Apache
Modificare il parametro DirectoryIndex nel seguente modo
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
Andare in c:\PHP e aprire il file di configurazione del php che si chiama php.ini ( nelle versione precedenti alla 5.2 troverete qualcosa del tipo php.ini-recomended ) in questo caso lo dovrete rinominare in php.ini , apritelo sempre con il notepad o se lo avete molto consigliato utilizzate il notepad ++. Modificate extensio_dir nel seguente modo
; Directory in which the loadable extensions (modules) reside.
extension_dir = “C:/php/ext”
Settare display_errors” su On di default lo trovate su Off
Create la sottocartella sessionfiles in php e aggiungete nel php.ini la seguente riga di codice
session.save_path = C:/php/sessionfiles
come dice il nome ci verranno memorizzati i vari file di sessione.
Ora ci mancano due librerie di php che permettono di collegarsi al mysql, Queste librerie dovrebbero essere gia’ presenti in ext, ma se non le trovate li provate a recuperarle su sito della mysql o della php, altrimenti andate dal buon vecchio google e ve li cerca lui per voi. cmq le librerie da scaricare nella sottocartella ext sono
php_mysql.dll
php_mysqli.dll
fatto questo tornate al vostro php.ini e aggiungete le seguenti righe di codice
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_gd2.dll
riavviate il vostro server apache e per prova inserite dentro la cartella www il seguente codice
<?php
echo “benvenuti nel mio server php + apache +mysql”;
?>
e chiamatela index.php , andate su un browser e date il local host se vi compare quella scritta a video tutto è andato bene per il php, per vedere se tutto è andato bene anche per il mysql dovrete testarci con delle query oppure come abbiamo fatto noi direttamente con il Joomla
Icona per una pagina Web
Dopo avervi detto cos’e’ Apache ed in passi piu’ importanti per installarlo e per farlo funzionare , vi mostriamo adesso una funzione prettamente ludica ma di sicuro impatto per i visitatori della vostra pagina. Avete presenti quell’icone che appaiono nel vostro browser accanto all’url quanto visitate una determinata pagina web? Adeso vi indicheremo come farlo anche a voi.
Quando si inserisce una pagina fra i preferiti, il browser invia una request al file favicon.ico nella stessa directortu che contiene la pagina. Il file favicon.ico altro non è che un’icona nel formato Windows icon..
La direttiva AliasNatch permette di fare proprio questo , ossia redigere tutte le richieste di una favicon un’unica locazione che contiene l’icona del sito eseguendo la seguente sintassi
AliasMatch/favicon.ico/usr/local/apache2/icons/site.ico
Apache httpd
Come vi abbiamo gia’ detto il principale file di configurazione di Apache si chiama httpd.conf e contiene direttive e contenitori o come l’avevamo gia’ chiamate sezioni.
E’ possibile inserire commenti all’interno del file utilizzando il carattere “cancelletto” # all’inizio di un rigo. In quanto le righe di commento sono ovviamente ignorate da Apache
Una direttiva puo’ estendersi su piu’ righe se si utilizza alla fine di ciascun rigo il carattere backslash \
Quando un argomento di una direttiva è un percorso relativo, esso si intende riferito al percorso d’installazione del server o server root. Per esempio se l’installazione di Apache è avvenuta tramite il sorgente, come gia’ visto in questo capitolo, la server root è /usr/local/apache2 etc. Tramite la direttiva ServerRoot è anche possibile modificare questo valore predefinito.
I Container di direttive dette anche sezioni servono a limitare il raggio di azione delle direttive , il loro ambito sarà lo scope predefinito del server config e verranno applicate all’interno del server
<Directory “/user/local/apache/htdocs”>
….
</Directory>
<Location “/downloads/*.html”>
……
</Location>
<FileMastch “\.gif “>
….
<FileMatch>
Vediamo alcune direttive di Container predefinite da Apache.
<VirtualHost>
Specifica un server virtuale in quanto apache consente l’utilizzo di diversi server virtuali nella stessa macchina
<DirectoryMatch> applicano direttive a una certa directory o gruppo di directory nel file system.
<Location> e <LocationMatch> applicano le direttive a specifici URL o a modelli di URL.
<Files> and <FileMatch> applicano direttive a specifici file o modelli di file.
Affrontiamo adesso un attimo i Container Condizionali di direttive.
<IfDefine> le direttive di questo container verranono eseguite se si passa all’eseguibile di Apache un’istruzione specifica da linea di comando
<IfModule> eseguite solamente se il modulo passato come argomento è presente nel weeeb server.
Facciamo un esempio nel file di configurazione httpd.conf
<IfDefine SSL>
LoadModuel ssl_module modules/mod_ssl.so
</IfDefine>
Hosting Virtuale
Vi poniamo subito la domanda di cosa sia un Hosting Virtuale. La risposta è un modo di gestire diversi siti con una singola istanza del server Apache, utilizzando l’hosting virtuale basato su indirizzo IP ed anche sul nome.
Il modo piu’ immediato di ottenere un hosting virtuale è basato sulla combinazione indirizzo IP/Porta a cui il client si connette. Apache puo’ essere configurato a tale scopo usando le sezioni < VirtualHost>
un esempio potrebbe essere il seguente.
<VirtualHost 192.168.200.4:80>
(..)
</VirtualHost>
dove 80 è ovviamente la porta di ascolto
Facciamo adesso un esempio dove il server apache gestisce tre host virtuali basati su IP.
Listen8080
Listen 80
<VirtualHost 192.168.200.2>
ServerName www.example.com
DocumentRoot /usr/local/apache/sites/example.com
</VirtualHost>
<VirtualHost 192.168.200.2:8080>
ServerName www.example.com
DocumentRoot /usr/local/apache/sites/staging
</VirtualHost>
<VirtualHost 192.168.200.4:*>
ServerName www.example.net
DocumentRoot /usr/local/apache/sites/example.net
</VirtualHost>
La direttiva ServerName sarà utilizzata per la costruzione degli url, mentre la direttiva DocumnetRoot specifica una locazione diversa per i contenuti dei siti per ciascun host virtuale.
Ovviamente è indispensabile mettere le porte su il server è in Ascolto, altrimente, si genererebbero solo errori.
Questi erano hosting virtuali basati sugli ip, ma è anche possibile in modo analogo configurare hosting virtuali basati sui nomi in quanto non è dissimile dall’iP
Prendiamo in considerazione due host virtuali che condividono IP 192.168.200.2. Apache di volta in volta che avrà una richiesta deciderà verso quale host dirigere la richiesta, basandosi sul valore di intestazione di Host: della richiesta HTTP, che verrà comparato con il nome di host fornito da ServerName e con altri nomi in presenza di istruzioni opzionali ServerAlias
Vediamo subito un esempio.
Listen 80
NameVirtualHost 192.168.200.2
<VirtualHost 192.168.200.2>
ServerName www.example.com
ServerAlias example.com web.example.com
</VirtualHost>
L’istruzione NameVirtualHost india che un particolare IP sarà utilizzato per gli host virtuali basati sul nome.. Ovviamente i DNS dovranno essere configurati nel rooter per avere un indirizzamento a 192.168.200.2
Come ultimo passo vediamo come fare coesistere host virtuali basati sul nome con host virtuali basati sull’ip e lo facciamo nel modo piu’ semplice possibile ossia attraverso un esempio
NameVirtualHost 192.168.200.2
<VirtualHost 192.168.200.2>
ServerName www.example.com
DocumentRoot /usr/local/apache/sites/example.com
</VirtualHost>
<VirtualHost 192.168.200.2>
ServerName www.example.com
DocumentRoot /usr/local/apache/sites/staging
</VirtualHost>
<VirtualHost 192.168.200.4>
ServerName www.example.net
DocumentRoot /usr/local/apache/sites/example.net
</VirtualHost>
E con questa lezione concludiamo la nostra guida per quanto riguarda il server Apache ossia il server piu’ utilizzato nel web, nella speranza di esservi stati di aiuto.
Condividi:
Mi piace:
Correlati
RewriteRule per ottenere URL SEO con htaccess
Vediamo in questa guida di comprendere al meglio uno dei tanti moduli presenti nel vostro server web Apache , ai fini SEO , ossia mod_rewrite. Si tratta di un. Leggi ancora…
Condividi:
Mi piace:
Continue Reading
La gestione degli errori in runtime php, php.ini e .htaccess
Quando si deve programmare in un qualsiasi linguaggio una delle cose sicuramente piu’ importanti nella fase di sviluppo di un ‘applicazione è il debug ed in particolare la visualizzazione degli. Leggi ancora…
Condividi:
Mi piace:
Continue Reading
Installazione Apache Tomacat 7 e webapp con JSP e Servlet
Vediamo adesso come si installa Apache Tomcat 7, in quanto l’ultima versione installa presenta dei sostanziali cambiamenti rispetto alle precedenti versioni. Intanto Apache Tomcat è un web container open source sviluppato dalla Apache Software Foundation.. Leggi ancora…
Condividi:
Mi piace:
Continue Reading
Rendere sicuro WordPress da attacchi Hacker con .htaccess
Vi parliamo adesso del blog WordPress e delle principali tecniche per impedire ad hacker di causare danni e prelevare informazioni. Agiremo su .htacces, permesso dei file , robots.txt. Partiamo subito. Leggi ancora…
Condividi:
Mi piace:
Continue Reading