Old:Debian Live Project: differenze tra le versioni

m (typos, formattazione)
Riga 1: Riga 1:
=Introduzione=
==Caratteristiche==
LAMP � l'acronimo di Linux Apache Mysql Php e indica l'ambiente libero (e anche gratuito in questo caso) di programmazione di applicazioni Web che � possibile costruire dalla somma delle parti di queste eccezionali applicazioni a sorgente aperto.


Questa guida non fornisce alcun elemento per la configurazione ottimale dei server presi in esame (Apache e MySQL). Essa non � intesa ad amministrare tali servizi su macchine in produzione, ma solo a fornire all' utente domestico e allo sviluppatore web un ambiente correttamente configurato senza introdurre sensibili rischi per la sicurezza del computer usato.
* Intel Pentium M 1.6 GHz
* 2x256 MB DDR-SDRAM
* 40 GB Matshita hd
* ATI Mobility Radeon 9600 M10 (RV350)
* Audio Intel AC'97
* Matshita DVD-RAM UJ-820s
* Realtek Ethernet Controller
* LCD 15.4"
* ENE PCMCIA Controller
* Intel Pro/Wireless 2200BG
* Alps Touchpad


Per il dettaglio sulla configurazione di quanto preso in esame Vi invitiamo pertanto a visitare in primo luogo i siti [http://httpd.apache.org Httpd Apache], [http://www.php.net PHP.net] e [http://www.mysql.org MySQL.org] e, quando presenti, le guide specifiche messe a disposizione da questa Community.
<pre># lspci
0000:00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
0000:00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
0000:00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
0000:00:01.0 PCI bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to AGP Controller (rev 02)
0000:00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03)
0000:00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03)
0000:00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03)
0000:00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 03)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 83)
0000:00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 03)
0000:00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 03)
0000:00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)
0000:00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)
0000:00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]
0000:02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)
0000:02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)
0000:02:04.0 CardBus bridge: ENE Technology Inc CB-710/2/4 Cardbus Controller
0000:02:04.1 FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader Controller
0000:02:04.2 0805: ENE Technology Inc ENE PCI Secure Digital Card Reader Controller
0000:02:04.3 FLASH memory: ENE Technology Inc: Unknown device 0520</pre>


Buona lettura!
==La mia installazione di Debian Sarge (3.1r0a)==


