Guida PHP su Windows (from HTML.IT)
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Guida PHP su Windows (from HTML.IT) Introduzione: perchè Windows? Non vi sono dubbi che l'ambiente lato server in cui PHP dà il meglio di sè sia quello Unix-like quindi consigliamo a chi abbia un minimo di confidenza con Aix, Linux, Mac OS X e affini, di saltare a piè pari queste pagine per andare a leggere la guida di HTML.it appena pubblicata che descrive l'installazione e l'utilizzo di PHP in quei sistemi operativi. Resta il fatto che Windows è il sistema operativo più utilizzato dall'utente comune, e che buona parte del successo di PHP deriva dalla particolarità che non solo si tratta di linguaggio quasi perfettamente multipiattaforma, ma che è anche possibile ricreare in Windows un ambiente di esecuzione molto simile a quello dove i vostri script, una volta testati in locale, andranno a girare dopo essere stati caricati sul server in hosting. Infatti la configurazione tipica Apache+PHP+MySQL, nella quale PHP è integrato come modulo di Apache, è anch'essa nel suo insieme multipiattaforma. Questa guida descrive la creazione in locale, nel nostro PC, di un ambiente di test cosiddetto WAMP (Windows, Apache, MySQL, PHP), ed è rivolta a chi non ha ancora superato lo "scoglio" Linux. Gli strumenti per eseguire gli script PHP Nelle prossime pagine illustreremo l'installazione di: • Php 4.4.2, l'ultima versione dell'interprete Php 4. Php 5 sta prendendo piede molto lentamente, quindi per ora abbiamo preferito proporlo solo come alternativa, evidenziando solo le differenze nell'installazione quando ve ne siano. • Php 5.1.2. In alternativa, appunto, a Php 4. Le istruzioni relative a Php 5 saranno colorate nel testo in colore rosso mattone. Chi invece fosse interessato alla creazione di un ambiente di sviluppo in cui Php 4 e Php 5 convivano pacificamente, troverà un'ottima guida nell'articolo Testare Php 5 conservando Php 4: server Windows. La procedura che andremo a descrivere differisce leggermente da quella indicata nelle guide non ufficiali oggi reperibili in rete e si avvicina maggiormente a quella consigliata nel manuale del team di sviluppo di Php, e tra poco capiremo i vantaggi di questa scelta. • Apache 2.0.55, il webserver che processa gli script Php. La versione consigliata sarebbe ancora la 1.3.x ma dato che i fornitori di hosting, con troppa fretta, stanno passando in massa al ramo 2.0.x tanto vale che anche noi ricorriamo all'ultima release disponibile che, inoltre, è più ottimizzata per Windows. • MySQL 4.1, la versione più diffusa del celebre server di database che era anche quella consigliata prima della recente release 5.0 • In alternativa MySQL 5.0, che comprende numerose nuove e attesissime funzionalità. EasyPhp e altri strumenti di installazione automatica Esistono tool che in un colpo solo consentono un'installazione completa dei software appena elencati. Sconsigliamo vivamente l'utilizzo di strumenti di questo tipo, innazitutto perchè tolgono la possibilità di capire la configurazione di Php e in secondo luogo perchè spesso sono difficili da aggiornare o disinstallare completamente. In sostanza creano più problemi di quanti ne risolvano. Installazione del Web Server Apache Per prima cosa installiamo Apache 2. Dovrete scaricare dal sito ufficiale l'installer per Windows, e cioè il file denominatoWin32 Binary (MSI Installer): abbiamo già deciso di utilizzare la release 2.0.x (al momento in cui scriviamo 2.0.55 ) quindi ignoriamo tutte le altre.
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 Figura 1. Le opzioni di configurazione di Apache 2 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 (Figura 2). Figura 2. L'icona che rappresenta Apache avviato 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.55 troveremo altre opzioni di configurazione e amministrazione piuttosto intuitive.
Figura 3. Apache Service Monitor, il servizio di controllo di Apache 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/. Il file di configurazione di Apache 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.55 / 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, ... La prima cosa da fare è spostare la DocumentRoot in un percorso di più semplice accesso, come ad esempio C:\www Creata la directory non ci resta che indicare ad Apache che è in quel percorso che deve reperire i file per esaudire le richieste dei browser. Apriamo quindi il file http.conf secondo i due metodi descritti in precedenza e cerchiamo la direttiva corrispondente. # # 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:/Programmi/Apache Group/Apache2/htdocs" Sostituiamo il nostro nuovo percorso DocumentRoot "C:/www" Da evidenziare il fatto che nell'httpd.conf sia sempre e comunque obbligatorio specificare i percorsi con lo slash (/) anzichè con il backslash (\) tipico di Windows.
Lo stesso percorso va poi sostituito anche più in basso, come risulta chiaro dai commenti esplicativi # # This should be changed to whatever you set DocumentRoot to. # Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all In questa direttiva vengono specificate alcune opzioni di default, valide per tutta la DocumentRoot e per i percorsi sottostanti, modifichiamo solo la prima riga Per il momento con il file httpd.conf abbiamo finito, anche se più avanti dovremo apportare altri cambiamenti. Per vedere applicate le modifiche e rendere effettiva la nuova DocumentRoot è necessario riavviare il Web Server dal già visto Apache Service Monitor (pulsante Restart), se non si verificano errori significa che possiamo passare alle prossime operazioni. Installazione di 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. Scarichiamo per prima cosa il pacchetto contentente l'interprete PHP 4.4.x e le varie librerie per Windows dal sito ufficiale. Il file che ci interessa al momento è denominato PHP 4.4.2 zip package. Non dobbiamo utilizzare l'installer automatico (PHP 4.4.2 installer). PHP 5: il Package è indicato con l'etichetta PHP 5.x zip package. Dopo aver decompresso l'archivio in formato zip (php-4.4.2-Win32.zip) , nella cartella php-4.4.2-Win32 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:\ e rinominiamola php. PHP 5: il nome del file è php-5.1.2-Win32.zip. A questo punto l'interprete PHP e le librerie ausiliarie si trovano in C:\php, la struttura ad albero delle cartelle dovrebbe essere la seguente. c:\php | +--cli | | | |-php.exe | +--dlls | | | |-expat.dll | | | |-fdftk.dll | | | |-... | +--extensions | | | |-php_bz2.dll | | | |-php_cpdf.dll
| | | |-.. | +--mibs | +--openssl | +--pdf-related | +--sapi | | | |-php4apache.dll | | | |-php4apache2.dll | | | |-.. | +--PEAR | | --go-pear.bat | |-.. | --php.exe | |-.. | --php.ini-dist | --php.ini-recommended | --php4ts.dll | |-... Abbiamo contrassegnato in rosso le cartelle più importanti: • cli: contiene l'eseguibile PHP da linea di comando (php.exe), non ha nulla che fare con il Web Server, serve esclusivamente a utilizzare PHP come linguaggio per script di shell "standalone". In molti casi può tornare utile, ma per maggiori dettagli invitiamo a leggere il capitolo dedicato nel manuale ufficiale e l'articolo Una shell in PHP . • dlls: contiene librerie ausiliarie utilizzate da alcune estensioni php (vedi paragrafo successivo) • extensions: contiene le principali estensioni PHP, quest'ultime forniscono all'interprete le funzionalità che si è scelto di non non compilare direttamente nel "core" dell'interprete. Le più conosciute sono la libreria GD2parsing (per la gestione delle immagini), le estensioni per il parsing dell'XML e quelle per l'interazione con i vari database. Vanno abilitate decommentando l'apposita riga nel file di configurazione php.ini, cosa che vedremo più avanti. • sapi: è una cartella fondamentale poichè contiene i moduli di integrazione per diversi Web Server. Noi utilizzeremo php4apache2.dll ma sono presenti anche i moduli per Apache 1.3.x, IIS, Netscape e altri. • php.exe si tratta dell'eseguibile Php/Cgi, per chi non desidera integrare l'interprete PHP come modulo di Apache (la modalità di installazione più diffusa e quella che stiamo descrivendo in queste pagine) e preferisce programmare lato server alla "vecchia maniera". • php.ini-dist e php.ini-recommended sono i file di configurazione di PHP, rispettivamente quello standard e quello più restrittivo. Sceglieremo il secondo e lo rinomineremo php.ini • php4ts.dll: il nocciolo vero e proprio dell'interprete PHP.
Per una descrizione più dettagliata della struttura e dei ruoli dei file PHP vi invito alla lettura delle pagine dedicata nel manuale ufficiale PHP 5: la struttura della directory principale è leggermente differente ma per il momento possiamo trascurare questo aspetto Rendere Php disponibile nel sistema 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 o php5ts.dll nel caso di Php 5). 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. Il manuale dedica alla procedura un'apposita FAQ e la figura 4 mostra una schermata d'esempio. Figura 4. Aggiungere il percorso di Php al Path di sistema 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\). - Php 5: questa operazione non è necessaria 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. - Php 5: questa operazione non è necessaria 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. . . . #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 Aggiungiamo al termine della lista le righe seguenti #Start Php integration LoadModule php4_module "c:/php/php4apache2.dll" AddType application/x-httpd-php .php PhpIniDir "C:/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. - Php 5: l'httpd.conf deve esere modificato come segue: Valido solo per Php 5 # Start Php integration LoadModule php5_module "c:/php/php5apache2.dll" AddType application/x-httpd-php .php PhpIniDir "C:/php" # End Php integration 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 # # 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
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:\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 ; Directory in which the loadable extensions (modules) reside. extension_dir = "./" e cambiatela come segue extension_dir = "C:/php/extensions" In questo modo abbiamo indicato all'interprete dove cercare le estensioni che prima o poi vorremo attivare. - Php5: la directory che contiene le estensioni si chiama ext, quindi dobbiamo sostituire la riga come segue: Valido solo per Php 5 extension_dir = "C:/php/ext" In secondo luogo scorrete ancora il file verso il basso, fino alla blocco seguente ; 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 ; 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. session.save_path = C:/php/sessionfiles sessionfiles è una directory vuota che dovete subito creare in C:\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:\www) un file chiamato test.php che contenga una sola semplicissima riga
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 in figura 5. Figura 5. Risultato a video della funzione phpinfo 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. Abilitare le estensioni di Php Quando compiliamo Php in Linux possiamo scegliere se includere alcune librerie diretamente nel "core" dell'interprete o se abilitarle come moduli esterni (i cosiddetti "shared objects"), nel caso del pacchetto precompilato per Windows non abbiamo l'imbarazzo della scelta: tutte le estensioni che non sono ritenute indispensabili si trovano in file .dll esterni (contenute nella directory extensions descritta nel precedente paragrafo). Se desideriamo dotare Php di queste funzionalità aggiuntive è indispensabile attivare le rispettive estensioni nel file php.ini, decommentando le righe che ci interessano nel lungo elenco di file .dll. Abbiamo già visto che i commenti si eliminano cancellando il punto e virgola (;) all'inizio della riga. ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ; ; If you wish to have an extension loaded automatically, use the following ; syntax: ; ; extension=modulename.extension ; ; For example, on Windows: ; ; extension=msql.dll ; ; ... or under UNIX: ; ; extension=msql.so ; ; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the ; extension_dir directive above. Con ogni probabilità vorremo attivare almeno l'estensione php_gd2.dll per la gestione delle immagini. Esiste inoltre una serie di estensioni che non vengono incluse nel package standard Php (in quanto sono in continua evoluzione), queste librerie vanno a comporre il grande serbatoio del PECL (si veda anche il nostro articolo dedicato a Pear e Pecl). Le versioni precompilate per Windows sono scaricabili dal sito snaps.php.net; se, ad esempio, volessimo dotare Php 4 del supporto per il database SQLite (una sorta di Ms Acces ma open source e disponibile di default in Php 5) dovremmo scaricare il file php_sqlite.dll , copiarlo in C:\php\extensions e inserire nel file php.ini l'istruzione: extension=php_sqlite.dll Dopo aver riavviato il Web Server il solito phpinfo() ci dirà se l'estensione è stata abilitata con successo o meno. Per maggiori informazioni su SQLite consigliamo la lettura degli articoli Php e SQLite, una piccola grande novità e SQLite: mini-guida all'uso, pubblicati entrambi su HTML.it. - Php 5: SQLite è integrato nel core dell'interprete e le estensioni PECL sono disponibili direttamente in www.php.net ("Collection of PECL modules") Installazione di MySQL 4.1 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) (file mysql-essential- 4.1.15-win32.msi), eseguitelo e procedete all'installazione. Avanzate velocemente "a suon di click" scegliendo l'installazione "Typical" e accettate il percorso di installazione proposto di default (C:\Programmi\MySQL\MySQL Server 4.1). Se avete fretta saltate la registrazione a Mysql.com cliccando su Skip e successivamente scegliete Configure MySQL Server Now optando per la Standard Configuration Decidete di installare il Database sia come servizio di Windows (si avvierà automaticamente al'avvio del pc) ma anche di poterlo utilizzare da linea di comando. Quindi spuntate sia il checkbox Install as Windows Service sia quello Include Bin Directory in Windows PATH (Figura 6) Figura 6. Installazione di MySQL come servizio Inserite a questo punto due volte la password di root (amministratore) senza abilitare l'accesso anonimo (è vero che siamo in locale, ma meglio non prendere brutte abitudini). Cliccando su Next e poi su Finish avremo portato a termine l'installazione (Figura 7).
Figura 7. Scelta della password di amministratore A questo punto con buona probabilità riceveremo un alert dovuto ad un errore di connessione (Figura 8): se così fosse, l'errore dipende dal firewall di Windows, e la soluzione è inserire MySQL tra le eccezioni del Firewall raggiungibili dal pannello di controllo di Windows. Figura 8. Il possibile errore dovuto al firewall di Windows Per includere MySQL nelle eccezioni del Firewall fate così: Pannello di controllo / Centro sicurezza PC / Gestione impostazioni protezione per Windows Firewall / Eccezioni / Aggiungi programma e aggiungete mysql-nt.exe (nel nostro esempio C:\Programmi\MySQL\MySQL Server 4.1\bin\mysqld-nt.exe) tra i programmi consentiti. Dopo aver salvato le opzioni tornate all'alert di errore e cliccate su Retry e .. et voilà tutto dovrebbe andare per il verso giusto: anche MySQL 4.1 è installato, vedremo più avanti come sia possibile gestirlo.
Installazione di MySQL 5.0 Per gli amanti delle novità ecco come procedere all'installazione della recente release 5.0 che, grazie alle nuove funzionalità, rappresenta una svolta epocale per gli utilizzatori di questo diffusissimo Database. Descriveremo questa installazione come alternativa alla precedente, anche se è possibile far convivere le due versioni modificando la porta di default (3306) di una delle due installazioni. I passaggi di installazione 1. Scaricate dal sito ufficiale il package denominato Windows Essentials (x86) di MySQL 5 (file mysql- essential-5.0.19-win32.msi) 2. Avviate il file e scegliete di procedere con l'installazione tipica e cliccate su Next 3. Selezionate Detailed Configuration, soluzione che ci consentirà configurare, almeno in parte, il Database sin dall'installazione come evidenziato dalla Figura 9. Ogni scelta sarà comunque rivedibile successivamente. Figura 9. Selezione dell'opzione di configurazione 4. Visto che stiamo configurando un ambiente di sviluppo in locale scegliete l'opzione Developer Machine, che consente di risparmiare sulle risorse consumate dal database. 5. Sempre per una questione di risorse indicate che il numero massimo di connessioni contemporanee che possiamo attenderci è 20 (Decision Support DSS/OLAP) 6. 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). 7. Decidete di consentire l'accesso al database anche attraverso le connessioni di rete, utilizzando la porta di default 3306 (Figura 10)
Figura 10. Impostazioni delle connessioni di rete 8. Al momento di decidere sul tipo di carattere da utilizzare selezionate Best Support For Multilingualism, il charset di default diverrà UTF-8 9. Come nel caso di MySQL 4.1 installate il Database come servizio di Windows e inserite il percorso dei binari nel PATH di Windows. 10. Anche in questo caso il firewall potrebbe dare qualche problema, facilmente risolvibile come già descritto al punto nella lezione precedente. Utilizzare MySQL con Php 5 Php 5 consente di sfruttare a pieno tutte le nuove funzionalità delle versioni superiori alla 4.1.3 di MySQL 4 e di MySQL 5.0 attraverso l'estensione MySQLi (MySQL Improved). Come per le altre estensioni è sufficiente aggiungere una riga al php.ini (vedi il precedente paragrafo "Abilitare le estensioni") extension=php_mysqli.dll In ogni caso la versione più aggiornata delle librerie client di Php per MySQL non è quella di Php.net, ma quella altrettanto autorevole rilasciata da MySQL AB: è reperibile alla pagina dei downloads, dove è possibile scaricare sia la libreria classica Mysql sia la già citata Mysqli (entrambe disponibili solo per Php 5). Per un approfondimento su MySQLi consigliamo la lettura di due articoli del sito Zend.com. Per un approfondimento su MySQL 5 vi invitiamo a leggere gli articoli in corso di pubblicazione nella sezione Database di HTML.it. Problemi tra MySQL 4.1 e superiori e Php 4 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: 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> 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. Amministrare MySQL MySQL è molto "user friendly" ed è sempre possibile riconfigurare il database recandosi nel menu di Windows in Start / Programmi / MySQL / MySQL Server, utilizzando il "MySQL command line Client" possiamo anche amministrare il server di database dal prompt di DOS, ma perchè precluderci la comodità di un tool di amminsitrazione visuale? Ancora oggi il più completo strumento di amministrazione per MySQL rimane PhpMyAdmin, tuttavia si tratta di un software interamente realizzato in Php e come tale soffre di qualche limitazione (nell'importazione di grandi quantità di dati e altre pecche legate alla sua natura prettamente WEB). Un tempo esisteva l'ottimo MySQL Front, progetto abbandonato e poi usurpato e reso a pagamento dal furbacchione di turno. MySQL AB mette a disposizione due tool scarni ma efficienti, con funzionalità differenti e complementari: MySQL Administrator, per le operazioni di importazione, esportazione, gestione degli utenti, recupero dei dati e gestione dei database in genere; MySQL Query Browser, per la gestione delle tabelle e l'esecuzione di query mirate. Chi però è alla ricerca di uno strumento "all in one", free e diverso da PhpMyAdmin, può ricorrere alla versione "lite" dell'ottimo EMS SQL Manager for MySQL: non è completo come PhpMyAdmin o l'accoppiata precedente ma svolge al meglio tutte le principali mansioni. Inoltre i più esigenti possono sempre ricorrere alla completissima versione a pagamento. Installazione e configurazione base di phpMyAdmin Poichè PhpMyAdmin è lo strumento di amministrazione fornito da quasi tutti i servizi di hosting ci sembra utile descriverne l'installazione e la configurazione anche in locale. Dopo aver scaricato l'ultima release dal sito del progetto , scompattiamo il package compresso (al momento in cui scriviamo phpMyAdmin-2.8.0.2.zip) in un'apposita directory all'interno della root del Web Server. Diamole un nome molto originale... tipo "phpMyAdmin". Preleviamo dalla sottodirectory libraries il file config.default.php, inseriamolo nella directory principale (phpMyAdmin) e rinominiamolo in config.inc.php. Questo è il nome del file di configurazione che il software utilizzerà, le opzioni possibili sono molte e sono tutte contenute in un array, ma a noi basterà settarne un paio. Apriamo il file con un editor di testo e cerchiamo le seguenti righe $cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)? $cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed with 'config' auth_type) Inseriamo la password utilizzata dall'utente root nel campo $cfg['Servers'][$i]['password'], ed il gioco è fatto. Digitando nel browser localhost://phpMyAdmin/ visualizzeremo una pagina Web come quella in figura 11. Figura 11. La homepage di PhpMyAdmin dopo l'installazione Come abbiamo visto l'installazione base è davvero molto semplice, ma non facciamoci ingannare: phpMyAdmin è uno strumento molto completo e complesso sul quale si sono scritti decine di articoli e persino un paio di libri. Le possibilità di configurazione e di utilizzo sono molte ma una descrizione adeguata ci porterebbe davvero lontano, quindi invito i lettori a fare riferimento alla documentazione ufficiale. Una cosa è però da aggiungere: per evitare di combinare guai per errore, possiamo anche nascondere i database di sistema dichiarandoli nel file di configurazione $cfg['Servers'][$i]['hide_db'] ="mysql| information_schema"; in questo modo potremo agire solo sul database Test e su quelli da noi creati. Installazione di PEAR PEAR è il "repository" ufficiale di classi Php, è un'utile integrazione del nostro ambiente di sviluppo in quanto comprende numerosi tool che altrimenti il programmatore dovrebbe realizzare da solo: per questa ragione i file per l'installazione di PEAR vengono distribuiti con il package di installazione Php. Ci siamo già occupati di PEAR in un precedente articolo ma mentre in quel caso abbiamo descritto un metodo di installazione via Web (e quindi universale) utile su uno spazio Web remoto, in questa occasione spiegheremo come includere PEAR nell'ambiente Wamp agendo da linea di comando come avviene in Unix. Ecco i passaggi da seguire: 1. Nella directory in cui si trova la nostra installazione Php (c:/php) è presente il file go-pear.bat, non dobbiamo fare altro che lanciarlo (cliccandolo) e seguire le istruzioni (figura 12). Dobbiamo essere connessi a Internet perchè lo script si connettera al repository di classi e effettuerà il download di alcuni packages di base.
Figura 12. Procedura di installazione di PEAR 2. Ci verrà chiesto se vogliamo indicare un eventuale proxy per la connessione (con buona probabilità non è il vostro caso) e successivamente se intendiamo modificare il percorso di installazione dei packages. A meno che non abbiate esigenze particolari mantenete il percorso di default (nel nostro caso c:/php/PEAR) , è lì che verranno salvate le classi che di volta in volta andremo a installare. 3. Procediamo rispondendo affermativamente a tutte le richieste: verranno installati i pacchetti base (DB, Net_Socket, Net_SMTP, Mail, XML_Parser, PhpUnit) . 4. Il prompt ci ricorderà che, nel caso non sia già definito, dovremo indicare nel file php.ini quale sia il percorso PEAR. È sufficiente modificare in php.ini la direttiva include_path in modo tale che comprenda anche il percorso c:/php/PEAR. In questo modo non ci sarà bisogno di includere ogni volta l'intero path fisico assoluto delle classi che utilizzeremo. ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" Modifichiamolo come segue e riavviamo il Web Server ; Windows: "\path1;\path2" include_path = ".;c:\php\includes;c:\php\PEAR" 5. D'ora in poi per amministrare i package PEAR sarà sufficiente digitare nel prompt di DOS C:\>pear [istruzione] ; pear help fornirà una lista completa delle opzioni disponibili, rinviamo i lettori alla lettura dell'articolo già citato per un approfondimento. Ambiente di produzione vs ambiente di sviluppo Con un completo ambiente di sviluppo Php presente nel nostro PC siamo pronti a testare gli script in locale prima di caricarli sul server remoto, per completezza dobbiamo però sottolineare che quello descritto in questa guida non è il metodo consigliato di utilizzare Php in ambiente di produzione Windows. Alcuni fornitori di hosting mettono a disposizione Php anche nella configurazione Windows + IIS (infatti, seppur con alcune differenze, gli script sono perfettamente in grado di operare anche attraverso il Web Server ufficiale di Microsoft) in questi casi tuttavia la configurazione tipica (e consigliata) non vede l'interprete Php integrato nel Web Server (filtro ISAPI), bensì Php viene richiamato come programma esterno attraverso il protocollo CGI. La stessa Zend ha rilasciato appositamente ZEND Core (in precedenza Zend Win Enabler), una release Php proprietaria che, sfruttando il protocollo FAST CGI consente di installare in Windows una versione stabile di Php che non penalizza le prestazioni. L'installazione presa in esame in questa guida è quella che consente di riprodurre in Windows un ambiente quanto più simile possibile a quello che di solito troviamo in hosting, cioè Php come modulo di Apache su macchina con OS Unix-like.
Puoi anche leggere