Apache+DSO+mod_ssl+mod_perl+php+mod_auth_nds+mod_auth_mysql+mod_fastcgi Ray Van Dolson, v0.91, 5 Aprile 2000 Descrive in modo dettagliato l'installazione di un server web basato su Apache, configurato per gestire i DSO, e di vari moduli utili,tra cui mod_perl, mod_ssl e php. Legalese

Apache+mods mini-HOWTO per sistemi Linux

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 .

Introduzione

Questo documento descrive il processo seguito per installare Apache, con alcuni moduli, sul server web al Walla Walla College (www.wwc.edu). Sebbene sia, per la maggior parte, specifico di quel sistema, auspicabilmente può servire come un'utile guida per effettuare altre installazioni.

Questo documento proverà ad abbozzare l'esatto processo seguito per installare il server. Ci saranno alcune note per evidenziare quando le cose avrebbero dovuto esser fatte in maniera diversa, ma saranno descritti i passaggi originali (posto che funzionino).

Descrizione dei componenti

La piattaforma su cui il server è stato installato è un sistema basato su Red Hat 6.1, composto da un kernel Linux 2.2.14 (compilato da zero) funzionante su un doppio PIII 600, con RAID 5 e molte altre cosucce.

Il software usato come server web è Apache 1.3.12. I seguenti moduli sono stati aggiunti:

mod_fastcgi SNAP (e mod_rewrite), per l'uso con Zope. Auth-MySQL 2.20 mod_ssl 2.6.2 (Open-SSL 0.9.5) mod_perl 1.21 PHP 3.0.15 mod_auth_nds 0.3a

Storico delle versioni

v0.91 (5 Aprile, 2000) mod_fastcgi aggiornato alla versione corretta.

v0.9 (4 Aprile, 2000) Prima stesura completata Errori di ortografia e grammatica corretti

v0.1 (Marzo 2000) Bozza iniziale

Installazione dei componenti Preparativi

Servirà il seguente software: GD 1.3 (per poter usare i file GIF) GD 1.8.1 (per poter usare i file PNG) IMAP 4.5+ OpenLDAP 1.2.9+ Moduli del Perl5 richiesti OpenSSL 0.9.5 Note: in più, il kernel deve essere compilato con il supporto IPX.

Questo è lo schema della disposizione delle directory che io uso e raccomando:

+ /usr/src | +-+ apache | +-+ apache-1.3.12 | +-+ modules | | | +-+ mod_perl | | | | | +- mod_perl-1.21 | | | | | +-+ depend | | | | | +- | | | +-+ 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

Controlla se alcuni dei moduli o dei programmi qui sopra sono già installati sul tuo sistema. Di solito non fa male, comunque, scaricarsi tutto ed installarlo se necessario; potresti avere installata una versione vecchia.

mod_ssl Installare e compilare OpenSSL

mod_ssl richiede che qualche tipo di motore SSL sia installato; per un sistema Linux, OpenSSL costituisce la scelta naturale. Puoi installarlo via RPM (come ho fatto io), o compilarlo dai sorgenti. Poiché io non l'ho mai compilato, ti lascio a te stesso in questo compito, ma credo il procedimento sia abbastanza lineare. Puoi voler installarlo nel sistema (in /usr/local, o qualcosa di simile); oppure lasciarlo nella sua directory e semplicemente farvi puntare qualunque applicazione ne abbia bisogno.

RPM installerà OpenSSL nelle directory di sistema.

Installare e compilare RSAREF 2.0

Crea la directory di rsaref-2.0 dove più ti piace; la mia è /usr/src/apache/modules/mod_ssl-blah/depend/. Portati quindi in questa directory.

cd rsaref-2.0 cp -rp install/unix local cd local make mv rsaref librsaref.a

Questi comandi dovrebbero creare per te la libreria rsaref! Lascia semplicemente stare questa roba dov'è, e quando ti serve linkare su di essa, fa puntare qui lo script di configurazione appropriato.

Installare e compilare MM

Estrai mm-1.0.12 (o qualunque versione più aggiornata) alla directory depend della sottodirectory mod_ssl-blah . Poi compi i seguenti passi:

cd mm-1.0.12 ./configure --disable-shared make

