Indice Guide: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(618 versioni intermedie di 60 utenti non mostrate)
Riga 1: Riga 1:
=Introduzione=
__NOTOC__
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.
[[Image:Banner-buster.png|link=Installazione_Debian:_pagine_utili]]
<!-- ---------- RIQUADRO BANNER -------------- -->
<div class="riquadro_banner groupclear">
  <div class="col_float indice_guide">
    <h2 class="title_banner">Indice delle Guide</h2>
      <p>Di seguito troverete un indice parzialmente completo delle guide contenute su [[Guide@Debianizzati.Org:About|Wiki]].</p>
      <p>La totalità delle guide è disponibile nella lista delle '''[[Lista Categorie|categorie]]''' qua a destra.</p>
  </div>
  <div class="col_float lista_link">
* [[:Categoria:Conoscere Debian|Conoscere Debian]]
* [[:Categoria:Usare Debian|Usare Debian]]
* [[:Categoria:Configurare Debian|Configurare Debian]]
* [[:Categoria:Debian in rete|Debian in rete]]
* [[:Categoria:Debian server|Debian server]]
  </div>
  <div class="col_float lista_link">
* [[:Categoria:Virtualizzazione|Virtualizzazione]]
* [[:Categoria:Debian e sicurezza|Debian e sicurezza]]
* [[:Categoria:Debian e Hardware|Debian e Hardware]]
* [[:Categoria:Sviluppare con Debian|Sviluppare con Debian]]
* [[:Categoria:Giocare con Debian|Giocare con Debian]]
  </div>
  <div class="col_float lista_link">
* [[:Categoria:Cultura libera|Cultura libera]]
* [[:Categoria:Wiki|Wiki]]
* [[:Categoria:Debianizzati|Debianizzati]]
* [[:Categoria:Non-Free|Non-Free]]
* '''[[Lista Categorie]]'''
  </div>
</div>


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.
Questo Wiki - '''[[Guide@Debianizzati.Org:About|Guide@Debianizzati.Org]]''' - vuole essere prima di tutto un punto di raccolta ideale per le conoscenze acquisite dai singoli durante l'uso di '''Debian GNU/Linux''' in ambito casalingo e/o lavorativo, in modo che il sapere di uno diventi quello di tutti.


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.
Le guide ritenute meglio scritte e più approfondite, dopo un processo di controllo e revisione a cui tutti siete liberi di partecipare, vengono classificate [[:Categoria:Debianized|Debianized]] e contrassegnate dalla [[Debian Swirl]]: [[Image:swirl.png|link=]]. Per ulteriori informazioni sul processo di revisione vedere: [[Aiuto:Prima di iniziare#Evoluzione delle guide|Evoluzione delle guide]].


Buona lettura!
Potete trovare un elenco completo delle guide '''Debianized''' in [[:Categoria:Debianized|questa pagina]].


=Il server http=
Le guide contrassegnate da questa immagine [[Immagine:Swirl_blu.png]] rimandano ad articoli della [http://e-zine.debianizzati.org/ e-zine] di Debianizzati.
==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".
__TOC__


La pronuncia corretta di Apache suona grossomodo come "APACI".
== Mondo Debian ==
=== Introduzione a Debian ===
* [[L' Universo Debian]]
* [[La struttura della Distribuzione]]
* [[Immagine:Swirl_blu.png]] [[La nascita di Debian]]
* [[Immagine:Swirl blu.png]] [[Debian Free Software Guidelines]]


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).
=== Installazione sistema operativo ===
* [[Installare Debian]]
===Apache 1.3===
** [[Installare Debian SID]]
====Installazione====
** [[Debian 9 Stretch - Installazione base]]
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:
** [[Installare Debian da pendrive USB o SD card]]  
<pre># apt-get install apache</pre>
** [[Installare Debian da hard disk]]
al termine del download ci viene chiesto se vogliamo abilitare suExec: a meno di utilizzi professionali, possiamo tranquillamente rispondere "No".
* [[Installare Debian: configurazione LVM]]
====Verifica====
* [[Installare Debian: configurazione RAID]]
A questo punto il nostro server web � gi� attivo, ma possiamo anche verificarlo tramite il comando '''ps''':
* [[Installare Debian su un RAID1 software | Configurare un RAID1]]
<pre>$ ps aux |grep apache
* [[Installare Debian con Raid1 software e LVM | Configurare RAID1+LVM]]
root      7378 0.0  0.4  4592  2228 pts/1    S    12:01  0:00 /usr/sbin/apache
* [[Installare e configurare Debian edu (Skolelinux)]]
www-data  7379  0.0  0.4  4592  2364 pts/1    S    12:01  0:00 /usr/sbin/apache
* [[Jigdo | '''Jigdo''': Scaricare e Aggiornare le iso di Debian]]
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====
==== Guide per immagini ====
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.
* [[Squeeze, installer di default | '''Squeeze''', non grafica]]
* [[Squeeze, installer grafico | '''Squeeze''' businesscard e netinst, grafica]]
* [[Squeeze, installer CD/DVD | '''Squeeze''' CD/DVD, grafica]]
* [[Installare Debian Wheezy - Guida Grafica | '''Wheezy''' netinst, grafica]]


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.
=== Boot loader ===
==== Grub e Grub 2 ====
* [[Guida a Grub]]
** [[Aggiungere uno sfondo a Grub]]
* [[Guida a GRUB 2]]
** [[Grub2: riconoscere altri sistemi operativi installati]]
** [[Ripristinare Grub2 dopo l'installazione di un altro sistema operativo]]


'''server-pool size'''
==== Altri ====
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'''
* [[Smart Boot Manager (SBM): avviare differenti SO]]
Questo blocco (riga 153) dice ad Apache quanti sono i figli da generare al momento dell' avvio del server. Il default �:
<pre>StartServers 5</pre>
che noi cambieremo in:
<pre>StartServers 1</pre>


'''Listen'''
=== Installazione e gestione dei pacchetti ===
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'''
* [[Introduzione all'APT System | '''>>INTRODUZIONE ALL'APT SYSTEM<<''']]
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.


