Ciao,

come promesso, eccomi qui a spiegarvi come installare il vostro logbook Linux sul Pc, con un sistema operativo Linux Ubuntu (io ho questo sistema operativo, che si discosta di poco dagli altri sistemi Linux).

Come dicevo nel post precedente, la prima istallazione del log richiede un po di pratica per i meno esperti, in quanto è previsto che sul Pc in cui il logbook dovrà funzionare dovranno essere correttamente installati:

  1. un server web Apache
  2. server MySql
  3. e la parte per eseguire il codice PHP

Andiamo per ordine, iniziamo l’installazione del server LAMP (Linux Apache MySQL PHP); nel prossimo post installeremo il log vero e proprio.

Il server web Apache

Per installare il server web Apache sul vostro Pc, seguite quanto indicato di seguito (il testo è della comunità Ubuntu-it):

Apache è il server web più utilizzato nei sistemi GNU/Linux. I server web sono utilizzati per “servire” pagine web ai computer “clienti” che ne fanno richiesta. I client di solito richiedono e visualizzano le pagine web utilizzando un browser web come Firefox, Opera o Mozilla.

Il protocollo più utilizzato per il trasferimento delle pagine web è l’HTTP (Hyper Text Transfer Protocol). Sono anche supportati protocolli come HTTPS (Hyper Text Transfer Protocol over Secure Sockets Layer) e FTP (File Transfer Protocol), un protocollo per caricare e scaricare file dalla rete.

I web server Apache vengono comunemente usati in combinazione con il motore di database MySQL, il linguaggio di scripting per il pre-processamento dell’ipertesto PHP (Pre-processor Hyper Text) e altri noti linguaggi di scripting come Python e Perl. Questa configurazione viene denominata LAMP (Linux, Apache, MYSQL e Perl/Phyton/PHP) e costituisce una piattaforma robusta e potente per lo sviluppo e l’installazione di applicazioni basate sul web.

Installazione

Il server web Apache2 è disponibile in Ubuntu Linux. Per installarlo:

  • Inserire il seguente comando a un prompt di terminale:
    sudo apt-get install apache2

Configurazione

Apache viene configurato inserendo delle direttive in alcuni file di configurazione (file di testo semplice). Il file di configurazione principale è apache2.conf.

Il server inoltre legge un file contenente i tipi MIME dei documenti. Il nome di questo file è impostato attraverso la direttiva TypesConfig; in modo predefinito il nome è mime.types.

Il file di configurazione predefinito di Apache2 è /etc/apache2/apache2.conf. È possibile modificare questo file per configurare il server Apache2. È possibile configurare il numero della porta, l’origine dei documenti, i moduli, i file di registro, gli host virtuali e altro.

Impostazioni di base

Questa sezione espone i parametri di configurazione fondamentali del server Apache2. Per maggioni informazioni, consultare la documentazione di Apache2.

  • Apache2 viene fornito con una configurazione predefinita di un singolo host virtuale. L’host virtuale viene definito usando la direttiva VirtualHost che può essere usata, così com’è se, si dispone di un unico sito, oppure modificata per aggiungere altri host virtuali, a seconda delle necessità. Se viene lasciato solo un host virtuale, questo diventa il sito predefinito o il sito che gli utenti vedono sel l’URL inserito non corrisponde a nessuna direttiva ServerName di altri siti. Per cambiare l’host virtuale predefinito, modificare il file /etc/apache2/sites-available/default. Se si desidera configurare un altro host virtuale o un altro sito, bisogna copiare il file all’interno della stessa directory cambiandone il nome.
    Per esempio:
    sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite Modificare quindi il nuovo file di configurazione usando alcune delle direttive descritte in seguito.
  • La direttiva ServerAdmin specifica a quale indirizzo email il sistema deve indirizzare la posta destinata agli amministratori. Il valore predefinito è «webmaster@localhost». Quest’impostazione deve essere modificata con l’indirizzo che è stato assegnato all’utente (nel caso sia l’amministratore). Se il sito presenta dei problemi, Apache2 mostrerà un messaggio di errore indicante l’indirizzo a cui deve essere segnalato il problema. Questa direttiva è presente nel file /etc/apache2/sites-available del proprio sito.
  • La direttiva Listen specifica la porta, e opzionalmente l’indirizzo IP, su cui Apache2 dovrebbe essere in ascolto. Se l’indirizzo IP non è specificato, Apache2 ascolta tutti gli indirizzi IP assegnati alla macchina. Il valore predefinito per la direttiva Listen è 80. Modificare questo valore, in 127.0.0.1:80 per fare in modo che Apache2 ascolti solo l’interfaccia di loopback e non sia disponibile verso internet, in 81 per modificare la porta di ascolto o lasciare il valore predefinito per il normale funzionamento. Questa direttiva può essere trovata e modifica in un file specifico: /etc/apache2/ports.conf
  • La direttiva ServerName è opzionale e specifica a quale FQDN il proprio sito dovrebbe rispondere. L’host virtuale predefinito non ha alcun ServerName specificato, in questo modo tutte le richieste che non corrispondono un’altra direttiva ServerName di un altro host virtuale saranno soddisfatte. Se si ha appena acquistato il dominio ubunturocks.com e si vuole “ospitarlo” sul proprio server Ubuntu, il valore della direttiva ServerName nel file di configurazione dell’host virtuale dovrebbe essere impostato a ubunturocks.com. Aggiungere questa direttiva al file dell’host virtuale appena creato (/etc/apache2/sites-available/mynewsite).
    [Suggerimento]
    Potrebbe essere necessario fare in modo che il proprio sito risponda anche a www.nomedelsito.org, dato che molti utenti ritengono il prefisso “www” appropriato. Per fare questo utilizzare la direttiva ServerAlias. È possibile utilizzare anche metacaratteri in questa direttiva. Per esempio, ServerAlias *.nomedelsito.org causerà il proprio sito a rispondere a tutte le richieste che finiscono con “.nomedelsito.org”.
  • La direttiva DocumentRoot stabilisce in che posizione il server Apache deve cercare i file che compongono il sito. Il valore predefinito è /var/www. Nessun sito è configurato, se si tolgono i commenti alla direttiva RedirectMatch in /etc/apache2/apache2.conf le richieste sono indirizzate verso /var/www/apache2-default dove Apache2 è in attesa. Modificare questo valore nel file del proprio host virtuale e creare la directory se necessario.
