Site icon Noir Solutions

Guida all’Installazione del Web Server Apache e PHP

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.

 

 

 

 

Exit mobile version