'''ServerName'''
====Lato Client====
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]]).
===== Pacchetto apt =====
* [[Apt| '''Apt''': funzionalità di base per amministrare i pacchetti]]
* [[Apt-get | '''Apt-Get''': per scaricare, installare, rimuovere e aggiornare i pacchetti]]
* [[Apt-cache | '''Apt-Cache''': per ricercare informazioni sui pacchetti]]
* [[Apt-mark | '''Apt-Mark''': per leggere o modificare lo stato dei pacchetti]]
* [[Apt-cdrom | '''Apt-cdrom''': aggiunta di cd/dvd nella lista dei repository]]
===== Altro software =====
* [[Aptitude | '''Aptitude''': strumento avanzato per amministrare i pacchetti]]
* [[Dpkg | '''Dpkg''': introduzione al package manager di Debian]]
* [[Gdebi|'''Gdebi''': come installare pacchetti .deb con le loro dipendenze]]
* [[Synaptic | '''Synaptic''': software grafico e più intuitivo per amministrare i pacchetti]]
* [[Immagine:Swirl_blu.png]] [[Wajig | '''Wajig''']]
* [[Apt-file: ricerca all'interno dei pacchetti | '''Apt-file''': ricerca all'interno dei pacchetti]]
* [[Apt-listbugs: come monitorare i bug | '''Apt-listbugs''': come monitorare i bug]]
* [[Apt-show-versions | '''Apt-show-versions''': scoprire a che release appartiene un pacchetto in sistemi "misti"]]
* [[Impedire l'aggiornamento di un pacchetto | Impedire e/o retrocedere la versione dei singoli pacchetti]]


'''DocumentRoot'''
* "Fare il downgrade di uno o più pacchetti", accorpata a "Impedire e/o retrocedere la versione dei singoli pacchetti"
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}}
====Lato Server====
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:
* [[APT-Cacher NG]], proxy per creare una cache di pacchetti centralizzata in una LAN.
* metodo standard <pre><nowiki># apachectl graceful
* [[Usare apt-cacher per creare una cache dei pacchetti usabile in una LAN |'''Apt-Cacher''': creare una cache dei pacchetti usabile in una LAN]]
/usr/sbin/apachectl graceful: httpd gracefully restarted</nowiki></pre>
* [[Aptoncd |'''Aptoncd''': creare immagini iso della cache di apt]]
* metodo debian init.d <pre><nowiki># /etc/init.d/apache restart
* [[Creare un Repository Debian]]
Restarting apache.</nowiki></pre>
* [[Gestione di un repository con debarchiver |'''Debarchiver''': gestione di un repository con debarchiver]]
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>
* [[Debmirror: creiamo un mirror Debian |'''Debmirror''': creiamo un mirror Debian]]
Facciamo un esempio:
* [[Dupload per l'upload dei pacchetti Debian |'''Dupload''': dupload per l'upload dei pacchetti Debian]]
<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 �a 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:
====Repository====
[[Immagine:Apache_installazione.png|thumb|center|Pagina di Benvenuto di Apache]]
* [[Image:swirl.png|link=]] [[I repository ed il loro utilizzo]]
* [[Immagine:Swirl blu.png]] [[Repository & pinning]]
* [[Il repository Backports]]
* [[Repository non ufficiali]]
* [[Archivi Debian]]
* [[Il repository di HWraid]]
* [[Il repository DotDeb]]
* [[Il repository LinuxMint]]
* [[Immagini iso Debian da usare come repository | Utilizzare immagini ISO come repository locali]]


{{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/'''}}
* "APT uso avanzato: mixare releases diverse", accorpata a "I repository e il loro utilizzo".
* "Introduzione al pinning", accorpata a "I repository e il loro utilizzo".


Ora non ci resta che inserire i nostri files in /var/www o nella nostra public_html per poter cominciare ad usare Apache!
====Manutenzione====
* [[Controllare lo stato di un pacchetto]]
* [[APT: Errori (non così) frequenti]]
* [[Pulire Debian]]
* [[Usare pacchetti a 32 bit su sistemi a 64 bit]]


====Supporto SSL====
==== Creazione e modifica dei pacchetti ====
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.
* [[Make-jpkg: Pacchettizziamo Java| '''Make-jpkg''': Pacchettizziamo Java]]
* [[Gestione dei metapacchetti | Metapacchetti]]
* [[Applicare una patch ad un pacchetto Debian]]
* [[Apt-build: ottimizzazione dei pacchetti | '''Apt-build''': ottimizzazione dei pacchetti]]
* [[Dpkg-sig: Firma dei packages .deb |  '''Dpkg-sig''': Firma dei packages .deb]]
* [[Backport da unstable in testing]]
* [[Pbuilder: compilazione in ambienti puliti]]


Tra i vantaggi in termini di sicurezza che l' uso di SSL comporta, segnalo:
* "Pacchetti binari e sorgenti", inclusa nella guida "Introduzione all'apt system".
* transito di informazioni sensibili (passwords, dati personali, ecc...) in internet attraverso un canale crittografato sicuro;
* accertamento dell' identit� del server e/o del client web tramite certificati digitali.


Il supporto SSL per Apache pu� essere abilitato in due modi distinti:
==Configurazione Sistema==
* realizzazione di un nuovo server Apache con supporto SSL (vedi: '''apt-cache show apache-ssl''');
===Autenticazione locale===
* implementazione di Apache e Apache SSL nel medesimo server grazie a mod_ssl.
* [[Guida ai comandi da terminale - Gestione utenti e gruppi | Amministrazione utenti e gruppi]]
* [[Privilegi di amministrazione]]
** [[Configurare SUDO per gestire le attività degli amministratori | Privilegi di amministrazione (sudo)]]
* [[Password sicure: la base della sicurezza informatica]]
* [[Autenticazione via token con PAM USB]]


