rayvd@firetail.org
Apache+mods mini-HOWTO for Linux Systems
Copyright (C)2000 Ray Van Dolson.
This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You can get a copy of the GNU GPL at at http://www.gnu.org/copyleft/gpl.html.
Apache+mods mini-HOWTO per Sistemi Linux
Copyright (C)2000 Ray Van Dolson.
Questo documento è libero; è possibile redistribuirlo e/o modificarlo sotto i termini della GNU General Public License come pubblicato dalla Free Software Foundation; sia la versione 2 della Licenza sia (a vostra scelta) una qualsiasi versione successiva.
Questo documento è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno l'implicita garanzia di COMMERCIABILITÀ o ADEGUATEZZA PER UN PARTICOLARE USO. Si veda la GNU General Public License perculteriori dettagli.
Ci si può procurare una copia della GNU GPL presso http://www.gnu.org/copyleft/gpl.html.
Questo documento delinea il procedimento usato per installare Apache ed i relativi moduli sul web-server del Walla Walla College (www.wwc.edu). Mentre sarà, per la maggior parte, specifico per il nostro sistema, con buone speranze può servire come utile riferimento per effettuare altre installazioni.
Questo documento cercherà di delineare il procedimento esatto utilizzato per installare il server. Ci saranno delle note quando ci si sarebbe dovuti occupare diversamente delle cose ma saranno dati i passaggi originali (visto che hanno funzionato).
La piattaforma sulla quale è stato installato il web-server è un sistema basato su Red Hat 6.1, kernel Linux 2.2.14 (compilato da zero) in esecuzione su un sistema basato su biprocessore PIII 600 con RAID5 e diverse altre cose.
Il web-server è Apache 1.3.12. I seguenti moduli sono stati aggiunti al server:
v0.91 (5 Aprile 2000)
v0.9 (4 Aprile 2000)
v0.1 (Marzo 2000)
Avrete bisogno dei seguenti software:
Questo è lo schema della disposizione delle directory che uso e raccomando:
+ /usr/src | +-+ apache | +-+ apache-1.3.12 | +-+ modules | | | +-+ mod_perl | | | | | +- mod_perl-1.21 | | | | | +-+ depend | | | | | +- <qui i moduli perl> | | | +-+ mod_ssl | | | | | +- mod_ssl-2.6.2-1.3.12 | | | | | +-+ depend | | | | | +- openssl-0.9.5 | | | | | +- rsaref-2.0 | | | | | +- mm-1.0.12 | | | +-+ mod_fastcgi_SNAP | | | +-+ php | | | | | +- php-3.0.15 | | | | | +-+ depend | | | | | +- gd-1.3 | | | | | +- imap-4.5 | | | | | +- openldap-1.2.9 | | | +-+ mod_auth_nds | | | | | +- mod_auth_nds-0.4 | | | | | +-+ depend | | | | | +- ncpfs-2.2.0.17 | | | +-+ mod_auth_mysql | +-+ mysql
Verificate se alcuni dei sopracitati moduli/pacchetti software sono già installati sul vostro sistema. Normalmente non crea problemi, comunque, scaricare tutto ed installare in caso serva. Potreste averne una vecchia versione installata nel sistema.
mod_ssl richiede che sia installata una specie di motore SSL. OpenSSL è la scelta naturale per l'ambiente Linux. Lo si può installare attraverso RPM (come ho fatto io) o compilarlo dai sorgenti. Siccome io non l'ho compilato dai sorgenti dovrete farlo da soli, anche se penso sia molto semplice. Molto probabilmente o lo installerete nel sistema (in /usr/local o qualcosa del genere) o lo lascerete nella sua directory e semplicemente indirizzerete qualsiasi applicazione necessiti di OpenSSL alla sua directory.
RPM installerà OpenSSL nelle directory di sistema.
Create la directory rsaref-2.0 dove volete. Nel mio caso si trova in /usr/src/apache/modules/mod_ssl-blah/depend/. Spostatevi in questa directory.
cd rsaref-2.0 cp -rp install/unix local cd local make mv rsaref librsaref.a
Questi comandi dovrebbero compilarvi la libreria rsaref! Semplicemente lasciate tutto qui e quando dovete creare dei link verso la libreria indirizzate lo script di configurazione appropriato a questa posizione.
Estraete mm-1.0.12 (o qualsiasi versione sia la più aggiornata) nella directory depend della sottodirectory mod_ssl-blah. Eseguite i passi seguenti:
cd mm-1.0.12 ./configure --disable-shared make
Questo dovrebbe compilare le librerie mm. Come sopra, riferitevi a questo percorso quando serve. Dovete arrangiarvi se volete installare questa libreria nel sistema.
La procedura normale con apxs è compilare prima Apache e in seguito, utilizzando apxs, compilare i moduli che volete utilizzare ed inserirli nel server. Tuttavia, mod_ssl deve essere compilato nel server nel modo classico prima che lo possiate utilizzare con apxs. Quando mod_ssl sarà installato nel server per la prima volta potrete poi aggiornarlo via apxs senza dover ricompilare completamente Apache.
Entrate nella directory da dove state compilando mod_ssl ed eseguite le seguenti direttive di configurazione (qui c'è il file che uso io) per la compilazione iniziale:
#!/bin/sh ./configure \ --with-apache=/usr/src/apache/apache_1.3.12 \ --with-ssl \ --with-rsa=../depend/rsaref-2.0/local \ --with-mm=../depend/mm-1.0.12 \ --enable-shared=ssl
Non avete bisogno di lanciare 'make' o altro qui. Quando compileremo Apache farà tutto lui per noi.
Questa riga di configurazione fornisce due esempi di come il vostro sistema potrebbe essere configurato. Nel mio caso OpenSSL era già installato da qualche parte nel sistema (probabilmente in /usr/lib, /usr/include). Quindi non ho avuto bisogno di passare alcun parametro per localizzarlo. Comunque, rsa e mm -non- erano nel sistema e li ho compilati e lasciati nelle loro directory dei sorgenti (non ho lanciato make install). In questo caso è necessario indirizzare configure alla directory appropriata in modo che possa trovare gli header/librerie.
Da questo punto in avanti, a meno che non aggiorniate Apache (nel qual caso dovrete rieseguire i passaggi precedenti per la nuova versione di Apache), potrete usare apxs per aggiornare e ricompilare mod_ssl. Qui c'è lo script configure che uso per questo:
./configure \ --with-apxs=/apps/apache-1.3.12/bin/apxs \ --with-ssl=../depend/openssl-0.9.4 \ --with-rsa=../depend/rsaref-2.0/local \ --with-mm=../depend/mm-1.0.12
O qualche combinazione simile. Poi eseguite:
make make install make distclean
per completare l'installazione.
Note: MM -non- è richiesto per compilare mod_ssl. Se avete problemi a farlo funzionare escludetelo semplicemente dalla compilazione e anche dalla riga (o dalle righe) del file ./configure.
Quando io ho compilato mod_ssl ho avuto errori riguardanti DBM. Per risolvere questo ho dovuto aggiungere -lndbm al Makefile:
LIBS_SHLIB=-lm -lcrypt -lndbdm
Con molta probabilità questo vi risparmierà molte sofferenze.
Estraete apache-1.3.12.tar.gz in /usr/src/apache o dove preferite. Ora vogliamo compilare Apache attivando le seguenti opzioni:
Questo è il file di configurazione che ho utilizzato per compilare inizialmente Apache:
#!/bin/sh SSL_BASE=../depend/openssl-0.9.4 \ RSA_BASE=../depend/rsaref-2.0/local \ EAPI_MM=../depend/mm-1.0.12 \ ./configure \ --enable-module=ssl \ --enable-module=proxy\ --enable-shared=proxy\ --enable-module=rewrite \ --enable-shared=rewrite \ --prefix=/apps/apache-1.3.12 \ --enable-shared=ssl \ --enable-rule=SHARED_CORE \ --enable-rule=SHARED_CHAIN \ --enable-module=so
Poi eseguite
make make certificate make install
Apache dovrebbe ora essere compilato ed installato nella directory che avete specificato con --prefix. Provatelo ed assicuratevi che parta.
/percorso/di/apache/bin/apachectl start
o
/percorso/di/apache/bin/apachectl startssl
Con buone speranze dovrebbe funzionare tutto senza problemi. Se così non fosse tornate indietro ed assicuratevi di non aver dimenticato nulla.
php così come mod_auth_mysql ed eventualmente mod_perl richiederanno che MySQL sia installato e attivo sul vostro sistema. Va oltre lo scopo di questo documento entrare nei dettagli dell'installazione di MySQL ma scaricatevi l'archivio ed seguite le istruzioni contenute nel o nei file INSTALL. È una procedura abbastanza immediata avere MySQL installato e funzionante. Qualcosa del tipo:
./configure make make install
Dovrebbe installare tutto così che voi possiate compilare gli altri moduli di Apache.
Compileremo php-3.0.15 come DSO, ossia un modulo separato che può essere caricato e scaricato dal server. Questo rende semplice aggiornare php senza dover ricompilare tutto (che può essere stressante se usate molti moduli con Apache).
Nella nostra installazione di Apache php usa gd per creare immagini e cose simili. Io ho usato una versione più vecchia di gd (installata attraverso RPM) che ho linkato a php. In questo modo possiamo utilizzare anche file GIF. Questo però probabilmente non è molto desiderabile per motivi di copyright e quindi potreste voler utilizzare una versione successiva alla 1.3 che supporta solo i file PNG.
Installatelo o attraverso gli RPM (rpm -i gd*.rpm) o compilatelo dai sorgenti ed installatelo nel sistema.
Se volete il supporto IMAP, la procedura è simile a quella per gd. Io ho usato gli RPM dato che sono su un sistema Red Hat ma installare da sorgenti dovrebbe essere una procedura abbastanza semplice di ./configure;make;make install.
Ancora una volta potete installare OpenLDAP attraverso RPM o sorgenti. Ho scelto di farlo attraverso i sorgenti visto che l'ultima versione non era ancora disponibile come RPM quando stavamo installando il server.
./configure make make install
dovrebbe fare il suo dovere! (O rpm -i openldap*.rpm)
Una volta che i moduli precedenti sono installati e funzionanti possiamo andare avanti e compilare PHP come DSO. Il procedimento è molto diretto e semplice.
cd /usr/src/apache/modules/php/php-3.0.15 ./configure \ --with-apxs=/apps/apache/bin/apxs \ --with-config-file-path=/apps/etc \ --with-gd \ --with-imap \ --with-mysql=/apps/mysql \ --with-ldap=/apps \ --with-zlib \ --enable-track-vars
Ricordate che se una delle vostre librerie --with non è installata in /usr/local o /usr dovete aggiungere una riga =/percorso/ così che configure possa trovare il materiale di cui ha bisogno!
make make install
Se tutto si completa senza problemi 'make install' utilizzerà apxs per installare libphp3.so in /apache/libexec/libphp3.so e aggiungerà le voci necessarie in httpd.conf e attiverà php3. Molto semplice.
Questa sezione documenta l'installazione di mod_perl come DSO per Apache. Ci sono molti moduli perl (oltre ovviamente a perl5, che assumo abbiate già installato) che devono essere aggiunti prima che mod_perl si compili senza lamentarsi. Se non installate questi moduli mod_perl dovrebbe lamentarsi e dirvi quali mancano.
C'è un certo ordine nel quale i moduli devono essere installati. Alcuni dipendono da altri e quindi ho elencato l'ordine di installazione che ho usato io senza problemi.
I moduli perl possono essere ottenuti da siti elencati precedentemente in questo documento. Scaricateli e metteteli dove preferite o nel percorso che ho usato io come rappresentato nella mappa delle directory (anch'essa più in alto nel documento). Installare un modulo è molto semplice. Dopo aver estratto il modulo nella directory (di solito con tar xvfz) dovete semplicemente entrare nella directory ed eseguire i seguenti comandi:
perl Makefile.PL make make install
Se tutto va come dovrebbe, questo configurerà, compilerà ed installerà il modulo perl per voi. Ovviamente, controllate il file README per ogni modulo se le cose non vanno come ci si aspetta.
Questo è l'ordine che ho usato io per installare i moduli necessari per mod_perl:
Dopo aver installato i moduli perl siamo pronti per compilare ed installare mod_perl in Apache. Entrate nella directory dove avete estratto mod_perl ed eseguite il seguente script:
perl Makefile.PL \ USE_APXS=1 \ WITH_APXS=/percorso/di/apache/bin/apxs \ EVERYTHING=1
Questo imposterà il vostro Makefile e dirà a mod_perl di compilarsi come DSO utilizzando apxs (di cui dovete specificare la posizione). Dopo questo passaggio, eseguite
make make install
E mod_perl sarà spostato nella directory appropriata e le righe necessarie saranno aggiunte al file httpd.conf.
mod_auth_mysql permette al web-server Apache di gestire le autorizzazioni attraverso un database MySQL. L'installazione del modulo come DSO non è esattamente documentata nel file README ma può essere fatta.
Per prima cosa entrate nella directory in cui avete estratto mod_auth_mysql. Assumo abbiate già installato MySQL da qualche parte (assieme agli header ecc.). Verificate di sapere il percorso delle librerie di MySQL e degli header. Se siete incerti controllate /usr/lib/mysql e /usr/include/mysql.
Per poter compilare mod_auth_mysql per prima cosa dovremo rinominare 'config.h' come 'auth_mysql_config.h'. Non so perché a questo file non sia stato dato il nome corretto, comunque eseguite semplicemente il comando seguente:
cp config.h auth_mysql_config.h
Ora, per l'ultimo passo:
/percorso/di/apache/bin/apxs -i -a -I/usr/include/mysql -L/usr/lib/mysql \ -lmysqlclient -c mod_auth_mysql.c
Potreste aver bisogno di eseguirlo da root se non avete accesso in lettura/scrittura nella directory di Apache.
Nella mia scuola la rete Windows scelta è Netware. È in uso da molto tempo e sebbene spero un giorno venga cambiata, per ora è ancora la rete principale nel campus per la condivisione di file e per le email. Ogni studente ha un account Netware nel quale tutti i suoi file personali, incluse le sue pagine web, sono memorizzati. Noi montiamo queste directory sul nostro server linux ed è bello essere in grado di proteggerne alcune con le informazioni di nome utente e password di Netware. Con questo modulo Apache può autenticarsi direttamente con il server Netware.
Per compilare mod_auth_nds dobbiamo avere ncpfs installato (assieme ai suoi header ovviamente). Prima di compilare ncpfs dovete assicurarvi che il vostro kernel abbia il supporto IPX compilato. Se è così, eseguite
./configure make make install (opzionale)
che compilerà (ed installerà) le librerie.
Con ncpfs installato, eseguire i seguenti comandi dovrebbe compilare mod_auth_nds come DSO:
/percorso/di/apache/bin/apxs -c -lncp -L/usr/lib -I/usr/include mod_auth_nds.c /percorso/di/apache/bin/apxs -i mod_auth_nds.so
Quindi aggiungete le seguenti righe al vostro httpd.conf (a mano):
LoadModule nds_auth_module libexec/mod_auth_nds.so AddModule mod_auth_nds.c
Quindi, riavviate Apache!
Installare mod_fastcgi è necessario se volete consentire l'accesso al vostro server Zope attraverso Apache. Questo potrebbe essere utile semplicemente perché Apache è più sicuro e molto più configurabile di Zope stesso.
L'attuale versione stabile di mod_fastcgi è la 2.2.2, comunque questa versione non funziona correttamente con Zope. Dovete scaricare la SNAP release che è datata 6 ottobre. Il link è fornito più sopra nel documento.
Entrate nella directory di mod_fastcgi ed eseguite i seguenti comandi:
/percorso/di/apache/bin/apxs -o mod_fastcgi.so -c *.c /percorso/di/apache/bin/apxs -i -a -n fastcgi mod_fastcgi.so
Guardate la documentazione di mod_fastcgi per una descrizione del suo utilizzo.
Molte di queste informazioni possono essere ottenute leggendo i file README ed INSTALL inclusi nei vari moduli. Comunque, questo documento è utile nei casi in cui per me non ha funzionato come previsto o nei quali la procedura di installazione non era così ben spiegata come avrei voluto. Ha inoltre il pregio di essere un unico documento sequenziale che dovrebbe teoricamente essere più facile da seguire e capire rispetto ad una sfilza di file README.
Phillip R. Wilson <pwilson@drew.edu>, autore di mod_auth_nds, per avermi aiutato a compilare ed installare con apxs mod_auth_nds. John Ash <jash@wwc.edu>, il mio capo, per tutti i tipi di aiuto e, ovviamente, un lavoro. Marcus Faure <marcus@faure.de>, autore del mini-HOWTO Apache SSL PHP/FI, documento sul quale questo è vagamente basato.
Se trovate errori evidenti di battitura, di grammatica, di contenuto o di qualsiasi altro genere non esitate a scrivermi un'email. Mi potete contattare in diversi modi.
Ray Van Dolson Email: <url url="mailto:rayvd@firetail.org" name="rayvd@firetail.org"> IRC: DALnet, #Bludgeon (nick Variant)
Tutto ciò che è citato in questo documento sarà alla fine disponibile su ftp.wwc.edu/pub/apache. Metterò tutto come descritto sopra e con buone speranze gli script di installazione per installare tutto da zero.