------------------------------------------------------------------------------ APACHE-PHP-MYSQL LINUX HOW-TO ------------------------------------------------------------------------------ By: WhiteR4bbit (whiter4bbit[at]linuxmail[dot]org) linuxhowtos.altervista.org Licenza: FDL Data: Agosto 2003 Testing: Apache 2.0.47 ; PHP 4.3.2; MySQL 4.0.14 ; Mandrake 9.1 (2.4.21-0.13mdk) ------------------------------------------------------------------------------ Fonti e link utili: http://www.php.net/manual/it/install.unix.php http://httpd.apache.org/download.cgi http://www.mysql.com/downloads/mysql-4.0.html http://www.php.net/release_4_3_2.php file://localhost/usr/local/mysql-standard-4.0.14-pc-linux-i686/INSTALL-BINARY ------------------------------------------------------------------------------ SOMMARIO: 1) Introduzione 2) Procurarsi tutto il necessario 3) Apache 4) MySQL 5) PHP 6) Configurazione 7) Testare se tutto funziona ------------------------------------------------------------------------------ 1) Introduzione Questa guida è indirizzata a chi vuole iniziare a programmare in PHP su Linux, in particolare per chi vuole imparare il linguaggio stesso; nuove versioni di Apache, PHP e MySQL vengono rilasciate abbastanza di frequente, quindi è ovvio che entro breve tempo questo tutorial sarà già superato, ma non inutile. Seguendolo avrete infatti una macchina perfettamente adibita all'uso del php, magari non aggiornatissima, ma in ogni caso funzionante. Se non siete maniaci dei bugfix e delle ultime versioni, e vi importa semplicemente usare PHP a livello medio su Linux, qui troverete un fedele alleato che vi semplificherà la vita. Se non sapete esattamente cosa state facendo, è consigliabile seguire alla lettera questo how-to, in quanto le applicazioni sono per molti versi intercorrelate e anche una semplice lettera in meno o in più nel nome di una directory potrebbe causare errori difficili da individuare. 2) Procurarsi tutto il necessario Avremo bisogno delle ultime versioni attuali del server apache, del modulo php e del database mysql; questi sono i link esatti ai pacchetti da scaricare, mettete tutto in un'unica cartella: * http://apache.theomnistore.com/dist/httpd/httpd-2.0.47.tar.gz * http://www.apache.org/dist/httpd/httpd-2.0.47.tar.gz.asc * http://www.apache.org/dist/httpd/httpd-2.0.47.tar.gz.md5 * http://www.mysql.com/downloads/download.php?file=Downloads%2FMySQL-4.0%2Fmysql-standard-4.0.14-pc-linux-i686.tar.gz&mirror=http%3A%2F%2Fsunsite.cnlab-switch.ch%2Fftp%2Fmirror%2Fmysql%2F * http://www.mysql.com/Downloads/MySQL-4.0/mysql-standard-4.0.14-pc-linux-i686.tar.gz.asc * http://it2.php.net/get/php-4.3.2.tar.gz/from/this/mirror 3) Apache Per installare Apache creeremo una directory /usr/bin/apache2, dopodichè scompatteremo l'archivio, configureeremo il tutto per installarsi nella directory appena creata e abiliteremo il modulo OS che ci serve per php. Loggatevi quindi come root e entrare nella cartella in cui avete scaricato tutti i file di cui sopra, dopodichè date i seguenti comandi: # mkdir /usr/local/apache2 # tar -xzvf httpd-2.0.47.tar.gz # cd httpd-2.0.47 # ./configure --prefix=/usr/local/apache2 --enable-modules=os # make # make install E attendete che l'installazione abbia termine. Controllerete apache tramite il comando "apachectl" il cui link è presente in /usr/sbin, con il parametro start lo lancerete, con il parametro stop lo fermerete, con il parametro restart lo riavvierete e con il parametro status potrete controllare se è attivo o meno. Vedremo in seguito come far partire il server all'avvio del sistema. 4) MySQL Per installare MySQL 4.0.14 dovrete loggarvi come root ed eseguire in ordine questi comandi; si tratta in pratica di creare un nuovo gruppo e un nuovo utente con permessi sul database, e di installare MySQL nella directory /usr/local/mysql Sostituite il path /percorso/del/file/mysql-standard-4.0.14-pc-linux-i686.tar.gz con quello della cartella in cui avete scaricato MySQL al punto 2). # groupadd mysql # useradd -g mysql mysql # cd /usr/local # tar -xzvf /percorso/del/file/mysql-standard-4.0.14-pc-linux-i686.tar.gz # ln -s /usr/local/mysql-standard-4.0.14-pc-linux-i686 mysql # cd mysql # scripts/mysql_install_db # chown -R root . # chown -R mysql data # chgrp -R mysql . Fate attenzione al punto alla fine dell'ultima e della terz'ultima riga; il comando per lanciarlo, una volta installato, è /usr/local/mysql/bin/mysqld_safe --user=mysql & Vedremo in seguito come far partire il database all'avvio del sistema. 5) PHP Innanzitutto assicuratevi di avere installati flex e bison; se usate Mandrake, da root digitate: # urpmi flex # urpmi bison E se non sono presenti li installerà. Ora procedete con l'installazione di PHP; sempre da root, entrate nella cartella in cui avete scaricato i file, scompattate l'archivio, create la directory /usr/local/php e installate PHP in quella directory, con il supporto per mysql e per le estensioni apxs di apache; infine copiate il file php.ini-dist nella cartella /usr/local/lib e rinominatelo semplicemente php.ini: # mkdir /usr/local/php # tar -xzvf php-4.3.2.tar.gz # cd php-4.3.2 # ./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs --prefix=/usr/local/php # make # make install # cp php.ini-dist /usr/local/lib/php.ini Vedremo ora come configurare le tre applicazioni perchè lavorino perfettamente insieme. 6) Configurazione Passiamo a configurare a puntino il sistema; iniziamo con MySQL; dovrete loggarvi come root e creare un file con questo contenuto: Salvatelo come "config.inc.php" nella cartella di mysql; vi servirà per connettervi a mysql; ovviamente se non siete i soli ad utilizzare il pc e volete crearvi uno username protetto da password, dovrete riempire anche i campi $db_user e $db_password = ""; Da roota date ora i permessi per la cartella del database "test": # chmod 777 /usr/local/mysql/data/test Editiamo ora con un editor di testo, sempre da root, altri due file: * /usr/local/apache2/conf/httpd.conf Cerchiamo la sezione "LoadModule" e aggiungiamo questa riga: LoadModule php4_module modules/libphp4.so Cerchiamo la sezione AddType e aggiungiamo queste altre righe: AddType application/x-httpd-php .php AddType application/x-httpd-php .php3 Cerchiamo le due righe DocumentRoot e editiamole inserendo una directory a piacere al posto di quella di default (questa sarà  la cartella in cui metterete i file .php da testare, quindi sceglietevala chiara e comoda): DocumentRoot "/usr/local/apache2/htdocs" Al posto del path di default potreste ad esempio usare "/home/username/php"; un po' più in basso troverete un'altra riga in cui inserire lo stesso path che avete messo sopra: Cerchiamo infine la riga DirectoryIndex e modifichiamola come segue: DirectoryIndex index.php index.html index.htm index.php3 index.phtml Salvate e chiudete il file, passiamo ad editare l'altro: * /etc/rc.local Spostiamoci alla fine del file ignorando ogni cosa scritta prima, e aggiungiamo queste due righe: /usr/local/apache2/bin/apachectl start /usr/local/mysql/bin/mysqld_safe --user=mysql & servirà  a far partire apache e mysql ad ogni avvio. 7) Testare se tutto funziona Controllate ora se Apache è in esecuzione # /usr/local/apache2/bin/apachectl status e in caso affermativo fatelo ripartire: # /usr/local/apache2/bin/apachectl restart In caso negativo invece avviatelo: # /usr/local/apache2/bin/apachectl start Create due file di testo e metteteli nella cartella che avete indicato come DocumentRoot al posto di /usr/local/apache2/htdocs; se non l'avete modificata, inseriteli in essa. Il primo file si chiamerà index.php e conterrà questo testo: Il secondo file si chiamerà database.php e conterrà questo testo:

connesso al database

";} mysql_select_db($db_name, $db) or die(mysql_error()); mysql_close($db); ?> Salvateli appunto nella cartella DocumentRoot; ora avviate il vostro browser preferito e digitate nel campo degli indirizzi: http://127.0.0.1 http://127.0.0.1/database.php Nel primo caso dovreste ritrovarvi una lunga pagina ricca di informazioni su PHP, nel secondo caso la scritta "connesso al database" senza alcun errore. Se così non fosse, ricontrollate questa guida.