=Il server http=
===Backup e partizionamento===
==Apache==
[http://httpd.apache.org/ Apache] � il frutto del lavoro della [http://www.apache.org/ Apache Software Foundation]. Tra le caratteristiche che ne fanno il server HTTP pi� diffuso evidenziamo che:
* � software libero;
* gira sulle pi� svariate piattaforme (*nix, Windows, ec...);
* � sviluppato in accordo con le pi� recenti specifiche per i servizi http.
Secondo [http://news.netcraft.com/archives/web_server_survey.html Netcraft] Apache, con una percentuale del 68% (febbraio 2005), � il server http pi� usato in assoluto.


Apache deve il suo nome all' omonima trib� di indiani nordamericani, famosa per le straordinarie doti di resistenza e strategia. Visto per� che il software � stato inizialmente sviluppato come una serie di patches ad un altro server http, nell' uso comune Apache significa anche "A Patchy Server".
Ho fatto un backup di tutti i documenti, file, musica, video, etc...


La pronuncia corretta di Apache suona grossomodo come "APACI".
Poi una deframmentazione, meglio se da DOS, in modo da avere il sistema operativo su una parte precisa del disco (all'inizio).


Il progetto Apache � suddiviso principalmente in due rami distinti (ne esiste un terzo, ma � nella fase di sviluppo alpha al momento): la versione 1.3 (la versione "vecchia" molto robusta e testata) e la versione 2.0 (dal design innovativo rispetto alla precedente).
Io ho voluto mantenere il sistema op. della microsoft, quindi ho creato le partizioni (almeno 2) da Windows. Si possono creare, credo, anche con l'installer di Debian, ma un po' complicato. Non fate come il sottoscritto, procuratevi un programma open source per partizionare. : )
===Apache 1.3===
====Installazione====
L' installazione nuda e cruda di Apache 1.3 in Debian � di una semplicit� disarmante. Tutto quello che avremo bisogno di fare consiste nel dare il comando:
<pre># apt-get install apache</pre>
al termine del download ci viene chiesto se vogliamo abilitare suExec: a meno di utilizzi professionali, possiamo tranquillamente rispondere "No".
====Verifica====
A questo punto il nostro server web gi� attivo, ma possiamo anche verificarlo tramite il comando '''ps''':
<pre>$ ps aux |grep apache
root      7378  0.0  0.4  4592  2228 pts/1    S    12:01  0:00 /usr/sbin/apache
www-data  7379  0.0  0.4  4592  2364 pts/1    S    12:01  0:00 /usr/sbin/apache
www-data  7380  0.0  0.4  4592  2364 pts/1    S    12:01  0:00 /usr/sbin/apache
www-data  7381  0.0  0.4  4592  2204 pts/1    S    12:01  0:00 /usr/sbin/apache
www-data  7382  0.0  0.4  4592  2204 pts/1    S    12:01  0:00 /usr/sbin/apache
www-data  7383  0.0  0.4  4592  2204 pts/1    S    12:01  0:00 /usr/sbin/apache</pre>
Notiamo subito uno dei meccanismi principali di Apache: esistono svariati processi in esecuzione. Per la precisione abbiamo 1 processo propriet� dell' utente root e ben 5 processi di propriet� dell' utente www-data, come possiamo vedere con il comando '''pstree''':
<pre>$ pstree -uc |grep apache
    ??apache???apache(www-data)
    ?        ??apache(www-data)
    ?        ??apache(www-data)
    ?        ??apache(www-data)
    ?        ??apache(www-data)</pre>
Il primo processo (padre) viene lanciato da root e ed il suo unico compito consiste nel genere e controllare i restanti processi (figli). Sono questi ultimi a rispondere alle richieste http ed a fornire le pagine. In questo modo Apache gira con privilegi minimi (quelli dell' utente www-data) ed in caso di una sua eventuale compromissione gli effetti sul sistema sono in qualche misura limitati.


====Configurazione====
Io ne ho create 2:
La configurazione di Apache � un compito estremamente delicato e pu� richiedere conoscenze anche notevoli in svariati ambiti quali networking, programmazione e amministrazione di sistema. Dato che questa guida si propone fondamentalmente di illustrare i passi necessari ad installare e configurare un sistema per uso non professionale, ci limiteremo agli aspetti macroscopici della configurazione.


I files di configurazione di Apache risiedono nella directory '''/etc/apache''' al cui interno troviamo svariati files. Quello di cui ci occuperemo qui il file di controllo principale e cio� '''httpd.conf'''. Apriamo il file con il nostro editor di fiducia (dobbiamo essere root per modificare questo file) e vediamo quali sono le direttive principali su cui agiremo.
*Primaria da 14 GB per / [destinazione dell'intero sistema operativo]
*Logica da 1 GB per lo swap ["memoria virtuale"]
La partizione di swap non obbligatoria, ma consigliata.


'''server-pool size'''
===Installazione (prima parte)===
Alla riga 130 del file di configurazione originale troviamo il primo blocco da prendere in esame: si tratta della direttiva che dice ad Apache il numero minimo e massimo di processi "figlio" da mantenere in memoria. Ogni processo "figlio" risponde ad un numero prefissato di richieste, dopodich� viene ucciso (mondo crudele) e ne viene generato uno nuovo. Esaminiamo la direttiva:
<pre>MinSpareServers 5
MaxSpareServers 10</pre>
Come default Apache genera 5 processi, ma se il carico aumenta pu� arrivare fino a 10 figli simultanei. Per un sistema domestico � sicuramente eccessivo ed io consiglio di porre queste limitazioni:
<pre>MinSpareServers 1
MaxSpareServers 2</pre>


'''Number of servers to start initially'''
Facendo partire l'installazione della Sarge su questo modello Toshiba si ha un blocco sul rilevamento dei controller PCMCIA, in particolare su:
Questo blocco (riga 153) dice ad Apache quanti sono i figli da generare al momento dell' avvio del server. Il default �:
<pre>Rilevamento dell'hardware in corso alla ricerca di lettori CD-ROM --> Avvio dei servizi "PC-CARD" in corso</pre>
<pre>StartServers 5</pre>
Ma non ho disperato, al boot mi � bastato scrivere, per far partire l'installer correttamente:
che noi cambieremo in:
<pre>hw-detect/start_pcmcia=false</pre>
<pre>StartServers 1</pre>
Siccome, io credo, non viene riconosciuto correttamente nemmeno l'adattatore grafico, ho dovuto aggiungere:
<pre>vga=771</pre>
se no mi sarei trovato davanti ad una schermata nera. Il comando completo diventa quindi:
<pre>linux26 acpi=yes vga=771 hw-detect/start_pcmcia=false</pre>
Prima del processo di partizionamento dell'installer, viene chiesto di formattare tutto l'hd o di modificare la tabella delle partizioni manualmente: io, per tenermi Windows, ho scelto la seconda opzione.
Quindi appare il men� di partizionamento con visualizzate le tre partizioni:
<pre>- (numero partizione) (tipo) (dimensione) (file system) (uso)
-
-
</pre>
Quella dell'altro SO non va toccata, deve essere impostata su "non usare la partizione".
Quella principale (per /) va configurata cos�:
<pre>usato come (cio� il file system): reiserFS
mount point: /
opzioni: default
etichetta: /
flag "avviabile": attivato
</pre>
Quella di swap cos�:
<pre>usato come: area di swap</pre>
Ho proseguito con il partizionamento guidato e il resto dell'installazione.
 
PRIMA di confermare il partizionamento, ho VERIFICATO nel riepilogo che le partizioni di altri OS non vengano modificate.
Ho scelto di installare il boot loader GRUB nel master boot record.
 
===Installazione (seconda parte)===
 
Finita la prima parte dell'installazione, il sistema si � riavviato, cos� che mi sono trovato davanti al men� di GRUB (scelta del sistema operativo). Ho selezionato, con la tastiera:
<pre>Debian GNU/LINUX, kernel 2.6.8-2-686    (o simile)</pre>
e ho premuto "e" per editarlo, quindi ho selezionato:
<pre>kernel /boot/vwlinuz-2.6.8-2-686 root=/dev/hda2 ro acpi=yes vga=771    (o simile)</pre>
e premuto di nuovo "e" , ho aggiunto in fondo alla riga, senza virgolette: "1" (credo si possa aggiungere anche "single"), poi INVIO e poi "b". Il sistema comincia la seconda parte di installazione; ad un certo punto ci si trova al prompt di manutenzione, digitate (senza #):
<pre>
# cd /etc/rc2.d/
# rm *pcmcia*
# init2
</pre>
Ho cos� rimosso i riferimenti ai controller PCMCIA. L'installazione parte come previsto. Se non avessi eseguito quest'ultima operazione, si sarebbe verficato un blocco del sistema a:
<pre>
Starting PCMCIA services: cardmgr[2808]: watching 1 socket
cs: IO port probe 0x0100-0x04ff: clean
cs: IO port probe 0x0800-0x08ff: _ |
</pre>
 
===Configurazione desktop===
 
Io ho scelto "ambiente desktop".
Verr� in seguito chiesto di scegliere i driver per la scheda video, cio� "ati".
 
Se � andato tutto bene, si deve, con i diritti di amministratore, modificare il file:
<tt>/etc/X11/XF86Config-4</tt><br/>
oppure: <tt>/etc/X11/xorg.conf</tt>    oppure    <tt>/etc/X11/Xfree86.conf</tt>
 
la sezione "Screen" va modificata cos�, se non lo gi�:
 
<pre>
Subsection "Display"
    Deph          24
    Modes        "1280x800" "1024x768" "800x600" "640x480"
</pre>
Se si mette "1152x768" al posto di "1280x800" si avr� un effetto tipo antialias veramente fastidioso, soprattutto per i carratteri piccoli; infatti questa risoluzione non � specifica a questo video.
 
Nota: Nel Toshiba M30X-159, per vedere bene le risoluzioni da 1024x768 in su.. ho dovuto modificare nella sezione "Monitor" la sincronizzazione orizzontale e verticale nel seguente modo :
<pre>
Section "Monitor"
Identifier "LPL:0000"
HorizSync 30-61
VertRefresh 56-75
Option "DPMS"
EndSection
</pre>
Se come driver non avete scelto ati, dovete cambiarlo nello stesso file, scrivendo "ati" al posto di quello che ci trovate, nella riga "Driver" nella sezione "Device".
'''Riavviate.'''
 
===LAN===
 
Sono riuscito a configurare anche la connessione a internet tramite router.
 
La procedura � ben descritta in [[Condividere la connessione a internet]].
 
===WIRELESS===
 
====Debian Way====
 
[[Intel PRO/Wireless 2200BG]]
 
''(by ckale)''


'''Listen'''
Per evitare, in parte, di fare il passaggio 1 e 2  (vedi sotto), installate attraverso apt-get il "[[Pagina di manuale di module-assistant|module-assistant]]". Questo vi consentir� di recuperare, pachettizzare ed installare il modulo per il ipw2200. Una volta installato, con <tt>apt-get install module-assistant</tt> modifichiamo anche il source.list di apt che si trova <tt>/etc/apt/source.list</tt> aggiungendo "non-free" e "contrib" sia per il repo "deb" che deb-src come in esempio :
Questo blocco (riga 192) indica ad Apache su quale porta TCP restare in attesa di richeste http. E' anche possibile specificare una particolare accoppiata di indirizzo IP + porta TCP. Possiamo tranquillamente lasciare commentata la direttiva ed il nostro server sar� in ascolto sulla porta 80 per tutti gli indirizzi configurati sul sistema.


'''BindAddress'''
deb http://debian.fastweb.it/debian/ stable main non-free contrib
Alla riga 199 abbiamo la direttiva che specifica a quale specifico indirizzo IP associare Apache. Come per il punto precedente, lasciamo pure il valore di default.
deb-src http://debian.fastweb.it/debian/ stable main non-free contrib


'''ServerName'''
Un volta fatto ci� aggiorniamo apt-get update e lanciamo module-assistant.
Con questa direttiva (alla linea 276) diciamo ad Apache quale � il suo nome. Questo � particolarmente utile nel caso abbiamo a disposizione un [[FQDN]] (a questo proposito puoi consultare la guida [[Server Web Casalingo]]).
Ricordiamoci pero' di copiare i file firmware nella cartella <tt>/usr/lib/hotplug/firmware/</tt> (con il [[Udev e Debian|nuovo udev]] il percorso � <tt>/lib/firmware</tt>).


'''DocumentRoot'''
A questo punto proviamo a caricare il modulo con modprobe ipw2200
Con questa direttiva (riga 284) indichiamo ad Apache quale directory del nostro sistema deve corrispondere alla radice del Web Server. Il default va pi� che bene: ricordatevi quindi che tutti i vostri files che volete pubblicare sul server http dovranno risiedere in '''/var/www''' o in una sua sotto-directory.


{{Warningbox|� fondamentale per il funzionamento di Apache che i files che devono essere visibili via Web siano leggibili da parte dell' utente '''www-data''' e che le sotto-directory di /var/www siano raggiunbili dallo stesso utente}}
Una volta caricato il modulo procediamo con l'installazione delle utility wireless, apt-get install wireless-utility. Con il comando iwconfig possiamo vedere le interfacce di rete wifi.  
Questo � il minimo indispensabile che ci occorre sapere per poter utilizzare proficuamente Apache: salviamo il file e procediamo a riavviare Apache. Per fare questo possiamo procedere in due modi distinti:
* metodo standard <pre><nowiki># apachectl graceful
/usr/sbin/apachectl graceful: httpd gracefully restarted</nowiki></pre>
* metodo debian init.d <pre><nowiki># /etc/init.d/apache restart
Restarting apache.</nowiki></pre>
Senza dubbio '''apachectl''' � il metodo da preferire. Oltre a riavviare Apache possiamo controllare altri aspetti del server web. Tra questi quello che inizialmente pu� risultare pi� comodo consiste nel controllo della sintassi del file di configurazione.<br>
Facciamo un esempio:
<pre># apachectl configtest
Syntax error on line 49 of /etc/apache/httpd.conf:
ServerType takes one argument, 'inetd' or 'standalone'</pre>
lo script mi avvisa che alla riga 49 di httpd.conf c'� un errore di sintassi: la direttiva ServerType supporta un solo argomento, mentre nel file ne sono specificati almeno 2. Se controllo la riga incriminata scopro che:
<pre>ServerType is either inetd, or standalone.  Inetd mode is only supported on</pre>
Noto subito che manca il commendo (#) a inizio riga, provvedo a reinserirlo e quindi controllo nuovamente la configurazione:
<pre># apachectl configtest
Syntax OK</pre>


Se non abbiamo fatto pasticci, una volta riavviato il server Apache, baster� puntare il nostro browser all' indirizzo '''http://127.0.0.1''' per vedere la pagina di default installata dal manutentore del pacchetto Debian:
{{Warningbox|Se non funziona controllate il log del modprobe e verificate che il modulo cerchi il driver corretto, mi � capitato che lui cercasse un file con un nome diverso, naturalmente mi � bastato rinominare i firmware ;)}}
[[Immagine:Apache_installazione.png|thumb|center|Pagina di Benvenuto di Apache]]


{{box|Nota Bene: Directory home degli utenti|Per default Apache permette anche a ciascun utente del sistema di avere una propria home. Poniamo l' esempio dell' utente '''pippo''': all' interno di /home/pippo l' utente dovr� semplicemente creare la directory '''public_html''' per poter accedere ai files in essa contenuti attraverso l' indirizzo '''http://127.0.0.1/~pippo/'''}}
====Old Style====
''(by jockerfox)''


Ora non ci resta che inserire i nostri files in /var/www o nella nostra public_html per poter cominciare ad usare Apache!
1) Dal sito Sourceforge.net
scaricate i seguenti pacchetti :


====Supporto SSL====
http://ipw2200.sourceforge.net/#downloads il driver "ipw2200-1.0.4.tgz"
Abilitando il supporto a SSL (Secure Socket Layer) � possibile instaurare un canale di comunicazione crittografato tra il nostro server web ed i browser che richiedono le pagine.
http://ipw2200.sourceforge.net/firmware.php il firmware "v1.0.4-current firmware"


Tra i vantaggi in termini di sicurezza che l' uso di SSL comporta, segnalo:
Con Synaptic scaricare i seguenti pacchetti:
* transito di informazioni sensibili (passwords, dati personali, ecc...) in internet attraverso un canale crittografato sicuro;
:1: kernel-headers-2.6.8-2-686 (in automatico scaricher� anche kernel-headers-2.6.8-2 e kernel-kbuild-2.6-3)
* accertamento dell' identit� del server e/o del client web tramite certificati digitali.
:2: net-tools


Il supporto SSL per Apache pu� essere abilitato in due modi distinti:
2) Fatto cio':
* realizzazione di un nuovo server Apache con supporto SSL (vedi: '''apt-cache show apache-ssl''');
:* scompattare "ipw2200-1.0.4.tgz" in una directory qualsiasi e da SU (#) fate un "make", poi "make install"
* implementazione di Apache e Apache SSL nel medesimo server grazie a mod_ssl.
:* scompattare in una diversa directory "v1.0.4-current firmware" e copiare tutto in /usr/lib/hotplug/firmware/


In questa guida vedremo l' installazione e configurazione di '''mod_ssl'''.
'''P.S.''': non occorre copiare i file tipo "LICENZE" e varie... che non servono a nulla.
 
3) aprite una Konsole e da SU scrivete "nano /etc/network/interfaces" e aggiungete prima di eth0:


Procediamo con l' installazione del pacchetto:
<pre>
<pre>
# apt-get install libapache-mod-ssl
auto eth1
iface eth1 inet dhcp
</pre>
</pre>


===Apache 2.0===
4) reboot ... e funziona !!
====Installazione====
 
L'installazione di Apache2 � perfettamente uguale a quella precedentemente illustrata per Apache:
{{Warningbox|Ricordate di mettere il router senza chiave WEP (o varie cifrature) per essere sicuru che tutto funzioni come da dovere... dopo di che' abilitate allora la Key WEP nel router (vedi sotto per Debian)}}
<pre>
 
# apt-get install apache2-mpm-prefork
====Il WEP====
</pre>
 
No problem !
 
A.S.: Il KWiFIManager e' utile, ma non per configurare la chiave WEP!!!
 
;Importante: In primis, abilitate la chiave WEP nel router (esempio io la ho abilitata in 128 bit)
e '''scrivetevi il codice esadecimale''' in un foglio senza sbagliare !!
# Da Konsole digitate : network-admin (lo trovate anche nel menu' K) e vi chiedera' la password di amministratore.. inseritela !
# Una volta "entrati dentro", cliccate sull'icona del Wireless, e poi cliccate sull'icona "modifica" (e' un'icona con una chiave inglese) e inserite la chiave WEP in esadecimale (ex:ABF0D3...); non occorre aggiungere "0x" avanti alla chiave, (0xABFoD3...NO!!) digitatela direttamente in esadecimale (ABF0D3...SI!)
# selezionate la casellina "questo dispositivo e' configurato"
# le altre opzioni se volete... tipo ESSID Dopo premete OK (due volte) e reboot !!!
 
Sperando di non essermi dimenticato qualcosa... ciao!
 
Fine .
(by jockerfox)


Il [[metapacchetto]] ''apache2'' � presente, ma installa '''apache2-mpm-worker''', che risulta non essere compatibile con '''libapache2-mod-php4'''.
===VIDEO===


======I diversi pacchetti======
====Utilizzare i driver Ati di default====
La pacchettizzazione Debian, per�, � leggermente diversa, per poter gestire le nuove caratteristiche introdotte in Apache2: esistono quattro diversi pacchetti di Apache2, ognuno con delle caratteristiche diverse (relativamente alla gestione dei thread e dei child):
; apache2-mpm-perchild : la soluzione adottata in questo pacchetto fa in modo che vengano avviati un numero definito di processi, i quali possono creare dei thread in base al carico della macchina. Una peculiarit� � la possibilit� di assegnare dei permessi diversi ad ogni processo, vincolarlo ad un singono ''virtual host'', cos� da gestire facilmente la redistribuzione delle risorse e/o personalizzare il servizio offerto;
; apache2-mpm-prefork : I thread sono disabilitati, e la gestione dei '''pool di processi''' viene gestita come per Apache1 (''MinSpareServers'' e ''MaxSpareServers'');
; apache2-mpm-threadpool : pacchetto di transizione;
; apache2-mpm-worker : la soluzione � intermedia rispetto a perchild e prefork.


Quello che a noi interessa '''apache2-mpm-prefork''', visto che � l'unico ad essere compatibile con le librerie che offrono il supporto per php4.
I driver Ati di default sono parzialmente accelerati. Dalla mia esperienza possibile usarli tranquillamente (io ci modellavo con Blender con qualche problema, ad esempio durante le selezioni dei poligoni o vertici nella vista 3D). E' sufficiente avere le librerie mesa (<tt>libglu1-mesa libgl1-mesa-glx libgl1-mesa-dri</tt>) e modificare il file <tt>/etc/X11/xorg.conf</tt> o <tt>/etc/X11/XF86config-4</tt>. Riporto solo le sezioni da aggiungere o modificare:
<pre>Section "Module"
        Load    "dri"
        Load    "extmod"
        SubSection  "extmod"
          Option  "omit xfree86-dga"
        EndSubSection
        Load    "glx"
        Load    "GLcore"
EndSection


====Verifica====
Section "Device"
Per verificare la corretta installazione di Apache2, � sufficiente aprire un browser ed inserire l'indirizzo http://localhost/.
        Identifier      "ATI Technologies, Inc. RV350 [Mobility Radeon 9600 M10]"
Se Apache � stato installato correttamente, apparir� una schermata simile a questa:
        Driver          "ati"
[[Immagine:Apache2_installazione.png|thumb|center|Schermata di benvenuto di Apache2]]
        BusID          "PCI:1:0:0"
EndSection


====Configurazione====
Section "DRI"
Le regole di configurazione viste precedentemente per Apache valgono anche per Apache2.<br />
        Mode    0666
Sono per� presenti delle sostanziali differenze a livello strutturale, per quanto riguarda la struttura della directory '''/etc/apache2''', che riguardano l'organizzazione dei file e la gestione dei ''VirtualHost'' e dei ''moduli''.
EndSection</pre>
'''Ma se si vuole sfruttare al pieno il processore grafico...'''<br/>
La guida � qui: [[Installazione driver proprietari Ati]].
Comunque per abilitare l'accelerazione hardware 3D, bisogna:
*installare i sorgenti del kernel (sono sufficienti anche solo gli header del kernel);
*scaricare gli ultimi driver proprietari della ATI (al 20/09/2006 gli 8.28.8 , circa 50 MB) dal sito della Ati.
<u>Prima di far partire l'installer salvate una copia di <tt>/etc/X11/xorg.conf</tt> , che in caso di problemi andra' sostituita a quella nuova (creata dal configurer).</u>


=====Organizzazione dei file=====
{{ Warningbox | Prima di far partire l'installazione di nuovi driver, assicuratevi che non siano presenti vecchie versioni di driver:  
Durante il passaggio da Apache ad Apache2, sono state apportate delle modifiche ai file di configurazione, ai loro nomi e all'organizzazione delle directory contenenti le configurazione dei ''VirtualHost' e dei ''moduli'', il tutto per disporre di un sistema di gestione flessibile e facilmente gestibile:


======File di Configurazione======
* Verificate che non sia presente la cartella <tt>/usr/share/fglrx/</tt>. Se � presente, significa che sono installati dei vecchi driver fglrx. Per rimuoverli:
Il file di configurazione di Apache2 si chiama '''apache2.conf''', ed adotta la stessa sintassi del vecchio file di configurazione '''httpd.conf''', che � ancora presente nella directory '''/etc/apache2''' e viene richiamato all'interno del file di configurazione generale, per motivi di compatibilit�... consiglio, comunque, di non utilizzarlo, inquanto � un file di transizione, e in futuro potrebbe venir rimosso da apache2.
<pre># cd /usr/share/fglrx/
# ./fglrx-uninstall.sh</pre>
e seguite le istruzioni.
* Fate un '''<tt>aptitude purge</tt>''' dei vecchi driver, se presenti. }}


======Moduli======
Per quanto riguarda l'intallazione di quelli nuovi, esistono essenzialmente 2 metodi alternativi:
La gestione dei moduli ha subito una profonda modifica rispetto alla versione 1 di Apache: non � pi� legata ad un solo file, ma a due directory: '''/etc/apache2/mods-available''' e '''/etc/apache2/mods-enabled'''.
#usare l'eseguibile Ati
; mods-available : contiene i file che permettono il caricamento dei moduli. I file presenti all'interno di questa directory sono divisibili, tramite le loro estensioni, in due categorie: i file con estensione ''.load'' contengono le istruzioni necessarie al caricameto dei moduli; i file con estensione ''.config'', invece, contengono le eventuali opzioni di configurazione da passare al modulo.
#creare i pacchetti .deb partenddo dal eseguibile Ati


; mods-enables : contiene dei link ai file presenti nella directory '''mods-available'''. All'avvio di Apache verranno caricati i moduli i cui file di canfigurazione presentano un link in questa directory.
====Installare i driver usando l'eseguibile Ati====


======Siti======
Da un terminale spostatevi nella cartella dove avete scaricato il file e date i permessi di esecuzione:
In apache2, a differenza di apache1, tutti i siti vengono gestiti tramite ''siti''.
<pre>$ chmod +x ati-driver-installer-8.26.18-x86.run</pre> quindi, da root:
La struttura utilizzata per la gestione di questi � del tutto simile a quella dei moduli: sono presenti due directory: '''/etc/apache2/sites-available''' e '''/etc/apache2/sites-enabled''' che funzionano esattamente come illustrato precedentemente.
<pre># sh ./ati-driver-installer-8.26.18.x86.run</pre>
Il concetto � semplice: ogni file presente in '''sites-available''' rappresenta un sito, con tutti i sottodomini associati. Per abilitarli � sufficiente un link simbolico in '''sites-enabled'''.
e seguite le istruzioni.
Anche in questo caso, inoltre, apache2 mette a disposizione due comodi comandi per la gestione dei siti: '''a2ensite''' e '''a2dissite''', che hanno la funzione, rispettivamente, di attivare e disattivare un sito.
Poi, sempre con i permessi di root, aggiornate il file di configurazione <tt>xorg.conf</tt>:
<pre># cd /etc/X11/
# aticonfig --initial
# aticonfig --overlay-type=Xv</pre>
e se volete settare meglio la configurazione:
<pre># aticonfig</pre>
il quale ci dar� un lungo output con la descrizione di tutte le opzioni che possiamo usare con <tt>aticonfig</tt>.


L'utilizzo di questi due tool � semplicissimo:
Per fare qualcosa (ad esempio impostare i monitor) anche in modalit� grafica, usando il limitatissimo e stupido pannello di controllo Ati, dobbiamo fare qualche capriola.
* se si lancia il comando senza parametri, verr� mostrata la lista di tutti i siti disponibili
Creiamo un collegamento simbolco della libreria <tt>libfglrx_pp.so.1.0</tt> in <tt>/usr/lib/</tt>.
* se si indica il sito su cui effettuare l'operazione, questa verr� eseguita.
Da root:
<pre># ln -s /usr/lib/fglrx/libfglrx_pp.so.1.0 /usr/lib/</pre>
Dobbiamo avere i permessi di root per lavorare su <tt>/etc/X11/xorg.conf</tt> ma il Pannello di Controllo Ati non parte se abbiamo i privilegi. Quindi creiamo un copia del file, ad esempio, in <tt>/home/utente/cartella_temp/</tt>.
Quindi, senza i privilegi di root:
<pre>$ cp /etc/X11/xorg.conf /home/utente/cartella_temp/
$ cd /home/utente/cartella_temp/
$ fireglcontrolpanel</pre>
Settiamo le magre opzioni riguardo ai monitor, applichiamo e diamo Ok. Copiamo il file al suo posto, da root:
<pre># cp /home/utente/cartella_temp/xorg.conf /etc/X11/</pre>
'''Riavviamo X.'''
Tutto dovrebbe essere a posto. Fihiuu...


Per rendere effettive le modifiche � necessario riavviare apache2.
====Installare i driver usando i pacchetti .deb creati con l'eseguibile Ati====


=====Supporto SSL=====
Con i privilegi di root, rimuoviamo i vecchi sorgenti del modulo fglrx, se presenti:
Per Apache2, a differenza di Apache1, non esiste un pacchetto '''apache-ssl''' per attivare il supporto [[ssl]]. Per attivare il supporto ssl � necessario modificare la configurazione di apache.
<pre># rm /usr/src/fglrx-kernel*.deb</pre>
E' necessario installare i seguenti pacchetti:
<pre># apt-get install module-assistant build-essential fakeroot dh-make debconf libstdc++5 gcc-3.4-base</pre>
Spostiamoci nella cartella dove abbiamo scaricato l'eseguibile Ati e diamogli i permessi di esecuzione:
<pre>$ chmod +x ati-driver-installer-8.26.18-x86.run</pre>
Poi, per creare i 5 pacchetti .deb:
<pre>$ sh ./ati-driver-installer-8.26.18-x86.run --buildpkg Debian/[release]</pre>
Ad esempio:
<pre>$ sh ./ati-driver-installer-8.26.18-x86.run --buildpkg Debian/testing</pre>
Per installarli (installiamo solo quelli fondamentali):
<pre>$ su
Password:
# dpkg -i fglrx-driver_8.26.18-1_i386.deb
# dpkg -i fglrx-kernel-src_8.26.18-1_i386.deb
# dpkg -i fglrx-control_8.26.18-1_i386.deb</pre>


Per abilitare il supporto, e creare i certificati necessari al funzionamento dell'ssl, bisogna installare openssl:
=====Il modulo fglrx=====
<pre>
# apt-get install openssl
</pre>


Oltre a questo, deve essere abilitato il modulo ''ssl'', con il comando prima descritto per la gestione dei moduli in Apache2:
Adesso va compilato il modulo <tt>fglrx</tt>, con <tt>module-assistant</tt> (m-a):
<pre>
<pre># m-a prepare
# a2enmod ssl
# m-a update
</pre>
# m-a build fglrx
# m-a install fglrx
# depmod -a</pre>
Quindi muoviamoci in <tt>/etc/X11/</tt>:
<pre># cd /etc/X11/</pre>
e aggiorniamo il file di configurazione di X:
<pre># aticonfig --initial
# aticonfig --overlay-type=Xv</pre>
Naturalmemte � possibile modificare <tt>etc/X11/xorg.conf</tt> anche a manina (per fare questo consultate...uhm, forse c'� qualche cosa in <tt>man xorg.conf</tt>) oppure consultando e usando <tt>aticonfig</tt>.


Per la generazione del certificato, apache2 offre il comando:
'''Riavviamo X'''.
<pre>
# apache2-ssl-certificate
</pre>
che, tramite una serie di domande, creer� nella direcotry '''/etc/apache2/ssl/''' due file: ''apache.pem'' ed il certificato.


Ora aggiungiamo un ''sito'' con supporto ssl: con il nostro editor preferito creiamo un file di testo in '''/etc/apache2/sites-available''' come nel seguente esempio (il nome del file pu� essere, ad esempio, '''default-ssl'''):
{{ Warningbox | Ad ogni aggiornamento del kernel bisogna ricompilare il modulo <tt>fglrx</tt>. }}
<pre>
NameVirtualHost *:443
<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile    /etc/apache2/ssl/apache.pem
    SSLCertificateKeyFile /etc/apache2/ssl/apache.pem


    ServerAdmin admin@dominio.org
====Accelerazione e logs====
    ServerName server.dominio.org


    ErrorLog /var/log/apache2/error_ssl.log
Per verificare se abbiamo installato tutto correttamente:
    LogLevel warn
<pre>$ fglrxinfo</pre>
    CustomLog /var/log/apache2/access_ssl.log combined
dovrebbe dare un output simile a questo:
    ServerSignature On
<pre>display: :0.0  screen: 0
    DocumentRoot /var/www/apache2-default
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON 9700 Generic
OpenGL version string: 2.0.5879 (8.26.18)</pre>
Se al posto di ATI compare Mesa, c'� qualcosa che non va. L'installazione non � andata a buon fine.


    <Directory />
Per testare l'accelerazione:
        Options FollowSymLinks
<pre>$ fgl_glxgears</pre>
        AllowOverride None
Dovrebbe comparire un cubo rotante con sulle sei faccie degli ingranaggi rotanti e, sul terminale la conta dei frame:
    </Directory>
<pre>Using GLX_SGIX_pbuffer
    <Directory /var/www/apache2-default>
1610 frames in 5.0 seconds = 322.000 FPS
        Options Indexes FollowSymLinks MultiViews
1640 frames in 5.0 seconds = 328.000 FPS
        AllowOverride None
2093 frames in 5.0 seconds = 418.600 FPS</pre>
        Order allow,deny
Se invece compaiono 4-5 righe di errori, c'� qualcosa che non va. L'installazione non � andata a buon fine. Ritenta, forse sarai pi� fortunat*.
        allow from all
    </Directory>


    ScriptAlias /cgi-local/ /var/www/apache2-default/cgi-bin/
Per testare l'accelerazione � possibile utilizzare anche i tools di Mesa:
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<pre># apt-get install mesa-utils
$ glxgears -printfps</pre>
    <Directory "/var/www/apache2-default/cgi-bin">
Appaiono tre ingranaggi rotanti e la conta dei fotogrammi:
        AllowOverride None
<pre>14045 frames in 5.0 seconds = 2808.862 FPS
        Options None
14115 frames in 5.0 seconds = 2822.858 FPS
        Order allow,deny
14196 frames in 5.0 seconds = 2839.177 FPS</pre>
        Allow from all
    </Directory>


    <Directory "/usr/lib/cgi-bin">
Il file di log principale � '''<tt>/var/log/Xorg.0.log</tt>''' e seguenti. Da spulciare, analizare, bruciare, supplicare. Insomma qui c'� di tutto di pi�. Ma a volte si pu� anche non trovare nulla di anomalo e magari <tt>fgl_glxgears</tt> non funziona lo stesso. 8�(
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>


    Alias /icons/ "/usr/share/apache2/icons/"
Se abbiamo installato i driver con l'installer Ati, esiste anche questo piccolo log:  <tt>/usr/share/fglrx/fglrx-install.log</tt>
    Alias /manual/ "/usr/share/doc/apache2-doc/manual/"
 
    <Directory "/usr/share/apache2/icons">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
</pre>


Molte delle opzioni contenute nell'esempio sono prese pari pari dal file '''/etc/apache2/sites-available/default'''.
====xorg.conf (XF86Config-4)====


Mancano due modifiche, prima di avere il supporto ssl attivo: Apache non � in ascolto sulla porta 443, quella normalmente utilizzata da apache-ssl, e quindi lo dobbiamo istruire modificando il file '''/etc/apache2/ports.conf''' aggiungendo la riga:
Questo e' il mio xorg.conf:
<pre>
<pre># /etc/X11/xorg.conf (xorg X Window System server configuration file)
Listen 443
#
</pre>
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
# (Type "man /etc/X11/xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#  sudo dpkg-reconfigure -phigh xserver-xorg


Come ultima cosa, importantissima, bisogna attivare il sito che abbiamo appena creato (sempre utilizzando i comodi comandi che Apache2 ci mette a disposizione). Sar� quindi sufficiente un
Section "ServerLayout"
<pre>
Identifier    "Default Layout"
# a2ensite default-ssl
Screen      0  "aticonfig-Screen[0]" 0 0
</pre>
InputDevice    "Keyboard"
questo se si � scelto di creare un file separato per i siti che avranno il supporto ssl... Un'altra pratica molto diffusa � quella di gestire ogni singolo sito come un file, quindi le direttive per l'abilitazione del supporto ssl vengono scritte all'interno del file ''generale'' di quel sito (in questo caso il file '''default''').
InputDevice    "Mouse"
InputDevice    "Touchpad"
EndSection


Per rendere effettive tutte le modifiche, riavviamo apache:
Section "Files"
<pre>
# path to defoma fonts
# /etc/init.d/apache2 restart
FontPath    "/usr/share/fonts/X11/misc"
</pre>
FontPath    "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath    "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath    "/usr/share/fonts/X11/Type1"
FontPath    "/usr/share/fonts/X11/100dpi"
FontPath    "/usr/share/fonts/X11/75dpi"
FontPath    "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection


=====Far convivere Apache e Apache2=====
Section "Module"
Alcune volte pu� essere utile far convivere Apache1 e Apache2 sulla stessa macchina (magari durante un periodo di migrazione)...a tale proposito, � buona norma modificare il numero della porta su cui uno dei due server � in ascolto.
Load  "synaptics"
Normalmente si ''sposta'' Apache2 dalla porta '''80''' alla '''8080''' (sempre se su questa non � configurato un server proxy).
Load  "bitmap"
Load  "ddc"
Load  "dri"
Load  "extmod"
Load  "freetype"
Load  "glx"
Load  "int10"
Load  "type1"
Load  "vbe"
#      Load  "GLcore"
EndSection


Per modificare la porta su cui Apache2 � in ascolto � sufficiente modificare il file '''/etc/apache/ports.conf''' sostituendo al numero '''80''', '''8080'''. Nel file '''ports.conf''' avremo, quindi, una riga come la seguente:
Section "InputDevice"
<pre>
Identifier  "Keyboard"
Listen 8080
Driver      "kbd"
</pre>
Option     "CoreKeyboard"
Option     "XkbRules" "xorg"
Option     "XkbModel" "pc105"
Option     "XkbLayout" "it"
EndSection


=Il processore PHP=
Section "InputDevice"
PHP � un [[acronimo ricorsivo]] per "PHP: Hypertext Preprocessor" e cio� "PHP: preprocessore ipertestuale". Questo significa che i nostri script non vengono elaborati dai client (in questo caso dai browser) come ad esempio nel caso di javascript, ma che vengono eseguiti direttamente sul server il quale fornisce ai clients semplici pagine html. Un linguiaggio di questo tipo viene chiamato anche '''server-side''' (lato server), in contrapposizione ai linguaggi '''client-side''' (lato client).
Identifier  "Mouse"
Driver      "mouse"
Option     "CorePointer"
Option     "Device" "/dev/input/mice"
Option     "Protocol" "ExplorerPS/2"
Option     "Emulate3Buttons" "true"
EndSection


La cosa pi� interessante nell'uso di PHP � che si tratta di un linguaggio estremamente semplice per il principiante, ma che, tuttavia, offre molte prestazioni avanzate al programmatore di professione.
Section "InputDevice"
Identifier  "Touchpad"
Driver      "synaptics"
Option     "Device" "/dev/psaux"
Option     "Protocol" "auto-dev"
Option     "LeftEdge" "1700"
Option     "RightEdge" "5300"
Option     "TopEdge" "1700"
Option     "BottomEdge" "4200"
Option     "FingerLow" "25"
Option     "FingerHigh" "30"
Option     "MaxTapTime" "180"
Option     "MaxTapMove" "220"
Option     "VertScrollDelta" "100"
Option     "MinSpeed" "0.10"
Option     "MaxSpeed" "0.30"
Option     "AccelFactor" "0.0150"
Option     "SHMConfig" "on"
        Option      "AlwaysCore" "true"
EndSection


Con PHP non siete limitati soltanto ad un output in HTML. Le possibilit� di PHP, infatti, includono l'abilit� di generare immagini, files PDF e perfino filmati Flash al volo (utilizzando libswf e Ming). Sarete in grado di generare facilmente qualsiasi testo, come XHTML e qualsiasi altro file XML. PHP pu� autogenerare questi file, e salvarli nel file system, piuttosto che eseguire un printing esterno, o creare server-side cache per contenuti dinamici.  
### Alternative Touchpad Configuration ###
#
#  Section "InputDevice"
#    Identifier  "Touchpad"
#    Driver      "mouse"
#    Option      "Device" "/dev/input/mice"
#    Option      "Name" "AlpsPS/2 ALPS GlidePoint"
#    Option      "Protocol" "explorerps/2"
#    Option      "Vendor" "Sysp"
#    Option   "LeftEdge" "1700"
#    Option   "RightEdge" "5300"
#    Option      "TopEdge" "1700"
#    Option   "BottomEdge" "4200"
#    Option   "FingerLow" "25"
#    Option   "FingerHigh" "30"
#    Option   "MaxTapTime" "180"
#    Option   "MaxTapMove" "220"
#    Option   "VertScrollDelta" "100"
#    Option   "MinSpeed" "0.10"
#    Option   "MaxSpeed" "0.30"
#    Option   "AccelFactor" "0.0150"
#    Option   "SHMConfig" "on"
#  EndSection
#
###


Una delle caratteristiche pi� importanti e significative di PHP � la possibilit` di supportare una completa gamma di databases. Scrivere una pagina web collegata ad un database � incredibilmente semplice.
Section "Monitor"
Identifier  "aticonfig-Monitor[0]"
HorizSync    30.0 - 70.0
VertRefresh  50.0 - 100.0
Option     "VendorName" "ATI Proprietary Driver"
Option     "ModelName" "Generic Autodetecting Monitor"
Option     "DPMS" "true"
EndSection


PHP fa anche da supporto per dialogare con altri servizi utilizzando i protocolli del tipo LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (in Windows) e innumerevoli altri. Potete anche aprire network sockets ed interagire usando qualsiasi altro protocollo. Inoltre supporta l'interscambio di dati complessi WDDX tra, virtualmente, tutti i linguaggi di programmazione web. A proposito di interconessioni, PHP supporta l'installazione dei JavaObjects e l'utilizzo di questi come oggetti PHP in modo trasparente. Si pu� anche usare la nostra estensione CORBA per accedere ad oggetti remoti.
Section "Monitor"
{{box|Nota Bene:|Questo elenco delle funzionalit� offerte da PHP � tratto dal manuale online di PHP e precisamente dal capitolo [http://it2.php.net/manual/it/intro-whatcando.php Che cosa pu� fare PHP?]}}
Identifier  "aticonfig-Monitor[1]"
Option     "DPMS" "true"
EndSection


==Installazione==
Section "Device"
Anche installare PHP non � un compito per nulla complesso.
Identifier  "aticonfig-Device[0]"
===PHP e Apache 1.3===
Driver      "fglrx"
Vediamo subito come procedere a abilitare PHP per il nostro server Apache in maniera minimale:
Option     "VideoOverlay" "on"
<pre># apt-get install libapache-mod-php4</pre>
Option     "OpenGLOverlay" "off"
Apt scaricher� il modulo per Apache, le eventuali dipendenze e aggiorner� anche il file di configurazione dei moduli (/etc/apache/modules.conf).
Option     "DesktopSetup" "horizontal,reverse"
BusID      "PCI:1:0:0"
EndSection


Tutto quello che dovremo fare manualmente � di riavviare Apache, altrimenti non ci fornir� gli script Php elaborati, ma ci permetter� unicamente di scaricarli. Come abbiamo gi� visto nella sezione relativa all' installazione di Apache il comando �:
Section "Screen"
<pre># apachectl graceful
Identifier "aticonfig-Screen[0]"
/usr/sbin/apachectl graceful: httpd gracefully restarted</pre>
Device    "aticonfig-Device[0]"
Monitor    "aticonfig-Monitor[0]"
DefaultDepth    24
SubSection "Display"
Viewport  0 0
Depth    24
Modes    "1280x800" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection


Ora, anche se a livello minimale, Apache � in grado fornire al nostro browser l' output degli script elaborati dal motore PHP. Non ci resta altro da fare che [[#Test|testarne]] il funzionamento.
Section "DRI"
Mode        0666
EndSection


===PHP e Apache 2.0===
### End Of File ###
Per abilitare il Php in Apache2 bisogna installare il modulo apposito:
<pre>
# apt-get install libapache2-mod-php4
</pre>
</pre>


Durante l'installazione verr� aggiornata la configurazione di Apache2 per attivare il supporto a php4, inoltre verr� automaticamente riavviato il server Web.
====Note====
 
* Una cosa importante, ma che resta comunque strana, � scrivere, in <tt>/etc/X11/xorg.conf</tt>, i moduli <tt>dri</tt>, <tt>glx</tt> e <tt>GLcore</tt>, in questo ordine. Se ad esempio si mette <tt>GLcore</tt> per primo, l'accelerazione non andr� e il log <tt>/var/log/Xorg.0.log</tt> riporter� una serie di errori, tra cui warning sulla libreria <tt>/usr/lib/xorg/modules/extensions/libGLcore.so</tt> e  un errore verso la fine, tristemente incorniciato. Questo errore non so se sia circoscritto alla mia configurazione o se sia un cosa generale. L'unica cosa � fare un po' di test.
* A volte si ottengono risultati migliori installando i driver con '''X non avviato.'''.
* Se i driver sono molto recenti il modulo <tt>GLcore</tt> non bisognerebbe inserirlo in <tt>/etc/X11/xorg.conf</tt> : viene caricato automaticamente.
* Per quanto riguarda le trasparenze di KDE, credo non siano supportate a livello hardware. Io non sono riuscito ad attivarle, infatti se aggiungo a <tt>/etc/X11/xorg.conf</tt> la sezione:
<pre>Section "Extensions"
Option "Composite" "Enable"
EndSection</pre>
l'accelerazione 3D non viene caricata.
 
===AUDIO===
 
Bisogna installare i paccheti ALSA:
<pre># apt-get install alsa-base alsa-utils</pre>
Poi fare un bel:
<pre># alsaconf</pre>
seguire le istruzioni e poi:
<pre># alsamixer</pre>
per settare i volumi.
 
===Touchpad===
 
La guida � qui: [[Synaptics touchpad]].


==Test==
'''Nota:''' Se utilizzate ksynaptics come tool di configurazione del touchpad, abilitate l'opzione ''ALPS touch pad''.
Il modo pi� semplice per testare la nostra installazione di PHP consiste nel preparare uno script e tentare di visualizzarlo nel nostro browser.


Possiamo procedere in due modi fondamentalmente: creare uno script nella '''DocumentRoot''' del server web, e cio� '''/var/www''' (se non l' avete modificata in ahttpd.conf) oppure nella nostra '''public_html.
===PCMCIA===


Nel caso vogliate creare o spostare files all' interno della DocumentRoot di Apache indispensabile tenere sempre a mente che quella directory e le directory in essa contenute sono visibili anche da altri computer (nella eventuale lan o su internet): prestate estrema attenzione ai permessi di scrittura di questi files!
Su internet ho trovato che l'adattatore PCMCIA, su questo modello, riconosciuto con il modulo <tt>yenta_socket</tt>.


Un consiglio personale consiste nell' agire sempre come utente '''www-data''' quando operate nella DocumentRoot: vi risparmierete patemi in fatto di permessi e sicurezza. Per loggarci come utente www-data � sufficiente operare in questo modo:
===Gestione energetica===
<pre>$ whoami
 
keltik
Per quanto riguarda il risparmio energetico, il centro di controllo di KDE dice che:
$ su
''Il computer ha l'installazione ACPI parziale, bisogna abilitare "AC adaptor" e "Control method battery". Quindi ricompilare il kernel.''
Password:
# whoami
root
# su - www-data
$ whoami
www-data</pre>
Siamo cos� passati dal nostro utente normale all' utente root e da questo siamo diventati l' utente www-data (il passaggio tramite l' utente root ci evita di dover fornire la password per www-data). Avendo usato il comando '''su - ''' abbiamo effettuato un login vero e proprio, ereditando tutte le variabili locali per www-data.


Ora possiamo operare in tranquillit� nella DocumentRoot (che � anche la $HOME dell' utente www-data).
Date un'occhiata qui: [[Cpufreqd: Cpuscaling per Intel Pentium M]]


Se invece scegliamo di usare la nostra public_html, non dovremo fare altro che creare il file al suo interno usando il nostro utente normale.
Io, per risolvere, ho attivato i seguenti moduli:
<pre>acpi-cpufreq
ac
battery
button
fan
processor
thermal
cpufreq_userspace
freq_table</pre>
� possibile farlo con <tt>modconf</tt>.
Comunque molti sono gia' attivati.
Inoltre vanno installati:
<pre>acpi cpufreqd cpufrequtils</pre>
Aggiungete le applet (se avete Gnome) "Variazione frequenza CPU" e "Carica batteria" e siete a posto.


Usiamo il nostro editor preferito e creiamo il file prova.php che conterr� questo codice:
Con il comando:
<pre><?php phpinfo(); ?></pre>
<pre>cpufreq-set</pre>
potete cambiare la frequenza del processore. Esempio:
<pre>cpufreq-set -f 1.2GHz</pre>
oppure ottenere info con:
<pre>cpufreq-info</pre>


{{box|Nota Bene|Aldil� di quale sia il vostro editor preferito, consiglio caldamente di imparare quantomeno i rudimenti di '''vi''': questo editor testuale infatti � presente nella quasi totalit� dei sistemi operativi *nix, � molto pratico anche durante sessioni telnet o ssh e - con un minimo di allenamento - dispone di tutta la potenza necessaria ad un editor di codice}}
Se vi intendete di liguaggio C, o avete lavorato per Microsoft o Intel, potete provare a ricompilarvi la DSDT (Differentiated System Description Table). Questo vi permetter�, forse, di ottenere prestazioni migliori, di correggere qualche errore o di aggiungerne di nuovi. La guida � qui: [[ACPI e DSDT]].


Se tutto � andato bene, puntando il browser all' indiritto http://127.0.0.1/prova.php (nel caso di aver usato la DocumentRoot) oppure http://127.0.0.1/~utente/prova.php vedremo una pagina html che riporta molte informazioni utili sul nostro nuovo ambiente di sviluppo (versione del software, moduli di apache, moduli di php, variabili di ambiente, ecc...).
===Note===


=Il Database Server=
Il mio mouse (Logitech Optical USB) � riconosciuto subito; il touchpad va cofigurato in /etc/X11/XF86config-4 .
==MySQL==
Totem d� un messaggio di errore quando si cerca di riprodurre un file audio o video. Dopo la (re)installazione dei pacchetti ALSA funziona. Le altre applicazioni multimediali vanno bene, tranne XMMS che va solo se non sono in esecuzione altri media player.
Passiamo adesso ad installare il server di database MySQL.
<pre># apt-get install mysql-server</pre>
che, oltre al server MySQL, installer� per noi anche il client, alcuni tools e le librerie indispensabili.


A questo punto il server MySQL dovrebbe essere installato ed avviato automaticamente. Possiamo controllare usando il solito comando '''ps''' oppure '''/etc/init.d/mysql status'''.
Una buona guida all'installazione a Debian Sarge � qui:
{{Warningbox|MySQL inizialmente � accessibile unicamente all' utente '''root''' senza alcuna password.}}
[http://fabrizio.ciacchi.it/guide.php?pagina=sarge Guida veloce]
{{box|Nota Bene:|Negli esempi seguenti ho digitando i comandi mysql su righe diverse per renderli pi� leggibili, ma nulla vieta di scrivere tutto di seguito sulla medesima linea.}}
La nostra prima preoccupazione dovrebbe essere senz'altro quella di impostare una passowrd per l'utente root. Ecco come fare:
<pre>
$ mysql -u root
mysql> SET PASSWORD
    -> FOR root@localhost
    -> =
    -> PASSWORD('la_tua_password')
    -> ;
Query OK, 0 rows affected (0.08 sec)


mysql> exit
==Debian Etch==
Bye
$
</pre>
{{box|Nota Bene:|Se non funziona il comando '''mysql -u root''' provare con '''mysql -u root -p''' e se richiede la password lasciarla vuota e premere invio.}}
Se ora proviamo a loggarci nuovamente, dovremmo vederci negato l' accesso in questo modo:
<pre>
$ mysql -u root
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
</pre>
Riproviamo usando la password che abbiamo scelto in precedenza:
<pre>
$ mysql -u root -pla_tua_password
Welcome to the MySQL monitor.  Commands end with ; or \g.
</pre>
{{box|Nota Bene:|Lo switch "-p" usato nel comando ''mysql'' prevede che la password venga digitata '''senza spazi tra il -p e la password effettiva'''. Non si tratta di un mio errore di battitura!<br> Se invece usiamo lo switch "-p" senza specificare alcuna password, questa ci verr� richiesta interattivamente.}}
Usare utenti con privilegi alti non � mai una buona idea, per cui provvediamo a creare un utente a cui concederemo i privilegi minimi (ma al quale potremo dare privilegi pi� alti per database specifici):
<pre>
mysql> GRANT USAGE ON *.*
    -> TO 'utente'@'localhost'
    -> IDENTIFIED BY 'la_tua_password'
    -> ;
Query OK, 0 rows affected (0.02 sec)


mysql> FLUSH PRIVILEGES;
La testing al 20/09/2006 ha il kernel 2.6.16, gnome 2.14, KDE 3.5.4 e xorg 7.0.0
Query OK, 0 rows affected (0.04 sec)
Il comando di boot per installare � questo:
</pre>
<pre>install acpi=yes vga=771</pre>
Se ora proviamo a loggarci con il nuovo utente, dovremmo riuscire ad autenticarci usando le credenziali specificate con il comando GRANT.
Installando da zero la testing ho risolto alcuni problemi, tra cui la gestione energetica e il controllo della batteria.
Durante il processo di installazione ho scelto: ambiente desktop, sistema base e portatile.


Ora creiamo un database nuovo:
Per quanto riguarda il PCMCIA, durante l'installazione di etch non si hanno blocchi di sistema.
<pre>
mysql> CREATE DATABASE prova;
Query OK, 1 row affected (0.00 sec)


mysql> show databases;
===Video===
+----------+
| Database |
+----------+
| mysql    |
| prova    |
| test    |
+----------+
3 rows in set (0.02 sec)
</pre>
ed assegnamo all' utente che abbiamo creato in precedenza piena diritti di amministrazione al database:
<pre>
mysql> GRANT ALL PRIVILEGES
    -> ON prova.*
    -> TO 'utente'@'localhost'
    -> ;
Query OK, 0 rows affected (0.02 sec)


mysql> FLUSH PRIVILEGES;
E' possibile installare i driver video proprietari ATI usando a scelta uno dei tre metodi, analogamente a chi ha Debian Sid: [[#Installare i driver usando l'eseguibile Ati|metodo 1]], [[#Installare i driver usando i pacchetti .deb creati con l'eseguibile Ati|metodo 2]] e [[#Debian Sid|metodo 3]].
Query OK, 0 rows affected (0.04 sec)
</pre>
Se ora ci logghiamo con il nostro utente e chiediamo una lista dei database, vedremo unicamente quelli su cui abbiamo privilegi:
<pre>
mysql> show databases;
+----------+
| Database |
+----------+
| prova    |
+----------+
1 row in set (0.00 sec)
</pre>
Selezioniamo il database su cui operare col comando:
<pre>
mysql> USE prova;
</pre>
Ora creiamo una tabella all' interno del database ''prova'', giusto per verificare che sia tutto a posto:
<pre>
mysql> CREATE TABLE tabella (colonna1 VARCHAR(20), colonna2 VARCHAR(20));
Query OK, 0 rows affected (0.42 sec)


mysql> DESCRIBE tabella;
==Debian Sid==
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| colonna1 | varchar(20) | YES  |    | NULL    |      |
| colonna2 | varchar(20) | YES  |    | NULL    |      |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.08 sec)
</pre>


Se non abbiamo ottenuto errori passiamo al punto successivo, altrimenti verifichiamo tutti i passaggi precedenti.
===Video===


==MySQL e PHP==
La unstable al 20/09/2006 ha il kernel 2.6.17 e Xorg 7.1. Fortunatamente sui repository ufficiali di Sid ci sono i pacchetti necessari per attivare l'accelerazione 3D. Con un po' di fatica (sono ancora un po' inesperto) ci sono riuscito; non tanto ad installarli, ma a configurare correttamente Xorg. Oll�!
Per poter usare MySQL attraverso pagine PHP dobbiamo installare il modulo '''php4-mysql''' e riavviare Apache:
<pre>
# apt-get install php4-mysql
# apachectl graceful
/usr/sbin/apachectl graceful: httpd gracefully restarted
</pre>


Ora possiamo verificare se siamo effettivamente in grado di accedere a MySQL.<br>
Innanzi tutto installiamo i pacchetti necessari:
La procedura simile a quella vista in precedenza per testare la corretta installazione di PHP:
<pre># apt-get install fglrx-control fglrx-driver fglrx-driver-dev fglrx-kernel-src</pre>
* logghiamoci come utente root oppure spostiamoci nella nostra directory '''public_html''';
Siccome il modulo di cui abbiamo bisogno (<tt>fglrx</tt>) sotto forma di sorgenti (<tt>fglrx-kernel-src</tt>), lo compiliamo e lo installiamo utilizzando <tt>module-assistant</tt>, come descritto [[#Il modulo fglrx|qui]]
* creaimo il file mysql.php che conterr� questo codice:
<pre><nowiki>
<?php


// si collega al database, altrimenti esce e ritorna un errore
In teoria abbiamo finito, bisogna solamente configurare [[#xorg.conf (XF86Config-4)|/etc/X11/xorg.conf]] e riavviare X.


mysql_connect('localhost','utente','la_tua_password') or die(mysql_error());
====Note====


?></nowiki>
* Consultate anche il manuale di <tt>fglrx</tt> (Etch e Sid).
</pre>
* Naturalmente sono validi anche i metodi sopra riportati: [[#Installare i driver usando l'eseguibile Ati|metodo 1]] e [[#Installare i driver usando i pacchetti .deb creati con l'eseguibile Ati|metodo 2]] .
* apriamo un browser e puntiamolo alla pagina appena creata ( http://localhost/mysql.php oppure http://localhost/~utente/mysql.php);
** se quello che vediamo � una pagina bianca, significa che PHP � in grado di dialogare con MySQL;
** se otteniamo l' errore '''Fatal error: call to undefined function - mysql_connect()''' significa che il modulo php4-mysql non � stato installato correttamente o che non abbiamo riavviato Apache;
** se otteniamo l' errore '''Warning: mysql_connect(): Access denied for user: xxxxxxxx''' significa che abbiamo scritto male le credenziali da utilizzare.


==PhpMyAdmin==
==Ubuntu Dapper==
Questo software � un validissimo alleato nel lavoro quotidiano di manutenere un server MySQL, anche se in locale e/o domestico: tra i suoi pregi segnalo l' ottima usabilit� e l' interfaccia web.


Questo pacchetto si installa con il comando:
===Video===
<pre>
# apt-get install phpmyadmin php4 php4-gd
</pre>
Ci verr� quindi chiesto quale server http dovr� essere riconfigurato automaticamente. In base alla versione di Apache che abbiamo installato in precedenza possiamo scegliere '''apache''' oppure '''apache2'''.


Al termine della configurazione scegliamo di riavviare Apache e cominciamo subito ad utilizzare PhpMyAdmin puntando il browser all'indirizzo http://localhost/phpmyadmin/
Chi ha installato Ubuntu, Kubuntu o Xubuntu, pu� installare i driver video Ati proprietari usando a scelta uno dei tre metodi, analogamente a chi ha Debian Sid: [[#Installare i driver usando l'eseguibile Ati|metodo 1]], [[#Installare i driver usando i pacchetti .deb creati con l'eseguibile Ati|metodo 2]] e [[#Debian Sid|metodo 3]].


[[Immagine:Phpmyadmin_table.png|thumb|center|Schermata di esempio di PhpMyAdmin]]
Per quanto riguarda il terzo metodo, ovviamente i pacchetti avranno nomi diversi da quelli disponibili per Debian. Inoltre, sempre per il terzo metodo, se avete una scheda grafica non troppo recente, '''probabilmente''' non servir� compilare il modulo <tt>fglrx</tt>, in quanto presente nel pacchetto <tt>linux-restricted-modules-x.y.z-a-b-c</tt> (che quindi va installato se non lo � gi�), dove <tt>x.y.z-a-b-c</tt> rappresentano la versione e l'architettura del vostro kernel, visibile con il comando:
<pre>$ uname -r</pre>
Ne consegue che aggiornando il kernel, quindi anche il pacchetto linux-restricted-modules, non dovrete ricompilare il modulo <tt>fglrx</tt> , a differenza di chi ha dovuto compilarlo fin dall'inizio.


=Conclusioni=
----
Ora si ha a disposizione un sistema completo per l'utilizzo di script in php (ed anche per il loro sviluppo).
----


Chiunque volesse contribuire a questa guida benvenuto (soprattutto e a maggior ragione se ho detto cose '''poco esatte''').


----
----
Autore: [[Utente:Keltik|Keltik]] 07:20, Giu 20, 2005 (EDT)<br/>
 
[[Utente:MaXeR|MaXeR]] 07:59, Lug 18, 2005 (EDT)
Autore: [[Utente:Superflieriam|Superflieriam]]
[[Categoria:Server]][[Categoria:Networking]]
[[Categoria:Laptop]]
223

contributi