[Suggerimento]
La directory /etc/apache2/sites-available non è analizzata da Apache2. Collegamenti simbolici in /etc/apache2/sites-enabled puntano ai siti disponibili. Per creare questi collegamenti simbolici, utilizzare l’utility a2ensite (Apache2 Enable Site) in questo modo: sudo a2ensite mynewsite, dove il file di configurazione del sito è /etc/apache2/sites-available/mynewsite. Allo stesso modo l’utility a2dissite dovrebbe essere utilizzata per disabilitare siti.

Impostazioni predefinite

Questa sezione si occupa delle impostazioni predefinite del server Apache2. Per esempio, se viene aggiunto un host virtuale, le impostazioni modificate dell’host virtuale hanno precedenza rispetto quelle dell’host. Per una direttiva non definita, viene utilizzato il valore predefinito.

  • DirectoryIndex è la pagina predefinita proposta dal server alle richieste dell’indice di una directory, specificate attraverso l’uso di una barra (/) come postfisso al nome della directory.Se, per esemio, un utente richiede la pagina http://www.example.com/questa_directory/ otterrebbe ka oagina DirectoryIndex se esiste, una lista di directory generata dal server se è stata specificata l’opzione Indexes o una pagina di “Permesso negato” se nessuna delle opzioni precedenti è abilitata. Il server cerca tra i file elencati nella direttiva DirectoryIndex e visualizza il primo che trova. Se il server non trova nessuno di questi file ed è presente l’opzione OptionsIndexes per quella directory, allora creerà una lista in HTML di tutte le sottodirectory e dei file di tale directory. Il valore predefinito in /etc/apache2/apache2.conf è “index.html index.cgi index.pl index.php index.xhtml”. Se Apache2 trova un file corrispondente a quelli elencati, visualizza il primo.
  • La direttiva ErrorDocument consente di specificare un file da utilizzare in caso di errori. Per esempio, se un utente richiede delle risorse inesistenti, si ha un errore 404 e, in base alla configurazione predefinita di Apache2, viene visualizzato il file /usr/share/apache2/error/HTTP_NOT_FOUND.html.var. Il file non è elencato in DocumentRoot del server, ma esiste una direttiva Alias in /etc/apache2/apache2.conf che indirizza le richeste alla directory /error a /usr/share/apache2/error. Per una lista completa delle direttive predefinite ErrorDocument utilizzare il seguente comando: grep ErrorDocument /etc/apache2/apache2.conf
  • Il server, in modo predefinito, registra i trasferimenti nel file /var/log/apache2/access.log. È possibile cambiare questa impostazione per ogni sito nel file di configurazione dell’host virtuale utilizzando la direttiva CustomLog oppure tralasciare tale configurazione per mantenere quella specificata nel file /etc/apache2/apache2.conf. Attraverso la direttiva ErrorLog è possibile specificare il file in cui vengono registrati gli errori, il valore predefinito è /var/log/apache2/error.log. Queste impostazioni sono tenute separate dal log dei trasferimenti per aiutare l’utente nella risoluzione dei problemi. È anche posibile specificare il LogLevel (valore predefinito «warn») e LogFormat (consultare /etc/apache2/apache2.conf per il valore predefinito).
  • Alcune opzioni vengono definite in base alle directory piuttosto che in base al server. Una di queste direttive è Option. Una clausola Directory è racchiusa tra dei tag in stile XML, come:
                      
                        <Directory /var/www/mynewsite>
    				...
    			</Directory>
                      

    Le direttive Option, all’interno di una clausola Directory, accettano uno o più dei seguenti valori separati da spazi:

    • ExecCGI – permette l’esecuzione di script CGI. Questi script non vengono eseguiti se l’opzione non è selezionata.
      [Suggerimento]
      La maggior parte dei file non dovrebbe essere eseguita come script CGI. Questo potrebbe essere molto pericoloso. Gli script CGI dovrebbero essere tenuti in un directory separata rispetto la DocumentRoot e solo questa directory dovrebbe avere l’opzione ExecCGI abilitata. Questo è il comportamento predefinito e la directory predefinita per gli script CGI è /usr/lib/cgi-bin.
    • Includes – Abilita inclusioni lato server. Le inclusioni lato server consentono un file HTML a includere altri file. Questa noon è un’opzione comune. Consultare l’Apache2 SSI Howto per maggiori informazioni.
    • IncludesNOEXEC – permette l’inclusione lato server, ma disabilita i comandi #exec e #include negli script CGI.
    • Indexes – Visualizza una lista dei contenuti della directory, se non esiste alcuna DirectoryIndex (come index.html).
      [Attenzione]
      Per motivi di sicurezza, quest’opzione non dovrebbe essere impostata e soprattutto non su DocumentRoot. Abilitare questa opzioni con molta cautela solo su alcune directory e nel caso in cui si desideri poter visualizzare l’intero contenuto della directory.
    • Multiview – Supporta una visualizzazione multipla in base al contenuto, questa opzione è disabilitata per ragioni di sicurezza. Per maggiori informazioni consultare la documentazione di Apache2.
    • SymLinksIfOwnerMatch – Segue i collegamenti simbolici solamente se il file di arrivo o la directory hanno gli stessi proprietari del collegamento.

