System World ~ The Power Of Knowledge! (Skin)

Reply
PHP - Installarlo in locale su Windows
view post Posted on 10/2/2007, 01:15Quote
Avatar


Group: Member
Posts: 5504


Status: Utente anonimo


Questa guida serve a chi vuole installare in locale un server web sul proprio pc con Apache e PHP!

Programmi richiesti:
Php 4.4.4
Apache 2.0.59
MySql 5.0


Installare Apache

Per prima cosa installiamo Apache 2. Dovrete scaricare dal sito ufficiale l'installer per Windows, e cioè il file denominato Win32 Binary (MSI Installer):

Terminato il download ecco i passi da seguire. Cliccate due volte sull'installer, nelle prime due schermate della procedura verrà chiesto di accettare le condizioni di utilizzo e leggere la licenza. In ambedue i casi fate clic su OK e proseguite cliccando su Next, comparirà così la schermata visibile in figura 1 in cui dobbiamo indicare nell'ordine:

* Il nome della nostra macchina (Network Domain) all'interno della rete
* Il dominio di riferimento (Server Name)
* L'email dell'amministratore
* La porta in cui il webserver starà in ascolto

image



Nel nostro caso, poichè tutto il sistema non dovrà essere utilizzato come vero e proprio server, nei primi due campi possiamo inserire "localhost" e nel terzo un'indirizzo e-mail qualsiasi. Nel quarto campo possiamo scegliere la porta di default (porta 80) od un'altra (da utilizzare soltanto se nella macchina sia già attivo un altro Webserver, ad esempio IIS o un'altra versione di Apache).

Ad ogni modo si tratta di dati che è possibile modificare anche in un secondo momento, operando direttamente nel file di configurazione di Apache.

Al passaggio successivo scegliete l'installazione tipica e, quando viene richiesto il percorso in cui installare il software, possiamo mantenere quello di default (C:\Programmi\Apache Group\). Cliccate ancora una volta su Next e infine su Install. Se nel frattempo il firewall di Windows dovesse chiederci se bloccare o attivare Apache, optate per Sblocca altrimenti il Web Server non potrà svolgere il suo lavoro. Se tutto è andato a buon fine, nella zona delle icone di notifica, accanto all'orologio di Windows, dovrebbe essere comparsa una nuova icona raffigurante la penna di Apache con una freccia verde ad indicare che il servizio è attivo

image



Se cliccate con il pulsante destro sull'icona potremo aprire l'Apache Service Monitor (Figura 3) che consente di avviare o arrestare il Web Server, andando nel menu di Windows in Start / Tutti i programmi / Apache HTTP Server 2.0.59 troveremo altre opzioni di configurazione e amministrazione piuttosto intuitive.

image



Digitando nella barra degli indirizzi del browser l'url "http://localhost/" dovrebbe accoglierci la pagina di benvenuto di Apache, ma ricordiamo che se per qualsiasi ragione alla lettera d) del punto 2) del precedente elenco avessimo indicato la porta 8080, l'url da digitare sarebbe http://localhost:8080/.

Ora che il webserver è attivo non ci resta che scoprire dove vadano collocate le pagine Web affinchè siano raggiungibili attraverso il browser; la directory (o cartella, in stile Windows) in cui questi file vanno inseriti e divengono reperibili è detta DocumentRoot.

Se, come nel nostro esempio, Apache è stato installato in C:\Programmi\Apache Group\, la DocumentRoot si trova in C:\Programmi\Apache Group\Apache2\htdocs.

Tra breve vedremo come sia possibile modificare a piacimento questo percorso, agendo sulla configurazione del Web Server. I parametri di configurazione di Apache sono tutti racchiusi in un file di testo, denominato httpd.conf, che è modificabile seguendo il percorso Start / Programmi / Apache HTTP Server 2.0.59 / Configure Apache Server / Edit the Apache httpd.conf Configuration File oppure, secondo il percorso del nostro esempio, accedendo direttamente alla directory C:\Programmi\Apache Group\Apache2\conf.

Dopo aver fatto un backup di sicurezza dell'httpd.conf, possiamo iniziare ad esplorarlo per apportare tutte le modifiche necessarie: ad un primo sguardo potrebbe apparire molto complicato, ma in realtà non è così: le righe precedute dal simbolo cancelletto (#) sono considerate dei commenti e vengono quindi ignorate, tutte le altre presentano una struttura comune del tipo Parametro -> Valore che nella sintasssi dell'httpd.conf diventa Parametro Valore ( separati da uno spazio) oppure Parametro Valore1, Valore2, ...


Installare il PHP


A questo punto dobbiamo installare il motore Php, il componente software che si occuperà di interpretare gli script Php conservati sul nostro server e di restituire la risposta al browser.

Dopo aver scaricato e decompresso l'archivio in formato zip, nella cartella ne troveremo un altra con il medesimo nome: quest'ultima contiene tutti i file necessari ad installare PHP in Windows. Spostiamo questa directory in C:\Programmi e rinominiamola php.

Affinchè tutto funzioni dobbiamo rendere nota al sistema la presenza di Php. Per prima cosa dobbiamo inserire nel PATH di sistema il percorso in cui si trova l'interprete (php4ts.dll). Lo possiamo fare recandoci in Pannello di Controllo / Sistema / Avanzate / Variabili d'ambiente / Variabili di Sistema, cliccando due volte sulla variabile Path e una volta su Modifica, in fondo alla stringa contenuta nella variabile Path aggiungiamo ;C:\php, facendo attenzione a separare il valore dal precedente con un punto e virgola e a non lasciare spazi prima di ;C:\php.

image



Successivamente, per rendere raggiungibile il modulo per Apache 2, è necessario copiare in C:\php il file php4apache2.dll (che per ora si trova in C:\php\sapi\).

Infine copiamo il contenuto della directory dlls (C:\php\dlls) nella directory principale (C:\php) e riavviamo il Pc per rendere attive le nuove impostazioni del Path di sistema.

Al riavvio, digitiamo dal prompt di DOS (si ottiene digitando dal menu Start / Esegui il comando cmd) il comando php -v, dovremmo ottenere alcune sintetiche informazioni dall'interprete CGI. Ciò non ha nulla a che fare con la nostra installazione per Apache ma si tratta comunque di un messaggio rassicurante, infatti significa che il sistema ha tutte le informazioni necessarie su come raggiungere l'interprete Php.

Questa installazione, consigliata dal manuale ufficiale Php, ha il vantaggio di non richiedere lo spostamento di file nelle directory di sistema (Windows, System32 e altre): infatti modificando la sola variabile di sistema PATH e mantenenedo i file in c:\php, tutto rimane più ordinato e l'aggiornamento diventa molto più semplice.


Integrazione di Php come modulo di Apache

Semplificando al massimo possiamo dire che il compito di un server Web è quello di ricevere le richieste HTTP e fornire al client (di solito il browser) il contenuto dei file richiesti. Tuttavia, nel caso dei file con estensione .php, prima di esaudire la richiesta il Web Server effettua il parsing e l'esecuzione del codice Php contenute nel file. Affinchè ciò avvenga è necessario che l'interprete si trovi integrato nel Web Server, ed è quanto ci accingiamo ad illustrare.

Torniamo al file di configurazione di Apache (nel nostro esempio C:\Programmi\Apache Group\Apache2\conf\httpd.conf), apriamolo con un editor di testo (avete già fatto il backup come consigliato in precedenza, vero?) scorriamo il testo fino a giungere in fondo all'elenco che contiene una lunga serie di "LoadModule ..." molti dei quali commentati.
CODICE
.
.
.
#LoadModule speling_module modules/mod_speling.so
#LoadModule status_module modules/mod_status.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so


Aggiungete al termine della lista la seguente dicitura

CODICE
#Start Php integration
LoadModule php4_module "c:/php/php4apache2.dll"
AddType application/x-httpd-php .php
PhpIniDir "C:/Programmi/php"
#End Php integration


La prima riga indica ad Apache dove trovare il modulo per l'integrazione di Php, la seconda dice che i file con estensione .php devono essere elaborati attraverso Php. L'ultima istruzione specifica dove vada cercato il file di configurazione php.ini.

Queste righe non devono trovarsi necessariamente in quella posizione, ma personalmente è più comodo e leggibile raggruppare tutte le istruzioni in un unico blocco. Un'ultima aggiunta al file httpd.conf è necessaria affinchè anche il file index.php vada a far parte dei file che il Web Server cerca automaticamente quando viene indicato il percorso di una directory (ad esempio www.sito.it/miadir/). Scorriamo ancora un po' il file di configurazione fino a raggiungere questo blocco
CODICE
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.html index.html.var


è sufficiente modificarlo come segue

CODICE
DirectoryIndex index.html index.html.var index.php


Salviamo tutte le modifiche e passiamo alla configurazione vera e propria di Php attraverso il file php.ini.


Personalizzazione del file Php.ini

Tornate alla directory C:\Programmi\php, rinominate il file php.ini-recommended in php.ini. Questo d'ora in poi sarà il file attraverso il quale potrete modificare alcuni comportamenti dell'interprete Php: consente di abilitare nuove estensioni, restringere o allentare alcune impostazioni legate alla sicurezza e definire molte altre impostazioni.

Aprite il file con un editor di testo (ricordiamo sempre di effettuare prima un backup) e, se avete tempo e voglia, leggete con attenzione i commenti inseriti tra le direttive, si tratta di una vera e propria miniera di informazioni sul funzionamento di Php. Per il momento dovete applicare solo tre modifiche.

Per prima cosa trovate la direttiva extension_dir

CODICE
; Directory in which the loadable extensions (modules) reside.
extension_dir = "./"


e cambiatela come segue

CODICE
extension_dir = "C:/Programmi/php/extensions"


In questo modo abbiamo indicato all'interprete dove cercare le estensioni che prima o poi vorremo attivare.

In secondo luogo scorrete ancora il file verso il basso, fino alla blocco seguente

CODICE
; Print out errors (as a part of the output). For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
display_errors = Off


sostituendo Off con On potremo vedere gli errori generati dagli script, caratteristica indispensabile in ambiente di sviluppo.

In ultimo scendete ulteriormente fino alla direttiva

CODICE
; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use Php's session functions.
;session.save_path = /tmp


Questo blocco indica a Php dove salvare i file in cui vengono memorizzati i dati di sessione. Le sessioni sono un argomento un po' complesso ma sicuramente prima o poi bisognerà servirsene, quindi meglio agire subito e modificare la riga come segue, eliminando cioè il ";" per decommentare la direttiva.

CODICE
session.save_path = C:/Programmi/php/sessions


sessions è una directory vuota che dovete subito creare in C:\Programmi\php (o dove preferite purchè sia dotata di permessi che consentano a Php la creazione e la scrittura di file al suo interno).


Test Finale con phpinfo()

A questo punto non resta che riavviare Apache attraverso i tool visti in precedenza (è sempre necessario riavviare Apache per rendere effettive le modifiche ai file httpd.conf e php.ini, questo perchè l'interprete Php ora è parte dello stesso Web Server) e controllare che tutto funzioni.

Se non ci sono errori o warning è quasi giunto il momento di festeggiare, non senza testare il primo script .php. Create dunque nella DocumentRoot (nel nostro esempio C:\Programmi\Apache Group\Apache2\htdocs) un file chiamato test.php che contenga una sola semplicissima riga

CODICE
<?php phpinfo() ; ?>


la funzione phpinfo() invia all'output una miriade di informazioni sulla configurazione di Php, richiamando la pagina dal browser (http://localhost/test.php) dovremmo vedere la schermata seguente

image



Se qualcosa fosse andato storto, eliminiamo i file httpd.conf e php.ini modificati, ripristiniamo quelli di backup e ripetiamo tutte le operazioni dall'inizio.


Installazione di MySQL

Un sito dinamico privo di database è ben poca cosa, quindi procediamo con l'ultimo passo fondamentale nella configurazione del nostro ambiente di sviluppo WAMP.

Scaricate dal sito ufficiale il package denominato Windows Essentials (x86) di MySQL 5 (file mysql-essential-5.0.19-win32.msi)

Avviate il file e scegliete di procedere con l'installazione tipica e cliccate su Next, selezionate Detailed Configuration, soluzione che ci consentirà configurare, almeno in parte, il Database sin dall'installazione. Ogni scelta sarà comunque rivedibile successivamente.

image



Visto che stiamo configurando un ambiente di sviluppo in locale scegliete l'opzione Developer Machine, che consente di risparmiare sulle risorse consumate dal database.

Sempre per una questione di risorse indicate che il numero massimo di connessioni contemporanee che possiamo attenderci è 20 (Decision Support DSS/OLAP).

Al passaggio successivo selezionate Multifunctional Database: le opzioni alternative ci costringerebbero a scegliere tra le tradizionali tabelle di tipo MyISAM e l'InnoDB storage engine (che fornisce il supporto per le transazioni).

Decidete di consentire l'accesso al database anche attraverso le connessioni di rete, utilizzando la porta di default 3306.

image



Al momento di decidere sul tipo di carattere da utilizzare selezionate Best Support For Multilingualism, il charset di default diverrà UTF-8.

installate il Database come servizio di Windows e inserite il percorso dei binari nel PATH di Windows.

Anche in questo caso il firewall potrebbe dare qualche problema, facilmente risolvibile come già descritto al punto nella lezione precedente.

Problemi Comuni

Se abbiamo installato Php 4 dovremo accontentarci della meno eccitante API Php/MySQL che, essendo integrata nell'interprete, non richiede attivazione nel php.ini. Tuttavia, se non applicheremo alcuni accorgimenti, al primo tentativo di connessione ci si presenterà inevitabilmente il seguente errore

"Client does not support authentication protocol requested by server; consider upgrading MySQL client "

Infatti MySQL 4.1 e 5.0 utilizzano un protocollo di autenticazione basato su un nuovo algoritmo di hashing delle password che è incompatibile con quello delle precedenti librerie client. La soluzione è riscrivere le password ricodificandola con la funzione OLD_PASSWORD, ecco come. Seguite il percorso Start / Programmi / MySQL Server / MySQL Command Line Client ed eseguite i comandi evidenziati in rosso nel seguente pannello:

CODICE
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.19-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select host,user, password from mysql.user ;
+-----------+------+------------------+
| host      | user | password         |
+-----------+------+------------------+
| localhost | root | 0bacf8382922b507 |
+-----------+------+------------------+
1 row in set (0.17 sec)

mysql> UPDATE mysql.user SET PASSWORD=OLD_PASSWORD('miapass') WHERE host='localhost' AND user='root' ;
Query OK, 0 rows affected (0.03 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> FLUSH PRIVILEGES ;
Query OK, 0 rows affected (0.01 sec)

mysql>


Dove miapass è la password che volete assegnare.

Nelle righe precedenti abbiamo sovrascritto la password di root ricodificandola, successivamente abbiamo aggiornato i privilegi sul database per rendere effettiva la modifica. Ora sarà possibile utilizzare le ultime release di MySQL anche con Php 4 come client.
 
Message Top
Hypnotize
view post Posted on 10/2/2007, 14:08Quote

Utente cancellato






Da tempo cercavo una guida così, grazie =P
 
Top
view post Posted on 15/2/2007, 14:18Quote
Avatar


Group: Member
Posts: 14368
Location: CAPUT MUNDI (ovvero ROMA)


Status: Utente anonimo


Ottima guida :P
 
Message Top
2 replies since 10/2/2007, 01:15
 
Reply

load
Fast reply

 
 
 

Enable emoticons
Clickable Smilies
Show All


Nickname:      Email:



 

 
 




Kuyt Skin was skinned by . K e y z . of the Skin Factory - Thanks for The Icon set FamFamFam // Menù Codes by Stu Nicholls