In questa guida vedremo l' installazione e configurazione di '''mod_ssl'''.
===Kernel===
* [[Linux Kernel in a Nutshell]] in Italiano (work in progress)
* [[Debian Kernel Howto]]
* [[Esempio configurazione kernel]]
* [[Pagina di manuale di module-assistant|Pagina di manuale di '''<code>module-assistant</code>''']]
* [[Low-latency 2.6 kernel per applicazioni audio realtime]]
* [[Script: Confronto Configurazioni Kernel]]
* [[Patch Con Kolivas: incrementare le prestazioni desktop|Patch '''Con Kolivas''': incrementare le prestazioni '''desktop''']]
* [[Immagine:Swirl_blu.png]] [[Compilazione del Kernel Linux]]


Procediamo con l' installazione del pacchetto:
===Ports===
<pre>
* [[Immagine:Swirl blu.png]] [[Nexenta]]
# apt-get install libapache-mod-ssl
* [[Immagine:Swirl blu.png]] [[Debian su android]]
</pre>
* [[Immagine:Swirl blu.png]] [[Debian GNU/kFreeBSD]]
* [[Immagine:Swirl blu.png]] [[GNU/Hurd|Debian GNU/Hurd]]


===Apache 2.0===
===Sistema===
====Installazione====
* [[SysV | Il sistema SysV per la gestione dei Runlevel]]
L'installazione di Apache2 � perfettamente uguale a quella precedentemente illustrata per Apache:
* [[Linux Admin Quick Reference]]
<pre>
* [[Alternatives]]
# apt-get install apache2-mpm-prefork
* [[Utilizzo del servizio di scheduling Cron]]
</pre>
* [[Gestione e creazione di servizi in Debian]]
* [[Esecuzione di programmi: la variabile PATH]]
* [[Impostare l'editor predefinito della shell]]
* [[Immagine:Swirl_blu.png]] [[Le fasi del boot]]
* [[Immagine:Swirl_blu.png]] [[System Monitor]]
* [[Usare pacchetti a 32 bit su sistemi a 64 bit]]


Il [[metapacchetto]] ''apache2'' � presente, ma installa '''apache2-mpm-worker''', che risulta non essere compatibile con '''libapache2-mod-php4'''.
==== Backup ====
* [[Backup2l]]
* [[Immagine:Swirl_blu.png]] [[Mai più senza backup]]
* [[Monitorare e backuppare i cambiamenti della configurazione]]
* [[Backup automatico con rsync via ssh]]


======I diversi pacchetti======
==== Filesystem e supporti di memorizzazione permanente ====
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):
* [[File System]]
; 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;
* [[Filesystem: i permessi sui files]]
; apache2-mpm-prefork : I thread sono disabilitati, e la gestione dei '''pool di processi''' viene gestita come per Apache1 (''MinSpareServers'' e ''MaxSpareServers'');
* [[Attivare le quote su un filesystem]]
; apache2-mpm-threadpool : pacchetto di transizione;
* [[Guida alla formattazione dei dischi con fdisk | '''fdisk''']]
; apache2-mpm-worker : la soluzione � intermedia rispetto a perchild e prefork.
* [[LVM: Logical Volume Manager | '''LVM''': '''L'''ogical '''V'''olume '''M'''anager]]
* [[RAID: Redundant Array of Indipendent Disks | '''RAID''': '''R'''edundant '''A'''rray of '''I'''ndipendent '''D'''isks]]
** [[Software Raid 1: configurazione e verifiche | '''Raid 1''': configurazione e verifiche]]
* [[Udev]]
* [[Scrivere su filesystem NTFS]]
* [[ bcache | SSD caching con bcache ]]


Quello che a noi interessa � '''apache2-mpm-prefork''', visto che � l'unico ad essere compatibile con le librerie che offrono il supporto per php4.
==== Sincronizzazione file e directory ====
* [[Rsync | Rsync (GUI incluse)]]
* [[Unison e la sincronizzazione di directory | Unison]]


====Verifica====
==== Sistema / Tips & Tricks: ====
Per verificare la corretta installazione di Apache2, � sufficiente aprire un browser ed inserire l'indirizzo http://localhost/.
:* [[Impostare e modificare data e ora]]
Se Apache � stato installato correttamente, apparir� una schermata simile a questa:
:* [[Impostare e modificare il layout della tastiera]]
[[Immagine:Apache2_installazione.png|thumb|center|Schermata di benvenuto di Apache2]]
:* [[Impostare la lingua italiana nel sistema]]
:* [[Tmpreaper: pulire le directory contenenti file temporanei]]
:* [[Messaggio del giorno | Come rendere permanenti le modifiche a <code>/etc/motd</code>]]
:* [[Colorare il boot di Debian]]
:* [[Forzare la risoluzione video della shell con KMS]]


====Configurazione====
=== Elaborazione testi ===
Le regole di configurazione viste precedentemente per Apache valgono anche per Apache2.<br />
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''.


=====Organizzazione dei file=====
* [[Immagine:Swirl_blu.png]] [[Guida a vim | Vim, guida]]
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:
* [[Vim Cheat Sheet | Vim, Cheat Sheet]]
* [[LaTeX e Vim | Vim, LaTeX]]


======File di Configurazione======
=== Desktop ===
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, in quando � un file di transizione, e in futuro potrebbe venir rimosso da apache2.
* [[Correggere la risoluzione di GDM | '''GDM''', correggerne la risoluzione]]
* [[Ekiga: installazione e configurazione|'''Ekiga''': installazione e configurazione]]
* [[DVD Backup: xDVDShrink per Debian]]
* [[Personalizzare il comportamento delle finestre con Devil's Pie]]
* [[Thumbnail in Thunar]]
* [[Gimp: rendere un logo trasparente|'''Gimp''': rendere un logo trasparente]]
* [[XGL e Beryl su KDE con schede ATI]]
* [[Debian con Enlightenment 17]]
* [[Installare e configurare i codec per DVD e Mp3]]
* [[Abilitare i suoni di sistema su Gnome]]
* [[Realizzazione di un Desktop Environment su misura]]
* [[Fluxbox, un Window Manager per Computer con poche risorse]]
* [[Immagine:Swirl_blu.png]] [[Debian & Xfce]]
* [[Immagine:Swirl_blu.png]] [[Debian trip]]
* [[Come visualizzare i video in streaming su Debian]] ''(es: Youtube, Megavideo)''
* [[Cattura stream RTMP|Come catturare uno stream RTMP]]
* [[Gnash]] (per Debian 7 (Wheezy) e più recenti)
* [[Configurare un client IRC per collegarsi al canale debianizzati]]


======Moduli======
==== Desktop / Tips & Tricks ====
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'''.
:* [[Cambiare il Tema dei Cursori per il Mouse]]
; 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.
:* [[Nautilus: navigare con una sola finestra]]
:* [[Antispam in Evolution con Bogofilter]]
:* [[Associare a Icedove/Thunderbird il browser preferito]]
:* [[Migliorare l'aspetto dei font]]
:* [[KDE4 - Notifica degli aggiornamenti sulla systray]]
:* [[Modificare i colori in Midnight Commander]]
:* [[Impedire l'avvio automatico del Desktop Manager]]


; 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.
=== Xorg / Xfree ===
* [[Guida alla configurazione di Xorg]]
* [[Installazione driver proprietari Ati]]
* [[Installazione driver proprietari Nvidia]]
* [[Intel 945GM- GMA 4500MHD - Intel Mobile 4 Series]]
* [[Tabella delle risoluzioni VGA]]


======Siti======
===Applicazioni Esterne===
In apache2, a differenza di apache1, tutti i siti vengono gestiti tramite ''siti''.
* [[Elenco programmi senza interfaccia grafica]]
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.
* [[Debian e sintesi vocale: installazione di festival e mbrola]]
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'''.
* [[Installare il browser Opera]]
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.
* [[Installare Skype su Debian]]
* [[VanBasco|VanBasco Karaoke su Debian]]
* [[Guake]]


L'utilizzo di questi due tool � semplicissimo:
=== Emulatori e Virtualizzazione ===
* se si lancia il comando senza parametri, verr� mostrata la lista di tutti i siti disponibili
* se si indica il sito su cui effettuare l'operazione, questa verr� eseguita.


Per rendere effettive le modifiche � necessario riavviare apache2.
* [[QEMU/KVM]]
* [[Installare KVM su Debian]]
* [[VirtualBox]]
* [[VirtualBox: installazione]]
* [[VirtualBox: configurazione]]
* [[VirtualBox: amministrazione da terminale]]
* [[VirtualBox: creazione di una rete virtuale]]
* [[Installare VMWare Server su Debian Etch | VMWare: installazione su Debian Etch]]
* [[Installare VMWare Tools su una macchina guest Debian]]
* [[ePSXe Emulatore Playstation]]
* [[MAME e MESS | MAME e MESS, emulatori di sistemi arcade e casalinghi]]


=====Supporto SSL=====
===Altro===
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.
* [[Logging su MySQL]]
* [[Immagine:Swirl_blu.png]] [[FFmpeg]]
* [[Immagine:Swirl_blu.png]] [[Midnight Commander]]
* [[Immagine:Swirl_blu.png]] [[Vivere l'Emacs]]
* [[Forked-daapd | '''forked-daapd''', un media server basato su protocollo DAAP]]


Per abilitare il supporto, e creare i certificati necessari al funzionamento dell'ssl, bisogna installare openssl:
===Tips and Tricks===
<pre>
====Bash====
# apt-get install openssl
* [[Guida ai comandi da terminale]]
</pre>
* [[Bash tips]]: un elenco di trucchetti sull'uso interattivo di Bash
* [[Bash scripting | Bash scripting]]: guida sulla scrittura di script in Bash
* [[Colorare bash]]
* [[Come abilitare il completamento automatico 'avanzato']]
* [[Due simpatici login: welcome2l e linuxlogo]]
* [[Wodim: masterizzare da shell]]
* [[Cowsay, la mucca che ci parla dal terminale]]
* [[Immagine:Swirl_blu.png]] [[Alias | Alias di bash]]
* [[Irssi, chattare da terminale]]


Oltre a questo, deve essere abilitato il modulo ''ssl'', con il comando prima descritto per la gestione dei moduli in Apache2:
====Altro====
<pre>
# a2enmod ssl
</pre>


Per la generazione del certificato, apache2 offre il comando:
* [[Convertire immagini .nrg in immagini .iso|Convertire immagini '''<code>.nrg</code>''' (Nero) in immagini '''<code>.iso</code>''' su Linux]]
<pre>
* [[Amministrazione grafica delle "Alternatives"]]
# apache2-ssl-certificate
* [[Creare DVD Cover con GLabels]]
</pre>
* [[Logs: visualizziamoli in una console]]
che, tramite una serie di domande, creer� nella direcotry '''/etc/apache2/ssl/''' due file: ''apache.pem'' ed il certificato.
* [[Ricerca Google da terminale]]


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'''):
==Networking==
<pre>
=== Server ===
NameVirtualHost *:443
* [[Internet Service Provider con Debian]]
<VirtualHost *:443>
* [[Debian 9 Stretch - Installazione base]]
    SSLEngine on
==== Database ====
    SSLCertificateFile    /etc/apache2/ssl/apache.pem
* Database NoSQL
    SSLCertificateKeyFile /etc/apache2/ssl/apache.pem
** [[MongoDB]]
====Condivisione risorse====
* [[Firefox Sync Server | Sincronizzare Firefox/Iceweasel tramite un proprio server]]
* [[Wireless Access Point (WAP) personalizzato]]
* [[Dropbox]]


    ServerAdmin admin@dominio.org
===== Condividere directory/file tra macchine Linux =====
    ServerName server.dominio.org
* [[SSHFS: montare una risorsa remota sfruttando FUSE ed SSH | '''SSHFS''': montare una risorsa remota sfruttando FUSE ed SSH]]
* [[Nfs-kernel-server: condividere risorse tra macchine GNU/Linux | '''nfs-kernel-server''': condividere risorse tra macchine GNU/Linux]]


    ErrorLog /var/log/apache2/error_ssl.log
* "Come montare cartelle condivise da MS Windows su Debian", accorpata a "Samba: guida estesa"
    LogLevel warn
    CustomLog /var/log/apache2/access_ssl.log combined
    ServerSignature On
    DocumentRoot /var/www/apache2-default


    <Directory>
===== Samba =====
        Options FollowSymLinks
:* [[Installare Samba per condividere directory - Debian Stretch]]
        AllowOverride None
:* [[Samba: guida rapida | '''Samba''': guida rapida]]
    </Directory>
:* [[Samba: guida estesa | '''Samba''': guida estesa]]
    <Directory /var/www/apache2-default>
:* [[Samba con autenticazione locale]]
        Options Indexes FollowSymLinks MultiViews
:* [[Samba: creare un cestino di rete per le condivisioni | '''Samba''': creare un cestino di rete per le condivisioni]]
        AllowOverride None
:* [[Sfogliare la rete in Thunar con fusesmb | '''Thunar/fusesmb''': caricare risorse remote samba in Thunar sfruttando FUSE]]
        Order allow,deny
:* [[ClamAV: scansione antivirus delle condivisioni Samba | '''ClamAV''': scansione antivirus delle condivisioni Samba
        allow from all
]]
    </Directory>
:* "Accedere alle condivisioni Samba dal browser", accorpata a "Samba: guida estesa"


    ScriptAlias /cgi-local/ /var/www/apache2-default/cgi-bin/
===== Creare un controller di dominio usando OpenLDAP e Samba =====
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
:* [[Samba e OpenLDAP: creare un controller di dominio | Debian Sarge]]
:* [[Samba e OpenLDAP: creare un controller di dominio con Debian Etch | Debian Etch]]
    <Directory "/var/www/apache2-default/cgi-bin">
:* [[Samba e OpenLDAP: creare un controller di dominio con Debian Lenny | Debian Lenny]]
        AllowOverride None
:* [[Samba e OpenLDAP: creare un controller di dominio con Debian Squeeze | Debian Squeeze]]
        Options None
:* [[Samba e OpenLDAP: creare un controller di dominio NT4 con Debian Wheezy | Dominio NT4 con Debian Wheezy]]
        Order allow,deny
:* [[Samba e OpenLDAP: creare un controller di dominio Active Directory con Debian Wheezy | Dominio Active Directory con Debian Wheezy]]
        Allow from all
    </Directory>


    <Directory "/usr/lib/cgi-bin">
===== FTP =====
        AllowOverride None
:* [[Installare un server FTP con ProFTPD]]
        Options None
:* [[Installare un server FTP con utenti virtuali su MySQL]]
        Order allow,deny
:* [[Installare un server vsFTPd con utenti virtuali su MySQL]]
        Allow from all
    </Directory>


    Alias /icons/ "/usr/share/apache2/icons/"
===== OpenLDAP =====
    Alias /manual/ "/usr/share/doc/apache2-doc/manual/"
:* [[Implementare un'architettura ridondante master/slave OpenLDAP | Come implementare un'architettura ridondante master/slave]]
 
    <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'''.
====Mailing====
* [[Mail Server Sicuro con Postfix]]
* [[Mailserver con Exim, Mutt e Dovecot]]
* [[Postgrey:_filtrare_lo_spam_con_il_greylisting]]
* [[Postfix_e_autenticazione_su_smtp_remoto]]
* [[Mail_Server]]
* [[Zarafa: un sostituto opensource per Microsoft Exchange]]
* Server mail, con Postfix, Courier, MailDrop e mySQL [[Postfix-mysql]]
* Creare un server mail base, con Postfix, Dovecot e mySQL [[Server_mail_base:_Postfix_Dovecot_e_MySql]]
* Implementare il server mail base, con Amavisd-new [[Server_mail:_Postfix_Amavisd-new_Dovecot_e_MySql]]
* Implementare il controllo spam con Pyzor: [[Pyzor]]
* Implementare il controllo spam con Razor: [[Razor]]
* [[Impostare Exim per inviare tramite GMail]]
* [[Citadel, un groupware per Debian]]
* [[Installare eGroupware in Debian]]
* [[Installare un ambiente Groupware integrato in Samba4]]
* [[Installare Group-Office in Debian]]
* [[Ssmtp]]


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:
====Http====
<pre>
* [[Apache HTTP Server]]
Listen 443
* [[Server casalingo (SOHO)]]
</pre>
* [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]] (Fino a Jessie)
* [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5 - Stretch]]
* [[Installare PHP 7.2 su Debian Stretch]]
* [[Installazione Tomcat]]
* [[LAMP: Linux, Apache, MySQL e PHP| Installare un ambiente LAMP: Linux, Apache, SSL, MySQL, PHP4]]
* [[Installare Memcached in un server Apache2]] (Fino a Jessie)
* [[ Installare Memcached in un server Apache2 - Stretch]]
* [[Apache e Virtual Hosts: configurare Apache2 per ospitare più siti web]]
* [[Incrementare le prestazioni di Apache con mod_pagespeed]]
* [[Hardening di un web server Apache]]
* [[Apache2: proteggere directory mediante autenticazione]]
* [[Utilizzare Webalizer per avere le statistiche di Apache]]
* [[Ottimizzare la banda di Apache]]
* [[Configurare Apache in un ambiente Chroot]]
* [[XAMPP: Linux, Apache, MySQL e PHP facili]]
* [[Configurare Ruby On Rails un su server web di produzione]]
* [[Autorità di certificazione locale|Generare un'autorità di certificazione locale]]
* [[Installare Bugzilla su Debian]]
* [[Individuare gli script PHP che inviano SPAM]]
* [[Bitnami LAMP Stack: Linux-Apache-MySQL-PHP facili]]
* [[PHPBB]]


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
====Altri servizi di rete====
<pre>
* DNS e DHCP
# a2ensite default-ssl
** [[Bind |Bind DNS server]]
</pre>
** [[ISC DHCP | ISC DHCP server]]
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''').
** [[DNS dinamici: come ottenerli e configurarli]]
** [[Un server DNS e DHCP su Debian]]
* [[Debian su server HP Proliant: installazione del software HP]]
* [[Installare un server SNMP]]
* [[Installare una SSL VPN con SSL Explorer]]
* [[Configurare MySQL per accettare connessioni remote]]
* [[Backup di MySQL tramite script]]
* [[Ottimizzare le performances di MySQL]]
* [[Installare_hamachi_su_debian_lenny_x86_x64_come_server_e_client | Installare hamachi server e client su Debian]]
* [[Ajaxterm: utilizzare SSH via web]]
* [[Connessioni SSH attraverso un proxy HTTP]]
* [[Webmin: amministrare Debian via web]]
* [[Netkit: laboratorio di rete virtuale]]
* [[NAT con iptables|NAT con iptables: utilizzare Debian come router]]
* [[Immagine:Swirl_blu.png]] [[Debian server tramite preseed]]
* [[Un semplice Wiki con DokuWiki]]
* [[Installare e configurare MediaWiki]]
* [[Installare un Media Server per lo streaming della musica]]
* [[Subsonic, un Media Server completo e funzionale]]
* [[UpHosts | Content Filtering "domestico"]]
* [[Autenticazione degli accessi Wireless tramite server Radius]]
* [[Storage online sicuro con Webdav e EncFS]]
* [[Shellinabox]]


Per rendere effettive tutte le modifiche, riavviamo apache:
===Amministrazione===
<pre>
====Gestione Remota/Locale====
# /etc/init.d/apache2 restart
* [[Wake On Lan | '''Wake On Lan''' per accendere i propri PC a distanza tramite la LAN]]
</pre>
* [[Debian e il controllo di servizi e demoni]]
* [[Gestione della banda in Apache]]
* [[Inetd e i servizi di rete]]
* [[SSH]]
** [[OpenSSH: file di configurazione]]
** [[OpenSSH]]
** [[OpenSSH: Windows]]
** [[Connessioni SSH attraverso un proxy HTTP]]


=====Far convivere Apache e Apache2=====
====Connettività====
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.
* [[Condividere la connessione a internet]]
Normalmente si ''sposta'' Apache2 dalla porta '''80''' alla '''8080''' (sempre se su questa non � configurato un server proxy).
* [[Gateway-Router | Configurare una macchina linux come Gateway/Router]]
* [[pppoeconf | Configurare una connessione ADSL con pppoeconf]]
* [[Ifplugd: connessione automatica|'''<code>ifplugd</code>''': connessione automatica]]
* [[IP fissi | Come impostare indirizzi IP fissi su Debian]]
* [[Impostare manualmente velocità e duplex di una scheda di rete]]
* [[Configurazione di una connessione wireless]]
* [[Disabilitare IPv6 | Disabilitare il protocollo IPv6 su Debian]]
* [[Immagine:Swirl_blu.png]] [[Switchconf]]
* [[Immagine:Swirl_blu.png]] [[Iproute2]]
* [[Gestire automaticamente configurazioni wifi multiple]]
* [[Ethernet Bonding: come garantire ridondanza e/o massimizzare la banda disponibile | '''Ethernet Bonding''': come garantire ridondanza e/o massimizzare la banda disponibile
]]
* [[Ethernet Bridging | '''Ethernet Bridging''': "trasformare" un computer in un hub/switch]]
* [[Autenticazione degli accessi Wireless tramite server Radius]]


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:
===Sicurezza===
<pre>
====Firewalling====
Listen 8080
* [[Impostare un firewall con uno script iptables]]
</pre>
* [[Configurare Netfilter con Shorewall]]
* [[Debian e iptables]]
* [[Nftables]]
* [[Firewall Builder]]
* [[Proxy Server con filtraggio dei contenuti della navigazione]]


=Il processore PHP=
====Monitoraggio & Scanning====
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).
* [[Monitoriamo il Sistema]]
* [[Monitorare il traffico sulle interfacce di rete]]
* [[Mrtg: monitoriamo la banda]]
* [[Cacti | Cacti: monitor di rete, per più computer]]
* [[Munin]]
* [[Configurare un server Syslog su Debian Squeeze]]
* [[Monitorare molteplici files di log da terminale]]
* [[Fail2ban]]: impedire attacchi brute-force ai nostri server
* [[Impedire attacchi SSH brute-force con Denyhosts]]
* [[Monitorare l'attività ARP con Arpwatch]]
* [[Integrit: file verification system]]
* [[Registrare i log di Iptables in MySQL]]
* [[Monitorare la nostra rete con ntop]]
* [[Debian Stretch - Monit]]
* [[Monitorare un server con Munin e Monit]]
* [[Configurare Zabbix su Debian]]
* [[Configurare SUDO per gestire le attività degli amministratori]]
* [[Monitorare la banda con BitmeterOS]]
* [[Strumenti per monitorare le performance]]
* [[Autenticazione degli accessi Wireless tramite server Radius]]
* [[Proxy Server con filtraggio dei contenuti della navigazione]]
* [[Autenticare Squid Proxy Server su un server Radius]]
* [[Individuare gli script PHP che inviano SPAM]]
* [[Monitorare i log di sistema con Logwatch]]
* [[Monitorare un server con OpenNMS]]
* [[Monitorare i log di sistema con Graylog2]]


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.
====Proxy====
* [[Privoxy: navigazione sicura a prova di spam]]
* [[Anonimato in rete - Tor ]]
* [[CNTLM | CNTLM, proxy per collegarsi ad un proxy windows]]


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.
====Tunneling====
* [[Openvpn]]
* [[Debian come server VPN]]


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.
=== File Sharing ===
* [[aMule]]
* [[Transmission]]
* [[MlDonkey]]
* [[Emule-morph]]
* [[Moblock - mobloquer]]


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.
== Hardware ==
{{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?]}}
=== Fotocamere digitali e dispositivi di memorizzazione di massa removibili ===
* [[Usare Fotocamere Digitali|Usare Fotocamere Digitali (libgphoto2)]]
* [[Usare Fotocamere Digitali (usb-storage)]]
* [[UsbMount: Gestione automatizzata delle periferiche usb di memorizzazione]]
* [[Debian e iPod]]
* [[Debian e lettori mp3 Creative]]


==Installazione==
=== Modem e periferiche di rete ===
Anche installare PHP non � un compito per nulla complesso.
* [[Debian e i Modem ADSL]]
===PHP e Apache 1.3===
Vediamo subito come procedere a abilitare PHP per il nostro server Apache in maniera minimale:
<pre># apt-get install libapache-mod-php4</pre>
Apt scaricher� il modulo per Apache, le eventuali dipendenze e aggiorner� anche il file di configurazione dei moduli (/etc/apache/modules.conf).


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 �:
==== Modem UMTS/3G/HDSA ====
<pre># apachectl graceful
* [[Modem Alice Mobile Onda MT503HSA: installazione e configurazione]]
/usr/sbin/apachectl graceful: httpd gracefully restarted</pre>
* [[Internet Key Huawei E173s 7.2Mb]]


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.
=== Schede di rete Wireless ===
* [[Wireless Support | Informazioni sul supporto alle periferiche Wireless]]
* [[Configurazione di una connessione wireless]]
====Installazione dei driver delle schede wireless====
* [[ADMtek ADM8211: installazione e configurazione]]
* [[Atheros AR5210, AR5211, AR5212, AR5213, AR5414, AR2413, AR242x]]
* [[Atheros 802.11n: installazione e configurazione]]
* [[Intel PRO/Wireless 2200BG]] (obsoleta)
* [[Intel PRO/Wireless 2100, 2200 e 2915: installazione e configurazione]]
* [[Intel PRO/Wireless 3945, 3945ABG e 4965: installazione e configurazione]]
* [[Intel PRO/Wireless 5100 ABN: installazione e configurazione]]
* [[Broadcom BCM43xx: installazione e configurazione]]
* [[Schede Wireless con driver ACX100 / ACX111]]


===PHP e Apache 2.0===
====Altro====
Per abilitare il Php in Apache2 bisogna installare il modulo apposito:
* [[Script Bash abilitazione scheda wireless]]
<pre>
* [[NdisWrapper | NdisWrapper: Usiamo i driver di Windows per il WLan con GNU/Linux]]
# apt-get install libapache2-mod-php4
* [[PCMCIA WiFi UPspeed (chipset Marvell) su Debian Sarge on Thinkpad T20 ]]
</pre>
* [[Wg111v2 con ndiswrapper e crittografia WPA]]


Durante l'installazione verr� aggiornata la configurazione di Apache2 per attivare il supporto a php4, inoltre verr� automaticamente riavviato il server Web.
=== Schede Video ===
* [[Intel 945GM- GMA 4500MHD - Intel Mobile 4 Series]]


==Test==
=== Stampanti ===
Il modo pi� semplice per testare la nostra installazione di PHP consiste nel preparare uno script e tentare di visualizzarlo nel nostro browser.
* [[Livello degli inchiostri e pulizia testine per stampanti Epson]]
* [[Immagine:Swirl_blu.png]] [[Stampanti multifunzione]]
==== Stampanti USB ====
* [[Installare stampanti con porta USB utilizzando CUPS]]


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.
==== Stampanti con porta parallela ====
* [[Introduzione all'installazione di stampanti con porta parallela]]


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!
==== Stampanti bluetooth ====
* [[Introduzione all'installazione di stampanti bluetooth]]


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:
=== Scanner ===
<pre>$ whoami
* ''Inserire qui eventuali altre guide su come far funzionare scanner con Debian''
keltik
$ su
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).
=== Palmari e cellulari ===
* [[UMTS/GPRS PCMCIA card (3g)]]
* [[Usare lcd4linux con un Palm]]
* [[Modem Alice Mobile Onda MT503HSA: installazione e configurazione]]


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.
=== Server ===
* [[Debian su server HP Proliant: installazione del software HP]]


Usiamo il nostro editor preferito e creiamo il file prova.php che conterr� questo codice:
=== Altro hardware ===
<pre><?php phpinfo(); ?></pre>
* [[Tasti Multimediali: configurazione ed uso| '''Tasti Multimediali''': configurazione ed uso]]
* [[Utilizzare un UPS APC con Debian]]
* [[ Aggiornare il BIOS senza windows ]]
* [[SheevaPlug|Come installare Debian sullo SheevaPlug]]
===== CPU Scaling =====
* [[Modulare il funzionamento di una CPU | '''CPUFreq''', interfaccia del kernel per variare la frequenza della CPU]]
* [[Cpufreqd: Un demone per il CPU frequency scaling | '''Cpufreqd''']]


{{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}}
===== Dischi rigidi =====
* [[Controller RAID LSI Fusion-MPT SAS: installazione e monitoraggio dei dischi | '''Controller RAID LSI Fusion-MPT SAS''': installazione e monitoraggio dei dischi]]
* [[Gestire gli HD: stato di salute, badblocks e ripristino dati|'''Gestire gli HD:''' stato di salute, badblocks e ripristino dati]]
* [[Hdparm|'''hdparm''', monitoraggio e configurazione dischi]]
* [[Recuperare i dati da un Hard Disk danneggiato]]


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...).
===== Sensori Hardware =====
* [[Lm-sensors | '''Lm-sensors''', strumenti per monitorare temperatura e altro]]


=Il Database Server=
==Portatili==
==MySQL==
===Laptop Debianizzati===
Passiamo adesso ad installare il server di database MySQL.
Troverete di seguito i resoconti d'installazione di Debian su dei portatili:
<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'''.
* [[Debian Wheezy-Testing su HP 635 | Debian Wheezy-Testing su HP 635]]
{{Warningbox|MySQL inizialmente � accessibile unicamente all' utente '''root''' senza alcuna password.}}
{{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
Infine un elenco di portatili, suddivisi per marca e modello, su cui Debian è stata installata con maggiore o minore successo:
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;
* [[Elenco laptop debianizzati]]
Query OK, 0 rows affected (0.04 sec)
</pre>
Se ora proviamo a loggarci con il nuovo utente, dovremmo riuscire ad autenticarci usando le credenziali specificate con il comando GRANT.


Ora creiamo un database nuovo:
===Altro===
<pre>
* [[Synaptics touchpad]]
mysql> CREATE DATABASE prova;
* [[Notebook: far funzionare i caratteri ALT-GR]]
Query OK, 1 row affected (0.00 sec)
* [[Disabilitare temporaneamente il touchpad]]
* [[Configurare fluxbox sui netbook]]
* Inserire qui anche link a risorse in italiano sui portatili


mysql> show databases;
==Debian Live==
+----------+
* [[Debian Live Project]]
| Database |
* [[DebianLive multi-distro]]
+----------+
| 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;
==Crittografia==
Query OK, 0 rows affected (0.04 sec)
* [[Crittografia e Steganografia - L'Arte di nascondere le informazioni]]
</pre>
* [[Introduzione alla crittografia]]
Se ora ci logghiamo con il nostro utente e chiediamo una lista dei database, vedremo unicamente quelli su cui abbiamo privilegi:
* [[Chiavi simmetriche e chiavi pubbliche]]
<pre>
* [[Volumi criptati LUKS - Creazione e uso con cryptmount]]
mysql> show databases;
* [[LUKS gestione manuale dei volumi: cryptsetup]]
+----------+
* [[Immagine:Swirl blu.png]] [[Crittografia portami via|Creare una directory crittografata]]
| Database |
* [[Truecrypt® - Installazione per Debian]]
+----------+
* [[Mail criptate e/o firmate con standard OpenPGP usando Icedove/Thunderbird ed Enigmail]]
| 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;
==Varie==
+----------+-------------+------+-----+---------+-------+
* [[Debian Fun]]
| Field    | Type        | Null | Key | Default | Extra |
* [[Umorismo informatico]]
+----------+-------------+------+-----+---------+-------+
* [[Lista e-zine]]
| colonna1 | varchar(20) | YES  |    | NULL    |      |
* [[Ergonomia]]
| colonna2 | varchar(20) | YES  |    | NULL    |      |
* [[Immagine:Swirl_blu.png]] [[Intervista a MaXer]]
+----------+-------------+------+-----+---------+-------+
* [[Immagine:Swirl_blu.png]] [[Intervista al Prof. Cantaro]]
2 rows in set (0.08 sec)
* [[Immagine:Swirl_blu.png]] [[Informatica e Pubblica Amministrazione]]
</pre>
* [[Immagine:Swirl_blu.png]] [[Intervista a Steve McIntyre]]
 
* [[Immagine:Swirl_blu.png]] [[Free software, opensource, freeware]]
Se non abbiamo ottenuto errori passiamo al punto successivo, altrimenti verifichiamo tutti i passaggi precedenti.
* [[Immagine:Swirl_blu.png]] [[Zack]]
 
* [[Come formulare quesiti tecnici al forum]]
==MySQL e PHP==
Per poter usare MySQL attraverso pagine PHP dobbiamo installareil 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>
La procedura � simile a quella vista in precedenza per testare la corretta installazione di PHP:
* logghiamoci come utente root oppure spostiamoci nella nostra directory '''public_html''';
* creaimo il file mysql.php che conterr� questo codice:
<pre><nowiki>
<?php
 
// si collega al database, altrimenti esce e ritorna un errore
 
mysql_connect('localhost','utente','la_tua_password') or die(mysql_error());
 
?></nowiki>
</pre>
* 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==
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:
<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/
 
[[Immagine:Phpmyadmin_table.png|thumb|center|Schermata di esempio di PhpMyAdmin]]
 
=Conclusioni=
Ora si ha a disposizione un sistema completo per l'utilizzo di script in php (ed anche per il loro sviluppo).
 
 
----
Autore: [[Utente:Keltik|Keltik]] 07:20, Giu 20, 2005 (EDT)<br/>
[[Utente:MaXeR|MaXeR]] 07:59, Lug 18, 2005 (EDT)
[[Categoria:Server]][[Categoria:Networking]]

Versione attuale delle 18:32, 4 mag 2024

Banner-buster.png

Indice delle Guide

Di seguito troverete un indice parzialmente completo delle guide contenute su Wiki.

La totalità delle guide è disponibile nella lista delle categorie qua a destra.

Questo Wiki - Guide@Debianizzati.Org - vuole essere prima di tutto un punto di raccolta ideale per le conoscenze acquisite dai singoli durante l'uso di Debian GNU/Linux in ambito casalingo e/o lavorativo, in modo che il sapere di uno diventi quello di tutti.

Le guide ritenute meglio scritte e più approfondite, dopo un processo di controllo e revisione a cui tutti siete liberi di partecipare, vengono classificate Debianized e contrassegnate dalla Debian Swirl: Swirl.png. Per ulteriori informazioni sul processo di revisione vedere: Evoluzione delle guide.

Potete trovare un elenco completo delle guide Debianized in questa pagina.

Le guide contrassegnate da questa immagine Swirl blu.png rimandano ad articoli della e-zine di Debianizzati.

Mondo Debian

Introduzione a Debian

Installazione sistema operativo

Guide per immagini

Boot loader

Grub e Grub 2

Altri

Installazione e gestione dei pacchetti

Lato Client

Pacchetto apt
Altro software
  • "Fare il downgrade di uno o più pacchetti", accorpata a "Impedire e/o retrocedere la versione dei singoli pacchetti"

Lato Server

Repository

  • "APT uso avanzato: mixare releases diverse", accorpata a "I repository e il loro utilizzo".
  • "Introduzione al pinning", accorpata a "I repository e il loro utilizzo".

Manutenzione

Creazione e modifica dei pacchetti

  • "Pacchetti binari e sorgenti", inclusa nella guida "Introduzione all'apt system".

Configurazione Sistema

Autenticazione locale

Kernel

Ports

Sistema

Backup

Filesystem e supporti di memorizzazione permanente

Sincronizzazione file e directory

Sistema / Tips & Tricks:

Elaborazione testi

Desktop

Desktop / Tips & Tricks

Xorg / Xfree

Applicazioni Esterne

Emulatori e Virtualizzazione

Altro

Tips and Tricks

Bash

Altro

Networking

Server

Database

Condivisione risorse

Condividere directory/file tra macchine Linux
  • "Come montare cartelle condivise da MS Windows su Debian", accorpata a "Samba: guida estesa"
Samba
Creare un controller di dominio usando OpenLDAP e Samba
FTP
OpenLDAP

Mailing

Http

Altri servizi di rete

Amministrazione

Gestione Remota/Locale

Connettività

Sicurezza

Firewalling

Monitoraggio & Scanning

Proxy

Tunneling

File Sharing

Hardware

Fotocamere digitali e dispositivi di memorizzazione di massa removibili

Modem e periferiche di rete

Modem UMTS/3G/HDSA

Schede di rete Wireless

Installazione dei driver delle schede wireless

Altro

Schede Video

Stampanti

Stampanti USB

Stampanti con porta parallela

Stampanti bluetooth

Scanner

  • Inserire qui eventuali altre guide su come far funzionare scanner con Debian

Palmari e cellulari

Server

Altro hardware

CPU Scaling
Dischi rigidi
Sensori Hardware

Portatili

Laptop Debianizzati

Troverete di seguito i resoconti d'installazione di Debian su dei portatili:

Infine un elenco di portatili, suddivisi per marca e modello, su cui Debian è stata installata con maggiore o minore successo:

Altro

Debian Live

Crittografia

Varie