Il Web e i server Web |
Definizione del Web, visione d'insieme sui server disponibili, statistiche. |
Installare Linux |
Raccolta informazioni. Scelta dell'hardware. Definizione degli obiettivi. Opzioni di installazione. |
Tipo Infobox: PRACTICE - Skill Level: 2- JUNIOR - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2006-04-04 12:36:35
1- MESSAGGI DI BOOT
Per vedere i messaggi del kernel dopo un boot (e quindi i dispositivi hardware riconosciuti):
# dmesg
Oppure i log (a seconda della distribuzione):
# less /var/log/boot.log
# less /var/log/messages
# less /var/log/boot.msg
2- HARDWARE
Per vedere i dispositivi PCI connessi:
# lspci
Per info sulla ram:
# free
# less /proc/meminfo
Per info sul processore
# less /proc/cpuinfo
# less /proc/cpufreq
Info sugli interrupts:
# less /proc/interrupts
Per info sui dischi fissi, lo spazio libero e le partizioni disponibili:
# fdisk -l
# df
# mount
Per dischi ide (ad esempio /dev/hda):
# ide_info /dev/hda
# hdparm -i /dev/hda
(oppure, più verboso, hdparm -I /dev/hda
)
3- SOFTWARE
Versione del kernel corrente:
# uname -a
Tempo di uptime (da quanto il sistema è acceso)
# uptime
File di configurazione del kernel (dove disponibile)
# less /boot/config-versione-kernel
Elenco dei programmi installati (su sistema basato su rpm)
# rpm -qa
(Sistemi RPM based)
# dpkg -l
(Sistemi DEB based)
Moduli del kernel disponibili:
# modprobe -l
Moduli del kernel caricati in memoria:
# lsmod
# less /proc/modules
I protocolli HTTP e HTTPS |
HyperText Transfer Protocol: sintassi, headers, URI e methods. Introduzione a HTTPS. |
Installare e compilare APACHE |
Installazione e upgrade di Apache tramite package e sorgenti. |
Tipo Infobox: PRACTICE - Skill Level: 3- INTERMEDIATE - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:14:42
Comandi necessari
1 - ./configure --enable-module=all --enable-shared=max --with-layout=Apache --target=httpdbis
Configura la compilazione di Apache secondo le specifiche richieste
2 - make install
Compila e installa
3 - Editare /usr/local/apache/conf/httpd.conf
per indicare ad Apache di ascoltare sulla porta 81:
Listen 81
3 - /usr/local/apache/bin/apachectl start
Avvia Apache. netstat -nap
o ps -adef
permettono di vedere se ci sono due istanze diverse di Apache bindate sulle porte 80 e 81 e di vedere l'elenco dei processi sul sistema.
Gestione del servizio httpd |
Avvio, chiusura, verifica del servizio, opzioni di invocazione. |
Tipo Infobox: PRACTICE - Skill Level: 2- JUNIOR - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:12:18
Comandi necessari
1- Per stoppare il servizio httpd cio sono vari metodi:
- Tramite script init: /etc/rc.d/init.d/httpd stop
- Tramite apachectl: apachectl stop
- Killando il processo: kill -TERM PID
(dove PID è il Pid del processo httpd padre.
2- httpd -V
3- httpd -t
4- httpd -l
5- httpd
6- apachectl start
7- /etc/rc.d/init.d/httpd start
Principi di configurazione di Apache |
Prima analisi di httpd.conf, settaggio dei parametri base. Tool grafici per la configurazione. |
Manuali, libri, risorse online su Apache |
Documentazione e risorse su Apache. |
Tipo Infobox: PRACTICE - Skill Level: 1- NOVICE - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:15:53
Con un browser navigare su http://127.0.0.1/manual
per vedere il manuale di Apache installato sul proprio sistema.
Se non è visualizzabile, consultare l'istruttore.
Monitoring di Apache |
Server-status, server-info, uso di netstat, top, vmstat, ldd, lsof, strace. Environment variables. |
Tipo Infobox: PRACTICE - Skill Level: 3- INTERMEDIATE - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:20:04
Comandi necessari
1- netstat -natp
Visualizza le porte aperte sul proprio sistema, verificare che la porta 80 sia in LISTEN. Con ps -adef
si elencano i processi in esecuzione sul sistema, fra questo dovrebbero esserci alucni chamati httpd
2- ldd /usr/sbin/httpd
(o il PATH dove risiede httpd)
3- lsof | grep httpd
4- Browsare su http://127.0.0.1/server-status. Nel file di conf devono esserci, non commentate, impostazioni simili:
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.0 # Indicare la propria rete locale o estendere a all
</Location>
Per attivare il server-staus esteso impostare la direttiva ExtendedStatus On
5- Browsare su http://127.0.0.1/server-info. Nel file di conf devono esserci, non commentate, impostazioni simili:
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from 192.168.0 # Indicare la propria rete locale o estendere a all
</Location>
6- Per poter accedere ai /server-status di altri PC nella configurazione della Location /server-status deve esserci una riga come Allow from all
(Apre a tutti gli IP, poco sicuro) o Allow from 192.168.0
(Se 192.168.0.0/24 è la propria rete).
Analisi e gestione dei log httpd |
Configurazione, analisi e gestione dei log di un server Web. Software di analisi dei log. |
Tipo Infobox: PRACTICE - Skill Level: 4- ADVANCED - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:21:42
1- lsof | grep httpd | grep log
(Notare che con questo sistema non vengono visualizzati eventuali log che non contengono le lettere "log"
2- Controllare in httpd.conf le direttive ErrorLog
, CustomLog
e AccessLog
.
3- Impostare su proprio httpd2.conf qualcosa tipo LogFormat "%h %l %u %t \"%r\" %U %>s %b %f %a %A %p %P %v %V \"%{Referer}i\" \"%{User-Agent}i\"" completo
(Loggare alcune di queste informazioni è ridondante ed eccessivo.
Definire il file dove loggare con CustomLog /var/log/httpd/inutile_log completo
.
Per far loggare ad Apache qualcosa di più del solo error_log è necessario il modulo mod_log_config.
Assicurarsi che sia presente e non sia commentata la riga LoadModule access_module modules/mod_log_config.so
.
Se si lavora con Apache 1.3, devono essere presenti le righe:
LoadModule access_module libexec/mod_log_config.so
AddModule mod_log_config.c
4- tail -f /var/log/httpd/inutile_log
(Ricordarsi di riavviare Apache ogni volta che si cambia la configurazione)
5- Aggiungere alla propria httpd2.conf qualcosa tipo: SetEnvIf Request_URI \.gif$ image=gif
SetEnvIf Request_URI \.jpg$ image=jpg
CustomLog /var/log/httpd/senzaimmagini_log completo env=!image
6- Impostare in httpd2.conf LogLevel debug
Elementi base della configurazione di Apache |
Le direttive per la gestione della configurazione: IfModule, IfDefine, Include, Options e Overrides. |
Tipo Infobox: PRACTICE - Skill Level: 2- JUNIOR - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:19:09
1- Inserire nella configurazione:
<Directory />
AllowOverride None
</Directory>
2- Modifificare in httpd2.conf la riga dove c'è la direttiva DocumentRoot. Deve essere: DocumentRoot "/home/www"
3- Inserire in httpd2.conf:
<Directory /home/www>
Options FollowSymLinks
</Directory>
4- Per impostare la possibilità di override in httpd2.conf:
<Directory /home/www/external>
AllowOverride All
</Directory>
Per impostare il nome del file dove possono essere inserite configurazioni aggiuntive, per singole directory:
AccessFileName .htaccess2
5- httpd -f /usr/local/apache/conf/httpd2.conf
Autenticazione e controllo degli accessi web |
Access-list e filtro degli accessi web. Metodi di autenticazione degli utenti. |
Tipo Infobox: PRACTICE - Skill Level: 4- ADVANCED - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:20:34
1- mkdir /home/www/private ; chown apache:apache /home/www/private
(Se apache è lo user con cui viene lanciato httpd). Poi aggiungere al file di configurazione:
<Directory /home/www/private>
order deny,allow
deny from all
allow from 127.0.0.1
</Directory>
Perchè l'autenticazione funzioni bisogna abilitare il modulo mod_access.
Assicurarsi che sia presente e non sia commentata la riga LoadModule access_module modules/mod_access.so
.
Se si lavora con Apache 1.3, devono essere presenti le righe:
LoadModule access_module libexec/mod_access.so
AddModule mod_access.c
2- htpasswd -c /etc/httpd/accessi mario
. Poi digitare mario
alla richiesta di password.
3- Aggiungere le seguenti righe ad httpd2.conf:
<Directory /home/www/private>
AuthName "Prova Apache"
AuthType Basic
AuthUserFile /etc/httpd/accessi
require valid-user
</Directory>
Assicurarsi che sia presente e non sia commentata la riga LoadModule auth_module modules/mod_auth.so
.
Se si lavora con Apache 1.3, devono essere presenti le righe:
LoadModule auth_module libexec/mod_auth.so
.
AddModule mod_auth.c
Assicurarsi anche cha Apache abbia diritti in lettura su /etc/httpd/accessi: chgrp apache /etc/httpd/accessi ; chmod 750 /etc/httpd/accessi
4- Fare in modo che le direttive inserite nel punto 1 e 3 siano all'interno dello stesso Directory container, poi aggiungerci: Satisfy any
5- Digitare su shell htpasswd /etc/httpd/accessi luigi
per aggiungere l'utente luigi (scrivere, quando richiesta, la relativa password). Editare poi /home/www/external/.htaccess2
e scriverci:
AuthName "Prova Apache"
AuthType Basic
AuthUserFile /etc/httpd/accessi
require user luigi
Configurazione di VirtualHost |
Configurazione di Virtual Hosts named based e ip based. |
Tipo Infobox: PRACTICE - Skill Level: 4- ADVANCED - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:21:11
1- Ipotizzando che il proprio indirizzo IP sia 192.168.100.10 aggiungere ad httpd2.conf:
NameVirtualHost 192.168.100.10
<VirtualHost 192.168.100.10>
ServerAdmin [email protected]
DocumentRoot /home/www.test.com
ServerName www.test.com
ServerAlias www.test.it www.test.info *.test.com
ErrorLog /var/log/httpd/www.test.com-error.log
CustomLog /var/log/httpd/www.test.com-access.log completo
</VirtualHost>
Default index e directory listings |
Gestione della visualizzazione di directory. Definizione index predefiniti. |
Tipo Infobox: PRACTICE - Skill Level: 3- INTERMEDIATE - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:24:35
1- Per caricare mod_autoindex aggiungere a httpd2.conf:
LoadModule access_module modules/mod_autoindex.so
(Apache 2) o
LoadModule access_module libexec/mod_access.so
(Apache 1.3)
AddModule mod_access.c
2- Aggiungere ad httpd2.conf: IndexOptions FancyIndexing
e tutte le eventuali righe di configurazioni riguardanti il Directory Listing che si sono prese dall'httpd.conf originale.
3- Aggiungere ad httpd2.conf: DirectoryIndex index.html index.htm index.php
e le righe di configurazione per il caricamento di mod_dir:
LoadModule access_module modules/mod_dir.so
(Apache 2) o
LoadModule access_module libexec/mod_access.so
(Apache 1.3)
AddModule mod_access.c
File types ed encoding |
I file type e la negoziazione dei contenuti. |
Tipo Infobox: PRACTICE - Skill Level: 3- INTERMEDIATE - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:23:54
<IfModule mod_mime_magic.c>
# MIMEMagicFile /usr/share/magic.mime
MIMEMagicFile conf/magic # Se il modulo mime_magic viene caricato, si definisce il file di configurazione con la definizione del MIME type secondo dei pattern di caratteri predefiniti in un file.
</IfModule>
<IfModule mod_mime.c> # Tutte le direttive che seguono sono fornite dal modulo mod_mime
TypesConfig /etc/mime.types # Definisce il file di sistema che definisce l'elenco dei MIME type
DefaultType text/plain # Il MIME type usato di default per l'invio di file (di cui Apache non conosce il MIME type)
AddEncoding x-compress Z # Definisce l'encoding di un file a seconda della sua estensione
AddEncoding x-gzip gz tgz
# DefaultLanguage nl # Definisce il linguaggio di default da usare nel response header Content-Language:
AddLanguage da .dk # Associa il linguaggio da (danese) all'estensione .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage he .he
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage kr .kr
AddLanguage pt .pt
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
%lt;IfModule mod_negotiation.c%gt;
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw # Se è caricato il modulo negotiation, indica l'ordine di preferenza delle lingue con cui vengono serviti i documenti dal server quando il client non indica con l'header Accept-Language le lingue che può/vuole accettare
%lt;/IfModule%gt;
AddCharset ISO-8859-1 .iso8859-1 .latin1 # Imposta set di caratteri aggiuntivi
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
AddType application/x-tar .tgz # Aggiunge uno specifico MIME type, oltre a quelli già caricati con il file mime.types
#AddHandler cgi-script .cgi
#AddHandler send-as-is asis
AddHandler imap-file map # Si associa l'estensione map all'handler (procedura interna di Apache) specificata
AddHandler type-map var
%lt;/IfModule%gt;
Error handling e response header |
Gli header HTTP e la loro customizzazione. Gestione degli errori. |
Tipo Infobox: PRACTICE - Skill Level: 2- JUNIOR - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 22:22:41
Comandi necessari
1- Aggiungere ad httpd2.conf: ErrorDocument 404 /
2- ErrorDocument 401 /401.htm
3- ErrorDocument 403 http://www.w3.org
Aliasing, URL redirection e rewriting |
Redirection, aliasing e Rewrite. |
Tipo Infobox: PRACTICE - Skill Level: 3- INTERMEDIATE - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 21:52:30
1- Aggiungere Alias /icons/ "/var/www/icons/"
(cambiare /var/www/icons secondo il layout del proprio apache)
2- Aggiungere ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
(cambiare /var/www/cgi-bin secondo il layout del proprio apache)
3- Aggiungere (cambiando il nome del path indicato secondo il proprio layout):
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
</Directory>
Proxy, caching e gestione della banda |
Configurazione Proxy accelleration e caching. mod_bandwidth e gestione della banda occupata. |
Il modulo PHP per Apache |
Principi, Installazione, configurazione. |
Overview di MySQL |
Breve overview sulle caratteristiche e funzionalità del database server MySQL |
Installazione e configurazione di MySQL |
Installazione, configurazione, gestione |
Sicurezza e Apache |
Breve rassegna della security history, problematiche attuali. Security e siti dinamici. |
Tipo Infobox: PRACTICE - Skill Level: 4- ADVANCED - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 21:50:09
1- Inserire nella configurazione il codice sottostante ed, eventualmente abilitare l'Override su specifiche directory:
<Directory />
AllowOverride None
</Directory>
2- Inserire (dando per inteso che il nome del file per l'override della conf è .htaccess):
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
3- Inserire il seguente codice, eventualmente abilitando il directory listing su sottodirectory specifiche:
<Location />
Options -Indexes
</Location />
4- Verificare che sia presente nella configureazione qualcosa di analogo (sia per server-info che per server-status):
<Location server-status>
order deny,allow
deny from all
allow from 192.168.0
AuthName "Accesso riservato"
AuthType Basic
AuthUserFile /etc/httpd/accessi
require valid-user
Satisfy any
</Location>
Design di una infrastruttura Web |
Design della rete, dei server, dei servizi. |
SSL - Principi e installazione |
Installazione e configurazione di openssl e mod_ssl, Creazione di chiavi e certificati. |
Tipo Infobox: PRACTICE - Skill Level: 4- ADVANCED - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 21:51:29
Seguire le indicazioni fornite nelle pagine di teoria.
Apache performance tuning |
Suggerimenti e informazioni per migliorare le performance di Apache. |
Tipo Infobox: PRACTICE - Skill Level: 4- ADVANCED - Autore: Alessandro 'al' Franceschi - Ultimo Aggiornamento: 2004-05-18 21:49:14
1- Scrivere nella configurazione:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 200
MaxRequestsPerClient 10000
2- Scrivere nella configurazione:
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
3- Scrivere nella configurazione:
KeepAlive on
KeepAliveTimeout 15
MaxKeepAliveRequests 100
TimeOut 300
4- Aggiungere alla configrazione:
HostNameLookup off
Fonte: OpenSkills.info | Rilasciato sotto licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo. |