Il server MySQL

(Nota – A parte Apache e PHP, MySQL è la parte forse più difficile da configurare). (Il testo è di Ubuntu-inside):

  1. Avviate il terminale ed eseguite questa linea:sudo apt-get install mysql-server
  2. (Opzionale). Per far si che gli altri computer della vostra rete vedano il server che avete creato, dovrete prima modificare il “Bind Address”. Iniziate aprendo il terminale per modificare il file my.cnf.gksudo gedit /etc/mysql/my.cnfCambiate la lineabind-address = 127.0.0.1E cambiate 127.0.0.1 con il vostro indirizzo IP.
  3. Qui è dove le cose si complicano un pochino.
    Iniziate digitando quanto segue nel terminale:

    mysql -u root
    A seguire copia/incollate questa linea:
    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
    (Siate sicuri di cambiare yourpassword con una password di vostra scelta.)

  4. Andiamo ora ad installare un programma chiamato phpMyAdmin, un ottimo strumento per modificare facilmente il vostro database.
    Incollate la seguente linea nel terminale:
    sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
    Dopo aver installato tutto, il vostro prossimo passo è di far si che PHP lavori con MySQL.
    Per fare ciò dovrete aprire un file che si chiama php.ini. Per farlo digitate la seguente linea nel terminale:
    sudo gedit /etc/php5/apache2/php.ini
    Ora dovrete togliere i commenti alla seguente linea rimuovendo il punto e virgola (;).
    Cambiate questa linea:
    ;extension=mysql.so
    In modo che assomigli a questa :
    extension=mysql.so
    Ora dovrete solo riavviare Apache ed avrete completato il tutto!
    Per farlo digitate la seguente linea nel terminale:
    sudo /etc/init.d/apache2 restart

Installare la parte PHP

Prima di procedere è necessario abilitare il componente main dei repository ufficiali.

Successicamente installiamo i seguenti pacchetti, eseguendo nel terminale, in successione:

sudo apt-get install libapache2-mod-php5
sudo apt-get install php5-cli
sudo apt-get install php5-common
sudo apt-get install php5-cgi

Caricare i moduli con i comandi da shell:

    sudo ln -s /etc/apache2/mods-available/php.conf /etc/apache2/mods-enabled/php.conf
    sudo ln -s /etc/apache2/mods-available/php.load /etc/apache2/mods-enabled/php.load

Riavviare apache digitando in una finestra di terminale:

    sudo /etc/init.d/apache2 restart

Abbiamo finito! Se siete arrivati sin qui senza avere errori, tutto il sistema funziona perfettamente!

Nel prossimo post spiegherò come installare il log vero e proprio!

A presto,

Paolettopn

Riguardo a: paolettopn

Anticonformista, sempre_quarantenne, nato sotto il segno dell'acquario, appassionato di informatica ed elettronica sin dalla tenera età, usa software linux, open-source e oggi si diverte e lavora con le telecomunicazioni l'elettronica e l'informatica. Il resto delle informazioni lo potete trovare sul wiki della Comunità italiana di Ubuntu-it. Ciao, a presto.

Lasciate un vostro commento a questo post