|
Made in |
DESCRIPTION | Installare Apache 1.3 da sorgenti | Live Discussion - Skill: 3- INTERMEDIATE |
Ci sono due modi per compilare ed installare Apache 1.3 direttamente dai sorgenti: Il primo prevede l'utilizzo del processo APACI, descritto sotto, il secondo è il metodo piu classico, che segue le procedure descritte nel file /src/INSTALL. |
||||
Entrambi i 2 metodi hanno pregi e difetti: APACI è piu nuovo e un po più grezzo, ma permette una rapida installazione, il secondo metodo è più lungo, ma può risultare più familiare a molti e permette una installazione piu minuziosa. I requisiti di sistema sono: - 12 Mbyte di spazio libero sull'harddisk durante l'installazione, anche se alla fine ne occuperanno generalmente 3 (dipende poi da quali e quanti moduli si desidera installare) - ANSI-C Compiler: Prima di iniziare l'installazione bisogna essere certi di aver installato un compilatore ANSI-C. E' raccomandato il compilatore GNU GCC. - Perl 5 Interpreter [opzionale]: Per alcuni script come 'apxs o 'dbmmanage" (scritti appunto in perl) il Perl interpreter è richiesto (se manca comunque APACI farà l'installazione, ma gli script in Perl non andranno). Se si possiedono piu interpreti Perl (esempio Perl 4 e Perl 5), si consiglia di utilizzare l'opzione --with-perl per selezionare quello giusto. - Dynamic Shared Object (DSO) support [opzionale]: Apache ha la capacità di poter caricare moduli mentre è in esecuzione attraverso DSO utilizzando chiamate di sistema come dlopen()/dlsym(). Se in un sistema non è presente il supporto DSO, Apache non riuscirà a caricare i moduli durante l'esecuzione (c'è da dire che tanti preferiscono configurazioni statiche, ossia senza l'utilizzo dei moduli). INSTALLARE APACHE 1.3 CON APACI Overview: ./configure --prefix=PREFIX make make install PREFIX/bin/apachectl start Dove PREFIX è il path dove Apache viene installato, di default /usr/local/apache/ Configurare l'albero delle sorgenti: Una corretta configurazione è essenziale per una buona installazione di Apache, in funzione della piattaforma e dei requisiti personali. Il parametro piu importante è il path dove Apache viene installato. Per una lista completa delle opzioni disponibili lanciare ./configure --help .Nel seguente esempio è riportata la configurazione di Apache con un particolare compilatore C e con l'installazione dei 2 moduli mod_rewrite e mod_proxy. CC="pgcc" OPTIM="-O2" \ Costruire il pacchetto: Per costruire il pacchetto, compilando i sorgenti secondo le configurazioni definite, basta semplicemente lanciare il comando make .Se si possiede una macchina abbastanza lenta e si intende installare parecchi moduli si dovra attendere qualche minuto. Installare il pacchetto: Per installare il pacchetto nel path prima specificato (--prefix=...), basta lanciare il comando make install .Testare Apache: Per testare se l'installazione è avvenuta correttamente avviare Apache lanciando PREFIX/bin/apachectl start , aprire il browser, andare su http://localhost e vedere se risponde alla richiesta.INSTALLARE APACHE 1.3 CON IL METODO TRADIZIONALE Il metodo tradizionale permette di installare Apache piu minuziosamente e senza dover digitare tutte le opzioni desiderate. Configurare l'installazione: La compilazione di Apache può essere suddivisa in 3 step: primo selezionare i moduli da includere, secondo creare la configurazione in funzione del proprio sistema operativo, terzo compilare l'eseguibile. - Per selezionare i moduli basta scommentare le linee nel file di configurazione dell'installazione relative ai moduli desiderati o, nel caso si vogliano inserire nuovi moduli non presenti nell'installazione standard (es mod_PHP) basta aggiungerene la riga relativa. - Per configurare Apache solitamente basta lanciare lo script, ma puo capitare di avere richieste particolari (come, per esempio delle librerie necessarie ad un modulo), per cui serve editare nel file di configurazione le seguenti opzioni: EXTRA_CFLAGS, LIBS, LDFLAGS, INCLUDES: ./configure Using nomefile.conf as config file + configured for OS platform + setting C compiler to OS * + setting C compiler optimization-level to OS * + Adding selected modules + doing sanity check on compiler and options Creating Makefile in support Creating Makefile in main Creating Makefile in os/unix Creating Makefile in modules/standard Questo è un esempio di standard output, per cui le parti commentate varieranno in funzione della piattaforma su cui si installa Apache e del file di configurazione usato. Le parti contrassegnate da '*' possono anche non essere printate, dipende sempre dal sistema operativo e dalla configurazione utilizzata. Per quanto riguarda il file di configurazione è possibile passargli un file alternativo lanciando lo script con l'opzione --file nomefile.conf. Compilare Apache Per compilare Apache lanciare il comando make .Installare Apache Ora abbiamo il binario chiamato httpd. Apache è fatto per essere configurato ed eseguito nella stessa directory dove e' stato compilato. Ora bisogna configurare il file di configurazione principale httpd.conf. Testare apache: Per testare se l'installazione è avvenuta correttamente startare Apache lanciando PREFIX/bin/apachectl start , aprire il browser, andare su http://localhost e vedere se risponde alla richiesta. |
DESCRIPTION | Installare Apache via RPM | Live Discussion - Skill: 2- JUNIOR |
Fra i vari modi con cui è possibile installare Apache su distribuzioni RedHat based, quello più semplice è tramite pacchetti RPM. |
||||
Per farlo, innanzitutto bisogna scaricare il pacchetto apache-ver.arch.rpm appropriato per la propria distribuzione Linux, dove ver sta per versione e arch per architettura. Una volta fatto questo andare dove si è scaricato il pacchetto e lanciare il comando (esempio per Apache 1.3): [root@eberk diego]# rpm -ihv ./apache-1.3.9-4.i386.rpm /etc/httpd/conf /etc/httpd/conf/access.conf /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic /etc/httpd/conf/srm.conf /etc/httpd/logs [...] /home/httpd /home/httpd/cgi-bin /home/httpd/html /home/httpd/html/index.html [...] /usr/sbin/httpd /usr/sbin/logresolve /usr/sbin/rotatelogs /usr/sbin/suexec [...] Ora Apache è installato. Attenzione, alcuni moduli per Apache non sono contenuti nell'RPM di installazione (per esempio mod_PHP, mod_PERL ecc...), e vanno installati tramite gli appositi RPM. In genere su qualsiasi distribuzione è già inclusa, e installabile fin dall'inizio, una versione di Apache. Per aggiornarla con una versione più recente basta il solito: [root@eberk diego]# rpm -Uv ./apache-1.3.9-4.i386.rpm Per gestire correttamete le dependencies, per esempio con un Apache con MOD_php con supporto MySQL e MOD_ssl seguire questo ordine: Apache, Mysql (pacchetto base + server + devel), PHP, MOD_php, php-mysql, OpenSSL, MOD_ssl. Su RedHat, Apache 2.0 è stato introdotto di default dalla versione 8.0 (notare che il nome del pacchetto è httpd-versione.rpm e non più apache-versione.rpm). I pacchetti relativi sono: httpd - Il server web Apache (2.0) httpd-devel - Le librerie che permettono la compilazione di moduli addizionali (non serve se non si compilano a mano) redhat-config-httpd - Un semplice tool di configurazione visuale (non serve se si edita a mano httpd.conf) httpd-manual - le pagine del manuale di Apache mod_ssl - Supporto delle criptazioni dei dati per https (richiede openssl) mod_perl - Modulo Apache per il supporto Perl mod_python - Modulo Apache per il supporto Python php - Supporto PHP (come modulo Apache o standalone). Se servono moduli specifici per PHP questi vanno installati (es: php-mysql, php-imap, php-snmp...) Notare che sui sistemi RedHat la DocumentRoot , direcrtoty dove di default vanno inserite le pagine html di un sito), era /home/httpd/html nelle versioni fino alla 6.2 ed è diventata /var/www/html nelle versioni successive.
|
TIPS | Configurare il layout di Apache | Live Discussion - Skill: 4- ADVANCED |
Molte opzioni di compilazione di Apache si riferiscono al path da utilizzare per varie directory (dir di base, documenti, log, configurazioni, binari ecc.). E' possibile specificarle singolarmente oppure usare dei layout predefiniti, che presentano dei template di base, sulla posizione delle directory, che si adattano a diversi sistemi. |
||
Nel file config.layout all'interno del tar.gz ufficiale si trovano alcuni template predefiniti.Fra questi segnaliamo quello di default, che mette tutto nella directory /usr/local/apache e in sue sottodirectory: <Layout Apache> prefix: /usr/local/apache exec_prefix: $prefix bindir: $exec_prefix/bin sbindir: $exec_prefix/bin libexecdir: $exec_prefix/libexec mandir: $prefix/man sysconfdir: $prefix/conf datadir: $prefix iconsdir: $datadir/icons htdocsdir: $datadir/htdocs manualdir: $htdocsdir/manual cgidir: $datadir/cgi-bin includedir: $prefix/include localstatedir: $prefix runtimedir: $localstatedir/logs logfiledir: $localstatedir/logs proxycachedir: $localstatedir/proxy </Layout> Un'altro template spesso usato è quello utilizzato da distribuzioni Linux derivate da RedHat e basate su RPM: <Layout RedHat> prefix: /usr exec_prefix: $prefix bindir: $prefix/bin sbindir: $prefix/sbin libexecdir: $prefix/lib/apache mandir: $prefix/man sysconfdir: /etc/httpd/conf datadir: /var/www iconsdir: $datadir/icons htdocsdir: $datadir/html manualdir: $datadir/manual cgidir: $datadir/cgi-bin includedir: $prefix/include/apache localstatedir: /var runtimedir: $localstatedir/run logfiledir: $localstatedir/log/httpd proxycachedir: $localstatedir/cache/httpd </Layout> Per utilizzare uno specifico layout si usa la direttiva --with-layout, per esempio: ./configure --with-layout=Solaris Nella versione 1.3.27 sono predefiniti i seguenti layout: Apache, GNU, BinaryDistribution, Mac OS X Server, Darwin, RedHat, opt, beos, SuSE, BSDI, Solaris, FreeBSD, OpenBSD, Cygwin. E' possibile utilizzare un layout di base e approntare modifiche su specifici path. Per esempio: ./configure --with-layout=RedHat --data-dir=/home/httpd/html Fra le direttive che agiscono sulla posizione dei vari file le più significative sono: --prefix=PATH - Indica la directory di base di installazione e il valore di default della server root.--target=NOME - Modifica il nome di base dell'eseguibile httpd, dei file di lock e scoreboard, delle directory in cui sono contenuti i vari file. Come --prefix, è utile per far convivere 2 diverse versioni di Apache sulla stessa macchina.Tramite l'opzione --show-layout è inoltre possibile visualizzare, senza compilare nulla, i vari path di installazione e compilazione: ./configure --with-layout=GNU --target=althttpd --show-layout Configuring for Apache, Version 1.3.27 + using installation path layout: GNU (config.layout) Installation paths: prefix: /usr/local exec_prefix: /usr/local bindir: /usr/local/bin sbindir: /usr/local/sbin libexecdir: /usr/local/libexec mandir: /usr/local/man sysconfdir: /usr/local/etc/althttpd datadir: /usr/local/share/althttpd iconsdir: /usr/local/share/althttpd/icons htdocsdir: /usr/local/share/althttpd/htdocs manualdir: /usr/local/share/althttpd/htdocs/manual cgidir: /usr/local/share/althttpd/cgi-bin includedir: /usr/local/include/althttpd localstatedir: /usr/local/var/althttpd runtimedir: /usr/local/var/althttpd/run logfiledir: /usr/local/var/althttpd/log proxycachedir: /usr/local/var/althttpd/proxy Compilation paths: HTTPD_ROOT: /usr/local SHARED_CORE_DIR: /usr/local/libexec DEFAULT_PIDLOG: var/althttpd/run/althttpd.pid DEFAULT_SCOREBOARD: var/althttpd/run/althttpd.scoreboard DEFAULT_LOCKFILE: var/althttpd/run/althttpd.lock DEFAULT_ERRORLOG: var/althttpd/log/error_log TYPES_CONFIG_FILE: etc/althttpd/mime.types SERVER_CONFIG_FILE: etc/althttpd/althttpd.conf ACCESS_CONFIG_FILE: etc/althttpd/access.conf RESOURCE_CONFIG_FILE: etc/althttpd/srm.conf |
TIPS | Compilazione dei moduli di Apache | Live Discussion - Skill: 3- INTERMEDIATE |
Le opzioni che possono essere specificate in sede di configurazione per la compilazione di Apache sono molte e possono creare confusione. Facciamo alcuni esempi che si adattano ai casi reali più comuni. |
||
COMPILARE UN APACHE STATICO CON ALCUNI MODULI SELEZIONATI Se non si vuole il supporto dinamico dei moduli e si intende creare un Apache in un unico file che contiene gran parte (ma non tutti) dei moduli si può usare: ./configure --enable-module=most Questo compila in un unico binario quasi tutti i moduli, esclusi alcuni. Se non viene specificato si compilano solo quelli che risultano abilitati ./configure --help .Si può sempre selezionare singolarmente i moduli da inserire o togliere rispetto alle indicazioni di base: ./configure --enable-module=most --disable-module=mod_rewrite --disable-module=mod_auth COMPILARE UN APACHE CON SUPPORTO DI MODULI DINAMICI Quando si compila Apache per supportare moduli caricati dinamicamente (secondo quanto indicato in httpd.conf) è sempre il caso di compilare TUTTI i moduli e selezionare da file di configurazione quali effettivamente caricare: ./configure --enable-module=all --enable-shared=max Notare che l'opzione --enable-module deve comunque essere presente, per permettere la compilazione dei moduli indicati. Quando si usa --enable-shared il modulo mod_so, che gestisce i moduli dinamici viene automaticamente inserito nell'httpd core. |
STDOUT | Upgrade di Apache | Live Discussion - Skill: 3- INTERMEDIATE |
Aggiornare Apache con regolarità e sopratutto in caso di patching di nuovi buchi di sicurezza è un'attività fondamentale che non richiede molto tempo. Segue lo standard output della procedura di aggiornamenti di Apache dalla versione 1.3.26 alla versione 1.3.27. Quanto qui riportato è ovviamente fattibile anche con altre versioni (ma non con un passaggio dalla 1.3 alla 2.0). In questo caso la compilazione viene eseguita sul server stesso su cui gira Apache e usando la base directory di default ( /usr/local/apache ). |
||
Per sicurezza si fa un backup preventivo di tutta la basedir di Apache [root@socrate al]# tar -zcvf backup.tar.gz /usr/local/apache Download dei sorgenti con wget [root@socrate al]# wget http://nagoya.apache.org/dist/httpd/apache_1.3.27.tar.gz --09:46:37-- http://nagoya.apache.org/dist/httpd/apache_1.3.27.tar.gz => `apache_1.3.27.tar.gz' Resolving nagoya.apache.org... done. Connecting to nagoya.apache.org[192.18.49.131]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2,306,052 [application/x-tar] 100%[====================================>] 2,306,052 16.80K/s ETA 00:00 09:48:52 (16.80 KB/s) - `apache_1.3.27.tar.gz' saved [2306052/2306052] Scompattazione del tarball [root@socrate al]# tar -zxvf apache_1.3.27.tar.gz apache_1.3.27/ apache_1.3.27/cgi-bin/ apache_1.3.27/cgi-bin/printenv apache_1.3.27/cgi-bin/test-cgi apache_1.3.27/ABOUT_APACHE apache_1.3.27/Announcement apache_1.3.27/INSTALL apache_1.3.27/LICENSE apache_1.3.27/Makefile.tmpl apache_1.3.27/README [...] apache_1.3.27/src/Configuration Si entra nella directory appena scompattata. Allo stesso livello si ha la directory apache_1.3.26 con i sorgenti della versione precedente [root@socrate al]# cd apache_1.3.27/ Si esegue lo script config.status in apache_1.3.26 che contiene il ./configure con i parametri utilizzati nell'ultima compilazione. Ovviamente la compilazione la si fa sui sorgenti della versione 1.3.27 (trovandosi nella relativa directory). [root@socrate apache_1.3.27]# ../apache_1.3.26/config.status Configuring for Apache, Version 1.3.27 + using installation path layout: Apache (config.layout) Creating Makefile Creating Configuration.apaci in src Creating Makefile in src + configured for Linux platform + setting C compiler to gcc + setting C pre-processor to gcc -E + checking for system header files + adding selected modules [...] Si compilano i sorgenti... [root@socrate apache_1.3.27]# make ===> src make[1]: Entering directory `/home/al/apache_1.3.27' [...] Si installano i binari compilati. Se si vuole evitare potenziali complicazioni di conflitti sui file, a questo punto è possibile stoppare il server web. In questo caso non lo si è fatto e non si sono avuti problemi. [root@socrate apache_1.3.27]# make install make[1]: Entering directory `/home/al/apache_1.3.27' ===> [mktree: Creating Apache installation tree] ./src/helpers/mkdir.sh /usr/local/apache/bin [...] Si riavvia il server Web. Il file di configurazione non è stato cambiato e tutto torna a funzionare correttamente [root@socrate apache_1.3.27]# /usr/local/apache/bin/apachectl restart /usr/local/apache/bin/apachectl restart: httpd restarted Per scrupolo si verifica la versione corrente: [root@socrate apache_1.3.27]# httpd -V Server version: Apache/1.3.27 (Unix) Server built: Nov 6 2002 09:53:02 Server's Module Magic Number: 19990320:13 Server compiled with.... -D HAVE_MMAP [...] |
Openskills LiveBook: Apache - Installazione e configurazione | (C)oresis Srl | GNU FDL licence | Generated: 23/10/2003 |