Questo dovrebbe creare le tue librerie mm. Come sopra, specifica questo percorso quando ce n'è bisogno. Se vuoi installare questa libreria nel sistema devi fare da solo.

Installare e compilare mod_ssl (finalmente!)

La procedura regolare con apxs è di compilare dapprima Apache, e poi, usando apxs, i moduli che vuoi usare, inserendoli infine nel server. Ciònonostante, mod_ssl ha bisogno d'essere compilato nel server nel modo normale prima che tu possa usarlo via apxs. Quando poi mod_ssl sarà inserito nel server per la prima volta, potrai aggiornarlo via apxs senza dover ricompilare tutto Apache.

Entra nella directory dove stai compilando mod_ssl e esegui le seguenti direttive di configurazione (questo è ciò 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 hai bisogno di avviare 'make' o nulla di simile qui. Quando compileremo Apache, farà tutto lui per noi.

Questa riga di configurazione fornisce due esempi di come il tuo sistema possa essere impostato. Nel mio caso, OpenSSL era già installato da qualche parte (generalmente in /usr/lib, /usr/include), quindi non avevo bisogno di passargli alcun parametro di locazione. Comunque, rsa e mm -non- erano nel sistema, e li ho compilati da me e lasciati nei loro alberi sorgente (non ho eseguito make install e così via). In quel caso,devi puntare configure alla directory appropriata, così che possa trovare gli header e le librerie.

Da questo punto in poi, a meno che tu non aggiorni Apache (nel qual caso avresti bisogno di compiere il passo descritto qui sopra di nuovo per la nuova versione del server), puoi usare apxs per aggiornare e ricompilare mod_ssl. Questo è lo script di configurazione che io 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 di essi. Poi lancia:

make make install make distclean

per completare l'installazione.

Note: MM -non- è richiesto per compilare mod_ssl. Se hai problemi a farlo funzionare, semplicemente evita di compilarlo e cancellalo anche dai parametri di ./configure.

Quando ho compilato mod_ssl, ho avuto degli errori riguardanti DBM. Per risolvere questo problema, ho dovuto aggiungere -lndbm al Makefile:

Avvia lo script di configurazione più sopra; portati in pkg.sslmod Modifica il makefile e aggiungi -lndbm a LIBS_SHLIB. Dovrebbe apparire tipo: LIBS_SHLIB=-lm -lcrypt -lndbdm

Spero che questo ti risparmierà qualche imprecazione.

Apache

Estrai apache-1.3.12.tar.gz in /usr/src/apache o dove credi. Ora vogliamo compilare apache abilitando le seguenti opzioni:

mod_ssl (per compilare come DSO, deve prima essere compilato nel server normalmente. Dopo aver fatto ciò, il modulo può essere aggiornato via apxs.) mod_proxy mod_so mod_rewrite (Per l'uso con Zope)

Questo è il file di configurazione che ho usato 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 lancia

make make certificate make install

Apache dovrebbe ora essere stato compilato ed installato nella directory che hai specificato come --prefix. Provalo e assicurati che si avvii:

/path/to/apache/bin/apachectl start

or

/path/to/apache/bin/apachectl startssl

Dovrebbe funzionare tutto alla perfezione. Se non è così, ricapitola tutti i passaggi e assicurati di non aver dimenticato nulla.

MySQL

Php, come del resto mod_auth_mysql e forse mod_perl, avrà bisogno che MySQL sia installato nel sistema e funzionante. E' oltre lo scopo di questo documento entrare nei dettagli della procedura di installazione di MySQL; scaricati l'archivio e segui le istruzioni nel file INSTALL. Far funzionare MySQL è una procedura abbastanza semplice, qualcosa tipo:

./configure make make install

Dovrebbe portare all'installazione di tutto quanto, cosicché tu possa compilare gli altri moduli di Apache.

PHP 3.0.15

Compileremo php-3.0.15 come DSO, il che vuol dire che sarà un modulo separato, che potrà essere caricato e scaricato dal server. Questo semplifica l'aggiornamento di php, senza dover ricompilare tutto (che potrebbe essere una rottura se usi molti moduli con Apache).

GD

Nella nostra installazione di Apache, php usa gd per creare immagini e simili. Io ho utilizzato una versione vecchia di gd (installata via RPM) per linkare php. In questo modo potremo produrre file GIF come output; questo probabilmente non è troppo desiderabile per via di problemi di copyright, perciò potresti voler usare una versione successiva alla 1.3, che supporti solo file PNG.

Installa via RPM (rpm -i gd*.rpm), o compila dai sorgenti e installa nel sistema.

IMAP

Se vuoi il supporto IMAP, la procedura è simile a quella di gd. Ho usato gli RPM perché opero su un sistema Red Hat, ma installare dai sorgenti dovrebbe ridursi ad una relativamente semplice procedura di ./configure;make;make install.

OpenLDAP

Ancora una volta, puoi installare OpenLDAP da RPM o dai sorgenti. Ho scelto di farlo nel secondo modo poiché l'ultima versione non era ancora disponibile via RPM quando abbiamo dovuto compiere tutte le operazioni.

./configure make make install

dovrebbe bastare! (O rpm -i openldap*.rpm)

Installare e compilare PHP 3.0.15

Una volta che gli elementi summenzionati sono installati e funzionanti, possiamo passare oltre e compilare il PHP come DSO. Il processo è molto lineare 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

Assicurati che se qualcuna delle librerie &dquot;--with&dquot; non è installata in /usr/local o /usr, sia specificata una riga &dquot;=/locazione/&dquot;, cosicché configure possa trovare ciò di cui ha bisogno!

make make install

Se tutto è completato correttamente, 'make install' userà apxs per installare libphp3.so in /apache/libexec/libphp3.so, aggiungerà le voci appropriate in httpd.conf e attiverà php3. Proprio efficiente.

mod_perl

Questa sezione documenta l'installazione di mod_perl come DSO per Apache. Ci sono un buon numero di moduli perl (oltre naturalmente a perl5, che presumo tu abbia già installato) che devono essere aggiunti perché mod_perl si compili senza dare errori. Se non li installi, mod_perl si lamenterà e dirà quali ti mancano.

C'è un ordine determinato in cui i moduli devono essere installati. Alcuni dipendono da altri, perciò ho elencato l'ordine d'installazione che ho seguito senza riscontrare alcun problema.

Moduli Perl richiesti

I moduli perl possono essere ottenuti dalle locazioni specificate più sopra in questo documento. Scaricali e mettili dove più ti piace, o nella locazione che ho usato io, come ho descritto nella mappa delle directory (pure più sopra). Installare un modulo è abbastanza semplice: dopo aver estratto il modulo in una directory (di solito con tar xvfz), semplicemente portati in quella directory e esegui i seguenti comandi:

perl Makefile.PL make make install

Se tutto va come dovrebbe, questo configurerà, compilerà e installerà il modulo perl per te. Ovviamente, se le cose non vanno come ci si aspetterebbe, consulta il README di quel modulo.

Questo è l'ordine che ho usato per installare i moduli necessari a mod_perl:

MIME::Base64 URI HTML::Parser Digest-MD5 libnet libwww

Installare e compilare mod_perl 1.2x

Dopo aver installato i moduli perl, siamo pronti a compilare e installare mod_perl in Apache. Portati nella directory dove hai scompattato mod_perl, e avvia il seguente script:

perl Makefile.PL \ USE_APXS=1 \ WITH_APXS=/path/to/apache/bin/apxs \ EVERYTHING=1

Questo imposterà il Makefile e dirà a mod_perl di compilarsi come DSO usando apxs (la cui locazione va specificata). Dopo questo passaggio, dai semplicemente

make make install

mod_perl verrà posto nella directory appropriata, e le righe richieste aggiunte al tuo file httpd.conf.

mod_auth_mysql

mod_auth_mysql permette al web-server Apache di compiere un'autorizzazione contro un database MySQL utente. L'installazione del modulo come DSO non è documentata esattamente nel file README, ma può essere compiuta.

Per prima cosa, commuta alla directory dove hai estratto mod_auth_mysql. Assumerò che tu abbia MySQL installato da qualche parte (assieme agli header, etc). Assicurati di conoscere la locazione delle librerie di MySQL e dei file header; nel dubbio, controlla /usr/lib/mysql e /usr/include/mysql.

Per compilare mod_auth_mysql, per prima cosa dobbiamo rinominare il file 'config.h' in 'auth_mysql_config.h'. Non son sicuro del perchè questo file non abbia il nome corretto, comunque dai semplicemente il seguente comando:

cp config.h auth_mysql_config.h

Ora il passo finale:

/path/to/apache/bin/apxs -i -a -I/usr/include/mysql -L/usr/lib/mysql \ -lmysqlclient -c mod_auth_mysql.c

Potresti aver bisogno di fare tutto ciò da root se non hai accesso in lettura/scrittura alla directory di Apache.

mod_auth_nds

Nella mia scuola, il network Windows scelto è Netware. E' stato in funzione per molto tempo, e sebbene sia auspicabile che venga messo in pensione un giorno, per ora è ancora il network principale nel campus per la condivisione di file e la posta elettronica. Ogni studente ha un account Netware su cui sono conservati i propri file personali -- incluse le pagine web. Noi montiamo queste directory sul nostro server linux, ed è bello poterne proteggere con password alcune usando le informazioni di username e password di Netware. Con questo modulo, Apache può autenticare direttamente sul server Netware stesso.

ncpfs

Per compilare mod_auth_nds, abbiamo bisogno di aver installato ncpfs (assieme ai suoi header, ovviamente). Prima di compilare ncpfs, devi assicurarti che il tuo kernel abbia il supporto IPX compilato; se è così, avviare semplicemente

./configure make make install (optional)

compilerà (e installerà) le librerie.

Compilare e installare mod_auth_nds

Con ncpfs installato, avviare i seguenti comandi dovrebbe compilare mod_auth_nds come DSO:

/path/to/apache/bin/apxs -c -lncp -L/usr/lib -I/usr/include mod_auth_nds.c /path/to/apache/bin/apxs -i mod_auth_nds.so

Poi aggiungi la linea seguente (a mano) al tuo httpd.conf:

LoadModule nds_auth_module libexec/mod_auth_nds.so AddModule mod_auth_nds.c

Quindi, riavvia Apache!

mod_fastcgi

Installare mod_fastcgi è necessario se vuoi permettere l'accesso ad un server Zope attraverso Apache. Questo potrebbe essere utile semplicemente perchè quanto a questo, Apache è più sicuro e molto più configurabile del server Zope.

L'attuale versione stabile di mod_fastcgi è la 2.2.2; comunque, questa versione non funziona bene con Zope. Devi procurarti la release SNAP datata 6 Ottobre. Il collegamento è fornito più sopra.

Commuta alla directory mod_fastcgi e lancia i seguenti comandi:

/path/to/apache/bin/apxs -o mod_fastcgi.so -c *.c /path/to/apache/bin/apxs -i -a -n fastcgi mod_fastcgi.so

Per una descrizione dell'uso di questo modulo, consulta la sua documentazione.

Per finire

Molte di queste informazioni possono essere ottenute leggendo i file README e INSTALL inclusi nei vari moduli. Comunque, questo documento è utile in quei casi che non funzionano come ci si aspetta, o quando la procedura d'installazione non era definita come avrei voluto. Ha anche il beneficio aggiuntivo di essere un unico documento che descrive le operazioni in sequenza, e che dovrebbe auspicabilmente essere più facile da seguire e capire di una caterva di file README.

Crediti

Phillip R. Wilson , autore di mod_auth_nds, per avermi aiutato a compilare il modulo e installarlo con apxs. John Ash , il mio capo, per ogni tipo d'aiuto, e ovviamente per il mio lavoro. Marcus Faure , autore dell'Apache SSL PHP/FI frontpage mini-HOWTO, su cui questo è vagamente basato. Germano Rizzo, , per la traduzione in italiano.

Contattarmi

Se trovi qualunque errore di contenuto, grammatica, ortografia od altri, non esitare a lasciarmi un'email; puoi contattarmi in molti modi.

Ray Van Dolson Email: IRC: DALnet, #Bludgeon (nick Variant) Qualcos'altro

Tutto ciò che è nominato in questo documento potrà essere disponibile eventualmente per ftp da ftp.wwc.edu/pub/apache. Imposterò tutto quanto come descritto sopra, e spero di fornire script d'installazione per installare tutto da zero (uno script molto stupido, ti ricordo).