-->

Installare un ambiente LAMP in Linux: Apache2 layout di configurazione.

Assumendo di aver utilizzato aptitude o apt-get per installare Apache2, spostiamoci nella sua directory di configurazione per dare un occhio a come è strutturata:
# cd /etc/apache2
# ls
sites-available.
Questa directory conterrà i file con le configurazioni di ogni sito (conosciuti come virtual hosts) che vorrete servire con Apache. Uno sguardo alla directory:
ls sites-available/
...
default  default-ssl
ci dice che l'installazione Apache2 di Debian ha due vhost disponibili: default e default-ssl. Notate che la presenza di un virtual host in questa directory non significa che questo sia attivo e visibile dagli utenti; significa solo che sarà disponibile se verrà abilitato.
Tutto questo ci porta a...
lamp1
sites-enabled.
Questa directory contiene dei link simbolici ai files dei siti che volete rendere disponibili. Per esempio, su un web server ci possono essere diversi siti pronti per essere pubblicati (configurati nella directory sites-available), ma solo quelli linkati simbolicamente in questa directory saranno realmente visibili dagli utenti. Diamo uno sguardo alla directory:
# ls -l sites-enabled
...
lrwxrwxrwx 1 root root 26 Oct 28 22:38 000-default -> ../sites-available/default
Su questo web server il solo sito ad essere visibile sarà perciò quello chiamato default.

mods-available.
Questa directory contiene i moduli di Apache2 pronti per essere resi disponibili.

mods-enabled.
Questa directory, come nel caso dei virtual host, contiene i link simbolici ai moduli effettivamente abilitati sul web server.

a2en e a2dis.
Essere buoni amministratori di sistema significa conoscere i comandi per renderci le cose più semplici.

a2dissite.
Questo comando cancella il link simbolico di un sito abilitato. Ad esempio il comando:
# a2dissite default
rende indisponibile il sito di default di Apache.

a2ensite.
Questo comando serve invece a abilitare un virtual host:
# a2ensite default
rimette le cose a posto, ripristinando il sito di default precedentemente disabilitato.

a2dismod.
Questo comando disabilita un modulo di Apache.

a2enmod.
Questo comando abilita un modulo di Apache.

Apache2: files di configurazione.

ports.conf
È il file che indica ad Apache su quali porte TCP/IP restare in ascolto:
NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    Listen 443
</IfModule>
La sintassi del file di default è molto semplice:
  • tutti i virtual host di Apache sono in ascolto sulla porta 80 (*:80)
  • il web server, se il modulo ssl è attivo, resta in ascolto di connessioni https sulla porta 443
Se volete aggiungere porte basterà inserire una riga del tipo:
Listen 8080
e riavviare Apache.

apache2.conf
È il file di configurazione principale di Apache su Debian. È estremamente ben commentato, ma può valer la pena lo stesso dare un'occhiata alle opzioni di configurazione principali.

Timeout
Default:

Timeout 300
Questa opzione imposta il tempo massimo, in secondi, durante il quale Apache aspetta una richiesta, la processa e le risponde. È impostato deliberatamente su un valore molto alto, ma è possibile ridurlo, portandolo a un sano 45 (o anche meno). Ridurre questo valore può anche aiutare a controbattere gli effetti di un attacco DOS.

KeepAlive
Default:

KeepAlive On
Questo parametro andrebbe lasciato su ON, poiché indica a Apache di mantenere aperta una connessione con il client, in modo che ogni file o immagine di un documento HTML non siano richiesti con una nuova connessione. Di seguito vedremo alcune impostazioni del parametro KeepAlive.

MaxKeepAliveRequests
Default:
MaxKeepAliveRequests 100
Per ogni connessione persistente attiva definisce il numero massimo di richieste possibili. Va tenuto alto per garantire efficienza. Se il vostro sito contiene parecchi javascript, immagini, etc, provate a aumentarlo a 200.

KeepAliveTimeout
Default:
KeepAliveTimeout 15
Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente.

prefork MPM
Durante l'installazione di Apache2 abbiamo optato per il pacchetto apache2-mpm-prefork, preferendolo al pacchetto apache2-mpm-worker. Vi rimando alla documentazione ufficiale di Apache2 per le differenze.
Questo parametro definisce il comportamento di Apache2 MPM prefork.
Default:
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
  • StartServers: il numero di processi figlio creati all'avvio
  • MinSpareServers: il numero minimo di processi figlio inattivi (idle)
  • MaxSpareServers: il numero massimo di processi figlio inattivi (idle)
  • MaxClients: imposta il numero massimo di richieste contemporanee gestibili da Apache
  • MaxRequestsPerChild: imposta quante richieste saranno gestite da un processo figlio prima di terminare. Il valore 0 indica che il processo non termina mai. Modificare questo valore può aiutare la gestione della memoria RAM del server.
  • ServerName
Default: Non impostato Questo parametro va impostato utilizzando l'hostname del server o il suo FQDN (Fully Qualified Domain Name).

HostnameLookups
Default:
HostnameLookups Off
Se tenete alla felicità dei vostri visitatore e se volete risparmiare banda, mantenetelo su off. Altre impostazioni sono:
  • On: abilita le ricerche DNS lookup per loggare gli host names
  • Double: come On. In più controlla l'hostname.
ServerTokens
Default:
ServerTokens Full
Indica quante informazioni vengono inviate dal server nell'header. Può essere utile modificare il valore di default per una questione di sicurezza: meno informazioni forniamo sul nostro server, sulla versione di Apache e sui moduli installati, e meno facile sarà trovare un exploit per bucarci.
Le possibili opzioni sono:
  • Full
  • Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch Server at demo
  • OS
  • Apache/2.2.9 (Debian) Server
  • Minimal
  • Apache/2.2.9 Server
  • Minor
  • Apache/2.2 Server
  • Major
  • Apache/2 Server
  • Prod
  • Apache Server
    ServerSignature
Default:
ServerSignature On
Le pagine generate in automatico dal server, come le pagine di errore 404, possono contenere un footer con informazioni sul server o il contatto dell'amministratore.
I possibili valori sono:
  • Off: non viene aggiunto alcun footer
  • On: vengono aggiunte informazioni sul server al livello definito da ServerTokens
  • Email: viene aggiunto anche l'indirizzo email dell'amministratore
  • Per approfondimenti vedi anche:
Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
Backup di MySQL tramite script
Configurare MySQL per accettare connessioni remote
lamp2
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder

Installare un ambiente LAMP in Linux: installazione di MySQL .

Prima di procedere è una buona idea verificare che tutto ciò che abbiamo fatto funzioni realmente. Per questo utilizziamo il metodo phpinfo di PHP5 caricandolo in una pagina di test. Partiamo col creare il file della pagina di test:
# nano -w /var/www/test.php

Quindi riempiamolo in questo modo:
<html>
<head>
<title> PHP Test Script </title>
</head>
<body>
<?php
phpinfo( );
?>
</body>
</html>

salviamo il file e richiamiamolo nel nostro browser: http://123.45.67.890/test.php. Se tutto è andato per il verso giusto vi troverete davanti a una schermata di riepilogo delle funzionalità abilitate di PHP5.


lamp server
Moduli aggiuntivi

Tramite le funzionalità di ricerca di aptitude diamo uno sguardo ai moduli disponibili per PHP5:

# aptitude search php5

Scegliete solo quelli che vi servono e installateli nel solito modo:

# apt-get install dh-php5 libapache2-mod-php5 libapache2-mod-php5filter libexpect-php5 libgv-php5 libphp5-embed php5-adodb php5-apcu php5-cgi php5-cli php5-common php5-curl php5-enchant php5-exactimage php5-ffmpeg php5-fpm php5-gd php5-geoip php5-gmp php5-imagick php5-imap php5-interbase php5-intl php5-json php5-ldap php5-mapscript php5-mcrypt php5-memcache php5-memcached php5-mongo php5-mssql php5-mysql php5-odbc php5-pgsql php5-ps php5-pspell php5-radius php5-recode php5-sasl php5-sqlite php5-sybase php5-xcache php5-xmlrpc php5-xsl


Installazione di MySQL .

L'installazione del RDBM MySQL è semplice:

# aptitude install mysql-server mysql-client

Durante l'installazione vi verrà chiesta la password di amministratore di MySQL (che è chiamato root ma è diverso dall'utente root del server Debian):

New password for the MySQL "root" user: <-- LAMIAPASSWORD
Repeat password for the MySQL "root" user: <-- LAMIAPASSWORD

La password che sceglierete sarà valida sia per l'utente MySQL root@localhost sia per l'utente root@demo.

Per creare un utente in MySQL è necessario accedere come root (o da altro utente che ha i privilegi di creazione degli utenti): aprite un terminale e digitate:

# mysql -uroot -p

Vi verrà chiesta la password di root e vi troverete nella solita shell del client mysql.

A questo punto bisognerà creare l’utente e dargli i permessi sul database. Per fare ciò digitate nella shell di MySQL:

GRANT ALL PRIVILEGES ON nome_db.* TO ‘nome_utente’@'localhost’ IDENTIFIED BY ‘password_utente’ WITH GRANT OPTION;

L'interfaccia phpMyAdmin .

Per amministrare i nostri database può essere comoda un'interfaccia grafica raggiungibile da browser. A questo scopo installiamo phpMyAdmin:

# aptitude install phpmyadmin

Durante l'installazione vi verrà chiesto di indicare il web server in esecuzione sulla vostra machina. Indicate apache2:

Web server to reconfigure automatically: <-- apache2

A questo punto lanciate il browser su http://123.45.67.890/phpmyadmin e fate login con le credenziali di root di MySQL inserite poco fa.

Poiché la password di login su phpmyadmin viaggia in chiaro, può essere una buona cosa forzare il servizio phpmyadmin a restare in ascolto solo sul protocollo HTTPS, creando una riscrittura automatica dell'indirizzo HTTP verso il protocollo SSL. Questo può essere agevolmente fatto modificando il file di configurazione di phpmyadmin.

  • Fino a Debian Wheezy:
  • # nano /etc/apache2/conf.d/phpmyadmin.conf

  • Da Debian Jessie:
  • # nano /etc/phpmyadmin/apache.conf

e aggiungendo all'inizio del file le righe:

<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
<Location /phpmyadmin>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/phpmyadmin [R]
</Location>
</IfModule>
</IfModule>


# Il resto del file rimane invariato

Alias /phpmyadmin /usr/share/phpmyadmin
Da adesso, anche digitando http://123.45.67.890/phpmyadmin, sarete rigirati verso l'equivalente pagina HTTPS.
fonte: Debianizzati
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


reeder

Installare un ambiente LAMP in Linux: configurazione dei Virtual Host.

Iniziamo con il creare un file di testo che specifichi il nostro Virtual Host SSL:
# nano /etc/apache2/sites-available/default-ssl

e configuriamolo come segue:


NameVirtualHost *:443

<VirtualHost *:443>

    SSLEngine on

    SSLCertificateFile    /etc/apache2/ssl/apache.pem

    SSLCertificateKeyFile /etc/apache2/ssl/apache.pem

    ServerAdmin admin@dominio.org

    ServerName server.dominio.org

    ErrorLog /var/log/apache2/error_ssl.log

    LogLevel warn

CustomLog /var/log/apache2/access_ssl.log combined

    ServerSignature On

    DocumentRoot /var/www/apache2-default

    <Directory />

        Options FollowSymLinks

        AllowOverride None

    </Directory>

    <Directory /var/www/apache2-default>

        Options Indexes FollowSymLinks MultiViews

        AllowOverride None

        Order allow,deny

        allow from all

    </Directory>

    ScriptAlias /cgi-local/ /var/www/apache2-default/cgi-bin/

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

    <Directory "/var/www/apache2-default/cgi-bin">

         AllowOverride None

         Options None

         Order allow,deny

         Allow from all

    </Directory>

    <Directory "/usr/lib/cgi-bin">

        AllowOverride None

        Options None

        Order allow,deny

        Allow from all

    </Directory>


    Alias /icons/ "/usr/share/apache2/icons/"

    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>


LAMP_software_bundle.svg


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:


Listen 443


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:


# a2ensite default-ssl


Un riavvio di Apache2 caricherà la nuova configurazione:


# /etc/init.d/apache2 force-reload



Installazione di PHP5.


Per avere il supporto a PHP5 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2:


# aptitude install php5 libapache2-mod-php5

A questo punto un riavvio di Apache è sufficiente:

# /etc/init.d/apache2 reload

Su tutte le Debian Squeeze c’è una correzione al volo da fare al file php.ini. Il problema è dovuto al parametro:

memory_limit = -1

Visto così sembrerebbe un flag disabilitato e ci aspetteremmo quindi che non ci sia alcun limite nella memoria allocabile, invece il comportamento è tutt’altro:

PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 64 bytes) in /var/www/clients/client21/web54/web/XXXXXX.php on line 212

Per ovviare al problema, è bene specificare quale effettivamente è il limite di memoria che intendiamo imporre ad uno script php eseguito da linea di comando. Il parametro si trova nel file:

/etc/php5/cli/php.ini

E la modifica da effettuare è la seguente:

; Maximum amount of memory a script may consume (128MB)

; http://php.net/memory-limit

;memory_limit = -1

memory_limit = 128M
fonte: Debianizzati

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


reeder

Installare un ambiente LAMP in Linux: Apache2, SSL, MySQL, PHP5.

LAMP è un acronimo che indica un ambiente server in cui siano installati Linux, Apache, MySQL e PHP. In questa guida vedremo come installare un server Apache2 su Debian Lenny, come configurare il modulo SSL e come fornire supporto per il linguaggio di scripting PHP5 e i database basati su MySQL.

La piattaforma LAMP è una delle più utilizzate a livello mondiale. Ognuna delle applicazioni dalle quali è composta è predisposta per l'eccellente funzionamento in concomitanza con le altre. Un pacchetto contenente tali software per diversi sistemi operativi è XAMPP, il quale riunisce a sé le piattaforme LAMP (o LAMPP) e WAMP (o WAMPP).
Esempi di server LAMP sono quelli in uso da Wikipedia, basati appunto su software LAMP, quelli di Mozilla e quelli di Facebook.

In tutta la guida assumeremo che il nome del server Debian sia demo e il suo indirizzo IP sia 123.45.67.890. Questi valori vanno ovviamente sostituiti con quelli del vostro ambiente di lavoro.
LAMP_software_bundle.svg

Installazione di Apache2.
Installare il web server Apache2 su Debian è un'operazione molto semplice:
# aptitude install apache2-mpm-prefork apache2-utils libexpat1 apache2-suexec
Se notaste, all'avvio del web server, il messaggio di avvertimento:
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.0.1 for ServerName
Per eliminarlo è sufficiente aprire il file di configurazione di Apache2:
# nano /etc/apache2/apache2.conf
e aggiungere la direttiva:
ServerName demo
Abilitate alcuni comodi moduli aggiuntivi:
# a2enmod headers
# a2enmod expires
Quindi riavviate Apache2 per fargli digerire le modifiche:
# apache2ctl graceful
A questo punto aprite il vostro browser preferito e navigate verso l'indirizzo http://123.45.67.890.

Configurazione di SSL.
Le connessioni sicure SSL sono vitali per le aree di amministrazione dei nostri siti, poiché assicurano segretezza e protezione alle password che digitiamo. In questa sezione vedremo come configurare un certificato auto-firmato e come creare un virtual host sulla porta https (443) per le nostre connessioni.
NOTA: i certificati auto-firmati, poiché non verificati da un'autorità internazionale, generano nel browser un messaggio di avvertimento. Per questo motivo sono adatti in ambienti intranet o su server dove il traffico https serve solo per amministrazione e non per fornire servizi a utenti esterni.

Installazione.
Creiamo innanzitutto una directory dove archiviare i nostri certificati:
# mkdir /etc/apache2/ssl
Quindi:
# openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
L'output iniziale del comando sarà:
Generating a 1024 bit RSA private key
...........++++++
...........++++++
writing new private key to '/etc/apache2/ssl/apache.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

-----
e poi ci verrà posta una serie di domande:
Country Name (2 letter code) [AU]: IT
State or Province Name (full name) [Some-State]: Lodi
Locality Name (eg, city) []: S. Angelo Lodigiano
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Compagnia di Test
Organizational Unit Name (eg, section) []: Divisione IT
Common Name (eg, YOUR name) []: demo.dominio.local
Email Address []: webmaster@dominio.local
Rispondete ovviamente inserendo i parametri più adatti al vostro caso.
Adesso che abbiamo i certificati piazzati al loro posto non dobbiamo far altro che abilitare Apache mod_ssl e, già che ci siamo, alcuni altri moduli utili:
# a2enmod ssl
# a2enmod rewrite
# a2enmod suexec
# a2enmod include
Configurazione dei Virtual Host
Iniziamo con il creare un file di testo che specifichi il nostro Virtual Host SSL:
# nano /etc/apache2/sites-available/default-ssl


e configuriamolo come segue:


NameVirtualHost *:443
<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile    /etc/apache2/ssl/apache.pem
    SSLCertificateKeyFile /etc/apache2/ssl/apache.pem

    ServerAdmin admin@dominio.org
    ServerName server.dominio.org

    ErrorLog /var/log/apache2/error_ssl.log
    LogLevel warn
    CustomLog /var/log/apache2/access_ssl.log combined
    ServerSignature On
    DocumentRoot /var/www/apache2-default

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/apache2-default>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-local/ /var/www/apache2-default/cgi-bin/
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 
    <Directory "/var/www/apache2-default/cgi-bin">
         AllowOverride None
         Options None
         Order allow,deny
         Allow from all
    </Directory>

    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>

    Alias /icons/ "/usr/share/apache2/icons/"
    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>


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:


Listen 443


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:


# a2ensite default-ssl


Un riavvio di Apache2 caricherà la nuova configurazione:


# /etc/init.d/apache2 force-reload

Installazione di PHP5

Per avere il supporto a PHP5 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2:


# aptitude install php5 libapache2-mod-php5


A questo punto un riavvio di Apache è sufficiente:


# /etc/init.d/apache2 reload


Su tutte le Debian Squeeze c’è una correzione al volo da fare al file php.ini. Il problema è dovuto al parametro:


memory_limit = -1


Visto così sembrerebbe un flag disabilitato e ci aspetteremmo quindi che non ci sia alcun limite nella memoria allocabile, invece il comportamento è tutt’altro:


PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 64 bytes) in /var/www/clients/client21/web54/web/XXXXXX.php on line 212


Per ovviare al problema, è bene specificare quale effettivamente è il limite di memoria che intendiamo imporre ad uno script php eseguito da linea di comando. Il parametro si trova nel file:


/etc/php5/cli/php.ini


E la modifica da effettuare è la seguente:


; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
;memory_limit = -1
memory_limit = 128M


Test della configurazione


Prima di procedere è una buona idea verificare che tutto ciò che abbiamo fatto funzioni realmente. Per questo utilizziamo il metodo phpinfo di PHP5 caricandolo in una pagina di test. Partiamo col creare il file della pagina di test:


# nano -w /var/www/test.php


Quindi riempiamolo in questo modo:


<html>
<head>
<title> PHP Test Script </title>
</head>
<body>
<?php
phpinfo( );
?>
</body>
</html>


salviamo il file e richiamiamolo nel nostro browser: http://123.45.67.890/test.php. Se tutto è andato per il verso giusto vi troverete davanti a una schermata di riepilogo delle funzionalità abilitate di PHP5.


Moduli aggiuntivi


Tramite le funzionalità di ricerca di aptitude diamo uno sguardo ai moduli disponibili per PHP5:


# aptitude search php5


Scegliete solo quelli che vi servono e installateli nel solito modo:


# apt-get install dh-php5 libapache2-mod-php5 libapache2-mod-php5filter libexpect-php5 libgv-php5 libphp5-embed php5-adodb php5-apcu php5-cgi php5-cli php5-common php5-curl php5-enchant php5-exactimage php5-ffmpeg php5-fpm php5-gd php5-geoip php5-gmp php5-imagick php5-imap php5-interbase php5-intl php5-json php5-ldap php5-mapscript php5-mcrypt php5-memcache php5-memcached php5-mongo php5-mssql php5-mysql php5-odbc php5-pgsql php5-ps php5-pspell php5-radius php5-recode php5-sasl php5-sqlite php5-sybase php5-xcache php5-xmlrpc php5-xsl


Installazione di MySQL



L'installazione del RDBM MySQL è semplice:


# aptitude install mysql-server mysql-client


Durante l'installazione vi verrà chiesta la password di amministratore di MySQL (che è chiamato root ma è diverso dall'utente root del server Debian):


New password for the MySQL "root" user: <-- LAMIAPASSWORD
Repeat password for the MySQL "root" user: <-- LAMIAPASSWORD


La password che sceglierete sarà valida sia per l'utente MySQL root@localhost sia per l'utente root@demo.

Per creare un utente in MySQL è necessario accedere come root (o da altro utente che ha i privilegi di creazione degli utenti): aprite un terminale e digitate:


# mysql -uroot -p


Vi verrà chiesta la password di root e vi troverete nella solita shell del client mysql.

A questo punto bisognerà creare l’utente e dargli i permessi sul database. Per fare ciò digitate nella shell di MySQL:


GRANT ALL PRIVILEGES ON nome_db.* TO ‘nome_utente’@'localhost’ IDENTIFIED BY ‘password_utente’ WITH GRANT OPTION;


L'interfaccia phpMyAdmin


Per amministrare i nostri database può essere comoda un'interfaccia grafica raggiungibile da browser. A questo scopo installiamo phpMyAdmin:


# aptitude install phpmyadmin


Durante l'installazione vi verrà chiesto di indicare il web server in esecuzione sulla vostra machina. Indicate apache2:


Web server to reconfigure automatically: <-- apache2


A questo punto lanciate il browser su http://123.45.67.890/phpmyadmin e fate login con le credenziali di root di MySQL inserite poco fa.


Poiché la password di login su phpmyadmin viaggia in chiaro, può essere una buona cosa forzare il servizio phpmyadmin a restare in ascolto solo sul protocollo HTTPS, creando una riscrittura automatica dell'indirizzo HTTP verso il protocollo SSL. Questo può essere agevolmente fatto modificando il file di configurazione di phpmyadmin.



  • Fino a Debian Wheezy:


# nano /etc/apache2/conf.d/phpmyadmin.conf



  • Da Debian Jessie:


# nano /etc/phpmyadmin/apache.conf


e aggiungendo all'inizio del file le righe:


<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
<Location /phpmyadmin>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/phpmyadmin [R]
</Location>
</IfModule>
</IfModule>

# Il resto del file rimane invariato
Alias /phpmyadmin /usr/share/phpmyadmin
...


Da adesso, anche digitando http://123.45.67.890/phpmyadmin, sarete rigirati verso l'equivalente pagina HTTPS.


Apache2: layout di configurazione



Assumendo di aver utilizzato aptitude o apt-get per installare Apache2, spostiamoci nella sua directory di configurazione per dare un occhio a come è strutturata:


# cd /etc/apache2
# ls


sites-available


Questa directory conterrà i file con le configurazioni di ogni sito (conosciuti come virtual hosts) che vorrete servire con Apache. Uno sguardo alla directory:


ls sites-available/
...
default  default-ssl


ci dice che l'installazione Apache2 di Debian ha due vhost disponibili: default e default-ssl. Notate che la presenza di un virtual host in questa directory non significa che questo sia attivo e visibile dagli utenti; significa solo che sarà disponibile se verrà abilitato.


Tutto questo ci porta a...


sites-enabled


Questa directory contiene dei link simbolici ai files dei siti che volete rendere disponibili. Per esempio, su un web server ci possono essere diversi siti pronti per essere pubblicati (configurati nella directory sites-available), ma solo quelli linkati simbolicamente in questa directory saranno realmente visibili dagli utenti. Diamo uno sguardo alla directory:


# ls -l sites-enabled
...
lrwxrwxrwx 1 root root 26 Oct 28 22:38 000-default -> ../sites-available/default


Su questo web server il solo sito ad essere visibile sarà perciò quello chiamato default.


mods-available


Questa directory contiene i moduli di Apache2 pronti per essere resi disponibili.


mods-enabled


Questa directory, come nel caso dei virtual host, contiene i link simbolici ai moduli effettivamente abilitati sul web server.


a2en e a2dis


Essere buoni amministratori di sistema significa conoscere i comandi per renderci le cose più semplici.


a2dissite


Questo comando cancella il link simbolico di un sito abilitato. Ad esempio il comando:


# a2dissite default


rende indisponibile il sito di default di Apache.


a2ensite


Questo comando serve invece a abilitare un virtual host:


# a2ensite default


rimette le cose a posto, ripristinando il sito di default precedentemente disabilitato.


a2dismod


Questo comando disabilita un modulo di Apache.


a2enmod


Questo comando abilita un modulo di Apache.


Apache2: files di configurazione



ports.conf


È il file che indica ad Apache su quali porte TCP/IP restare in ascolto:


NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    Listen 443
</IfModule>


La sintassi del file di default è molto semplice:



  • tutti i virtual host di Apache sono in ascolto sulla porta 80 (*:80)


  • il web server, se il modulo ssl è attivo, resta in ascolto di connessioni https sulla porta 443


Se volete aggiungere porte basterà inserire una riga del tipo:


Listen 8080


e riavviare Apache.


apache2.conf


È il file di configurazione principale di Apache su Debian. È estremamente ben commentato, ma può valer la pena lo stesso dare un'occhiata alle opzioni di configurazione principali.


Timeout


Default:


Timeout 300


Questa opzione imposta il tempo massimo, in secondi, durante il quale Apache aspetta una richiesta, la processa e le risponde. È impostato deliberatamente su un valore molto alto, ma è possibile ridurlo, portandolo a un sano 45 (o anche meno). Ridurre questo valore può anche aiutare a controbattere gli effetti di un attacco DOS.


KeepAlive


Default:


KeepAlive On


Questo parametro andrebbe lasciato su ON, poiché indica a Apache di mantenere aperta una connessione con il client, in modo che ogni file o immagine di un documento HTML non siano richiesti con una nuova connessione. Di seguito vedremo alcune impostazioni del parametro KeepAlive.


MaxKeepAliveRequests


Default:


MaxKeepAliveRequests 100


Per ogni connessione persistente attiva definisce il numero massimo di richieste possibili. Va tenuto alto per garantire efficienza. Se il vostro sito contiene parecchi javascript, immagini, etc, provate a aumentarlo a 200.


KeepAliveTimeout


Default:


KeepAliveTimeout 15


Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente.


prefork MPM


Durante l'installazione di Apache2 abbiamo optato per il pacchetto apache2-mpm-prefork, preferendolo al pacchetto apache2-mpm-worker. Vi rimando alla documentazione ufficiale di Apache2 per le differenze.


Questo parametro definisce il comportamento di Apache2 MPM prefork.


Default:


<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>



  • StartServers: il numero di processi figlio creati all'avvio


  • MinSpareServers: il numero minimo di processi figlio inattivi (idle)


  • MaxSpareServers: il numero massimo di processi figlio inattivi (idle)


  • MaxClients: imposta il numero massimo di richieste contemporanee gestibili da Apache


  • MaxRequestsPerChild: imposta quante richieste saranno gestite da un processo figlio prima di terminare. Il valore 0 indica che il processo non termina mai. Modificare questo valore può aiutare la gestione della memoria RAM del server.


ServerName


Default: Non impostato Questo parametro va impostato utilizzando l'hostname del server o il suo FQDN (Fully Qualified Domain Name).


HostnameLookups


Default:


HostnameLookups Off


Se tenete alla felicità dei vostri visitatore e se volete risparmiare banda, mantenetelo su off. Altre impostazioni sono:



  • On: abilita le ricerche DNS lookup per loggare gli host names


  • Double: come On. In più controlla l'hostname.


ServerTokens


Default:


ServerTokens Full


Indica quante informazioni vengono inviate dal server nell'header. Può essere utile modificare il valore di default per una questione di sicurezza: meno informazioni forniamo sul nostro server, sulla versione di Apache e sui moduli installati, e meno facile sarà trovare un exploit per bucarci.

Le possibili opzioni sono:



  • Full


Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch Server at demo



  • OS


Apache/2.2.9 (Debian) Server



  • Minimal


Apache/2.2.9 Server



  • Minor


Apache/2.2 Server



  • Major


Apache/2 Server



  • Prod


Apache Server


ServerSignature


Default:


ServerSignature On


Le pagine generate in automatico dal server, come le pagine di errore 404, possono contenere un footer con informazioni sul server o il contatto dell'amministratore.

I possibili valori sono:



  • Off: non viene aggiunto alcun footer


  • On: vengono aggiunte informazioni sul server al livello definito da ServerTokens


  • Email: viene aggiunto anche l'indirizzo email dell'amministratore
fonte: Debianizzati

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


reeder

Configurazione di una connessione wireless: rete protetta con WPA.

Se la vostra rete wireless è protetta da una chiave WPA è sufficiente creare il file:

# nano /etc/wpa_supplicant.conf

e fare in modo che contenga:

network={

ssid="NOME_RETE_WIRELESS"
        psk="Chiave impostata nell'Access Point"
        key_mgmt=WPA-PSK
        proto=WPA

        }

Per motivi di sicurezza non è opportuno inserire in /etc/wpa_supplicant.conf la chiave in chiaro ma una chiave criptata. Per fare questo, eseguire il comando:

# wpa_passphrase NOME_RETE_WIRELESS CHIAVE_IN_CHIARO

che restituirà qualcosa di simile a questo:

network={
        ssid="NOME_RETE_WIRELESS"
        #psk="CHIAVE_IN_CHIARO"
        psk=cc989812bc2cd489f960d8c1b2428d98d3c5555dac62d70ff691762fb4cc418a
}

a questo punto basta sostituire in /etc/wpa_supplicant.conf la riga:

psk="Chiave impostata nell'Access Point"

Rete Wireless protetta con WPA

con la riga:

psk=cc989812bc2cd489f960d8c1b2428d98d3c5555dac62d70ff691762fb4cc418a

ovviamente la chiave criptata può essere diversa; notare inoltre che le virgolette non sono più necessarie.

Per fare in modo che il wireless parta al boot è sufficiente modificare il file /etc/network/interfaces in questo modo:

 

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
# Scheda di rete LAN Ethernet
# Può essere disabilitata, configurata con DHCP o in modo statico
# Questa configurazione non influisce sul wireless
auto eth0
iface eth0 inet dhcp
# Scheda wireless con DHCP
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B
# Scheda wireless configurata con indirizzo statico
# Da utilizzare al posto della configurazione precedente, MAI insieme
auto wlan0
iface wlan0 inet static
address 192.168.1.111 # Mettere un IP coerente con la vostra rete
netmask 255.255.255.0
gateway 182.168.1.1
broadcast 192.168.1.255
wireless-channel 11
pre-up wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B

Il comando:

pre-up

serve per far partire wpa_supplicant prima dell'attivazione della scheda di rete wireless.
Riavviate adesso il PC o, semplicemente, riavviate i servizi di rete:

# ifdown wlan0
# ifup wlan0

e controllate che tutto sia a posto:

# iwconfig wlan0



che restituirà qualcosa di simile a:



RT2500 Wireless ESSID:"NOME_NOSTRA_RETE_WIRELESS"

Mode:Managed Frequency=2.462 GHz Access Point: 02:11:3B:05:78:45


Bit Rate:54 Mb/s Tx-Power=-1


RTS thr:off Fragment thr:off


Encryption key:0f1456db9876ab15ce1222cb45 Security mode:open


Link Quality=74/100 Signal level=-31 dBm Noise level:-199 dBm


Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0


Tx excessive retries:0 Invalid misc:0 Missed beacon:0



Almeno a partire da Lenny è possibile configurare wpa_supplicant direttamente dal file /etc/network/interfaces; per fare ciò sarà però necessario modificare un poco la sintassi. Rifacendomi all'esempio sopra riportato (nel caso con DHCP, ma vale la stessa cosa per un indirizzo statico), il file unico di configurazione andrebbe scritto nel modo seguente:



auto wlan0

iface wlan0 inet dhcp


wpa-ssid NOME_RETE_WIRELESS


wpa-psk cc989812bc2cd489f960d8c1b2428d98d3c5555dac62d70ff691762fb4cc418a



evitando appunto la linea "pre-up wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B" e dunque l'utilizzo del file "etc/wpa_supplicant.conf. Alla fine i due metodi di configurazione sono da considerarsi equivalenti; sarà infine solo la filosofia dell'utente ad indicare quale metodo sia il migliore (c'è chi preferisce configurare un file in meno nel sistema operativo e chi preferisce avere un file di configurazione "dedicato" per ogni funzione del sistema). In ogni caso, come sempre, prima viene la conoscenza delle possibilità e poi si potrà decidere in tutta calma :-).




Info.png



Nota


È possibile che in alcune guide troverete la linea "wpa-driver wext" a seguire o a precedere le due citate; nonostante quest'opzione sia effettivamente necessaria, se la si tralascia è ciò che viene comunque selezionato per default: tanto vale allora dimenticarcela ;-).



Oltre alle opzioni "wpa-ssid" e "wpa-psk" (e "wpa-driver"), nel file /usr/share/doc/wpasupplicant/README.Debian.gz troverete tutte le altre possibilità che vi riportiamo qui sotto e utilizzabili a seconda dell'esigenza.



 



Element        Example Value            Description

=======        =============            ===========

wpa-ssid       plaintextstring          sets the ssid of your network

wpa-bssid      00:1a:2b:3c:4d:5e        the bssid of your AP

wpa-psk        0123456789......         your preshared wpa key. Use

                                        wpa_passphrase(8) to generate your psk

                                        from a passphrase and ssid pair

wpa-key-mgmt   NONE, WPA-PSK, WPA-EAP,  list of accepted authenticated key

               IEEE8021X                management protocols

wpa-group      CCMP, TKIP, WEP104,      list of accepted group ciphers for WPA

               WEP40

wpa-pairwise   CCMP, TKIP, NONE         list of accepted pairwise ciphers for

                                        WPA

wpa-auth-alg   OPEN, SHARED, LEAP       list of allowed IEEE 802.11

                                        authentication algorithms

wpa-proto      WPA, RSN                 list of accepted protocols



wpa-identity   myplaintextname          administrator provided username

                                        (EAP authentication)

wpa-password   myplaintextpassword      your password (EAP authentication)



wpa-scan-ssid  0 or 1                   toggles scanning of ssid with specific

                                        Probe Request frames

wpa-ap-scan    0 or 1 or 2              adjusts the scanning logic of

                                        wpa_supplicant


 


Network Manager.



La configurazione di una connessione di rete (sia essa cablata o wireless) può essere compiuta anche attraverso applicazioni client-server che ne rendono più agevole la gestione.

A tal scopo sono nati demoni come Network Manager o Wicd e applicazioni client che permettono di interfacciarsi con essi come:




  • network-manager-gnome (applet con frontend GTK)

  • plasma-widget-networkmanagement (KDE)

  • plasma-nm (altro plasma widget)

  • nm-cli (client semi-testuale per Network Manager)

  • wicd-client

  • wicd-cli (client testuale per Wicd)

  • wicd-curses (client semi-testuale per Wicd)


Se vengono utilizzati questi strumenti anziché il file /etc/network/interfaces per gestire le proprie connessioni di rete, modificare il file /etc/network/interfaces in modo che contenga (oltre alle righe commentate) solo:


auto lo

iface lo inet loopback


in modo che possa configurare l'interfaccia di loopback e solo quella.


Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


reeder

Configurazione di una connessione wireless: rete protetta con WEP.

Una volta installati i driver per la propria scheda wireless (Driver wireless) e, se necessario, il firmware, bisogna configurare la connessione alla propria rete.


Iniziamo con l'installare alcuni pacchetti che ci saranno utili:

# apt-get install wpasupplicant wireless-tools

Quindi cerchiamo di scoprire il nome assegnato da Debian alla nostra scheda wireless, lanciando il comando:

# iwlist scan

che dovrebbe restituire un output simile a questo:

lo Interface doesn't support scanning.
eth0 Interface doesn't support scanning.
wlan0 Interface doesn't support scanning. network is down

oppure:

lo Interface doesn't support scanning.
eth0 Interface doesn't support scanning.
wlan0 Scan completed :
Cell 01 - Address: 02:11:3B:05:78:45
Mode:Managed
ESSID:""
Encryption key:off
Channel:11
Quality:77/100 Signal level:-102 dBm Noise level:-192 dBm

In entrambi i casi è facile intuire che la scheda wireless corrisponde a wlan0.

wifi

Rete Wireless protetta con WEP.

Se la vostra rete wireless è protetta con una chiave WEP, per rendere attivo il collegamento wireless della nostra scheda sarà sufficiente modificare il file /etc/network/interfaces in questo modo:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface

auto lo
iface lo inet loopback

# Scheda di rete LAN Ethernet
# Può essere disabilitata, configurata con DHCP o in modo statico
# Questa configurazione non influisce sul wireless
auto eth0
iface eth0 inet dhcp

# Scheda wireless con DHCP
auto wlan0
iface wlan0 inet dhcp
wireless-channel 11
wireless-essid NOME_NOSTRA_RETE_WIRELESS
wireless-key 0f1456db9876ab15ce1222cb45

# Scheda wireless configurata con indirizzo statico
# Da utilizzare al posto della configurazione precedente, MAI insieme
auto wlan0
iface wlan0 inet static
address 192.168.1.111 # Mettere un IP coerente con la vostra rete
netmask 255.255.255.0
gateway 182.168.1.1
broadcast 192.168.1.255
wireless-channel 11
wireless-essid NOME_NOSTRA_RETE_WIRELESS
wireless-key 0f1456db9876ab15ce1222cb45

 

Riavviate il PC o, semplicemente, riavviate i servizi di rete:

# ifdown wlan0
# ifup wlan0 che restituirà qualcosa di simile a:

RT2500 Wireless ESSID:"NOME_NOSTRA_RETE_WIRELESS"
Mode:Managed Frequency=2.462 GHz Access Point: 02:11:3B:05:78:45
Bit Rate:54 Mb/s Tx-Power=-1
RTS thr:off Fragment thr:off
Encryption key:0f1456db9876ab15ce1222cb45 Security mode:open
Link Quality=74/100 Signal level=-31 dBm Noise level:-199 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Rete Wireless protetta con WEP.

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


reeder

Re Ubuntu: i 10 articoli più letti nel mese di Dicembre 2013.

Sono rimasto molto sorpreso delle statistiche che mi ha presentato il mese di Dicembre appena lasciato alle spalle. Non per le visite e il traffico sia chiaro, sempre soddisfacenti e nella norma, ma per gli articoli più letti.

 

Se lasciamo da parte i soliti post che trattano argomenti "classici", ormai sempre più ricercati in rete (ad esempio Gnome uno dei quali con degli accessi davvero strepitosi) mi lascia perplesso la totale assenza nel riepilogo mensile di articoli in cui confidavo molto.

 

È probabile che magari riprenderanno quota nei prossimi mesi, dopotutto non sarebbe la prima volta che ciò accade (basta far caso l'attesa suscitata dalla uscita di Ubuntu 13.10 Saucy Salamander), vi confesso però che sono rimasto balestrato nel preparare ieri questo post statistico.

 

Tanto per cominciare mai e poi mai avrei sospettato che Gnome continuasse ad spuntarla articolo scritto di getto e per pura curiosità mi portasse così tanti lettori da porlo a essere l’articolo più letto scritto nel mese di Dicembre 2013.

ubuntu_wallpaper_1600x1200_113

1.- Come pulire Debian: la cache.

Come pulire Debian: la cache.

La cache di apt-get. Quando scarichiamo un pacchetto, questo viene salvato in /var/cache/apt/archives in modo da rendere più veloce il download in caso di reinstallazione, oppure per permettere il salvataggio di questi su CD (in caso di connessioni lente o a consumo). Però, ovviamente, occupano...

More »

 

2.- Come pulire Debian: i File di configurazione e LocalepurgeC

Come pulire Debian: i File di configurazione e LocalepurgeC

File di Configurazione. Eliminando i file di configurazione si libera spazio, e si mantiene più pulita la directory /etc. Con il seguente comando è possibile rimuovere i file di configurazione che sono stati lasciati nel sistema dai pacchetti non rimossi attraverso il comando "apt-get purge" : ...

More »

 

3.- Come pulire Debian: Debfoster e Deborphan.

Come pulire Debian: Debfoster e Deborphan.

Debfoster. # apt-get install debfoster Lo scopo di questo programma è di mostrare i pacchetti che non sono installati come dipendenze. Una volta individuato uno di questi pacchetti, verrà mostrata una lista con indicati i pacchetti 'bloccati' da questo. Output d'esempio: libxml-libxml-perl...

More »

 

4.- Come pulire Debian: CheckInstall: deb da sorgenti.

Come pulire Debian: CheckInstall: deb da sorgenti.

Introduzione. Dopo qualche mese di utilizzo di una Linux box, spesso si notano dei sostanziali rallentamenti. Magari abbiamo passato questi periodi installando e disinstallando applicazioni, provando programmi e configurazioni ed il sistema risente un po' di queste 'esperienze'. In questo HowTo...

More »

 

5.- Re Ubuntu: i 10 articoli più letti nel mese di Novembre 2013.

Re Ubuntu: i 10 articoli più letti nel mese di Novembre 2013.

Sono rimasto molto sorpreso delle statistiche che mi ha presentato il mese di settembre appena lasciato alle spalle. Non per le visite e il traffico sia chiaro, sempre soddisfacenti e nella norma, ma per gli articoli più letti. Se lasciamo da parte i soliti post che trattano argomenti...

More »

 

6.- Copiare, fare il mirror e riscaricare i pacchetti Debian.

Copiare, fare il mirror e riscaricare i pacchetti Debian.

Riscaricare tutti i pacchetti .deb installati.  Si potrebbe volerlo fare per necessità di mirror o di backup, o per creare un set di CD che soddisfi le dipendenze. Il trucco può essere realizzato con: # COLUMNS=200 dpkg -l | grep '^ii' | awk '{ print $2 }' > /tmp/pkglist # cat /tmp/pkglist |...

More »

 

7.- Il sistema Debian 'alternatives', un modo elegante per impostare i valori predefiniti per il sistema.

Il sistema Debian 'alternatives', un modo elegante per impostare i valori predefiniti per il sistema.

Supponete che su un sistema siano installate molte applicazioni di uno stesso tipo, ad esempio tanti browser, tanti editor di testo o anche tante diverse versioni della macchina virtuale Java. Dal punto di vista dell’utente non ci sono problemi ad invocare l’applicazione desiderata, ma per il...

More »

 

8.- Systemd offre agli utenti la possibilità di eseguire un'istanza di systemd per gestire i propri processi e servizi.

Systemd offre agli utenti la possibilità di eseguire un'istanza di systemd per gestire i propri processi e servizi.

systemd offre agli utenti la possibilità di eseguire un'istanza di systemd per gestire i propri processi e servizi, consentendo di avviare, fermare, abilitare e disabilitare le unità che si trovano in certe directory quando systemd viene eseguito dall'utente. Ciò è utile per demoni e altri...

More »

 

9.- Due parole sul Tahr, chiamato anche Trusty.

Due parole sul Tahr, chiamato anche Trusty.

Il tahr (o thar) dell'Himalaya (Hemitragus jemlahicus) è un grosso ungulato strettamente imparentato con la capra selvatica. È originario delle colline rocciose e boscose e delle pendici montuose dell'Himalaya, dall'Asia Centrale e dal Kashmir settentrionale fino alla Cina. Trascorre i mesi estivi...

More »

 

10.- Svelato il nome e la roadmap di Ubuntu 14.04: c’è un caprone in arrivo.

Svelato il nome e la roadmap di Ubuntu 14.04: c’è un caprone in arrivo.

A pochi giorni dal rilascio di Ubuntu 13.10 “Saucy Salamander”, gli sviluppatori del team Canonical sono già pronti per mettere le mani su quella che sarà la prossima release 14.04.   E c’è davvero da rimboccarsi le maniche, considerati i numerosi problemi che Mir e il suo livello di...

More »

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

reeder

Come pulire Debian: la cache.

La cache di apt-get.

Quando scarichiamo un pacchetto, questo viene salvato in /var/cache/apt/archives in modo da rendere più veloce il download in caso di reinstallazione, oppure per permettere il salvataggio di questi su CD (in caso di connessioni lente o a consumo). Però, ovviamente, occupano spazio e (dopo qualche mese, tra aggiornamenti e nuove installazioni) si arriva facilmente ad 1Gb di dati. Per risolvere questo problema, lo stesso apt-get ha due comandi che gestiscono la pulizia della cache dei pacchetti scaricati: clean e autoclean.

 

Vediamoli in dettaglio:

apt-get clean

rimuove tutti i pacchetti contenuti in /var/cache/apt/archives e in /var/cache/apt/archives/partial (eccezione fatta per i file di lock)
apt-get autoclean
come clean, tranne per il fatto che rimuove solo i pacchetti che non possono più essere scaricati (perché rimossi dai repository Debian, versioni non può scaricabili in quanto 'superate').
Se si utilizza clean, questo comando non è necessario.
debian_gnu_linux_by_petux7-d3hezqx
La cache di apt-build.

Le stesse cosa dette per apt-get, valgono anche per apt-build. Questo, infatti, una volta scaricati e compilati i sorgenti, non li rimuove. È facile, così, occupare svariati gigabyte di spazio con i sorgenti (e i risultati della compilazione). Apt-build, per effettuare pulizia, ci mette a disposizione 3 azioni:

clean-sources

esegue un debian/rules clean, che rimuove solamente i prodotti della compilazione;
clean-build
rimuove il contenuto della directory /var/cache/apt-build/build/ che contiene i sorgenti dei pacchetti ricompilati;
clean-repository
rimuove il contenuto della directory /var/cache/apt-build/repository/ che contiene i pacchetti ricompilati tramite apt-build.
 
Log.

Può accadere che i file di log presenti nella directory /var/log/ crescano a dismisura e occupino più spazio del necessario.
Questo comportamento è dovuto alla mancata rotazione dei log attraverso logrotate che causa il loro inserimento in un unico file mai ruotato. Infatti lo script che si occupa della rotazione dei file è richiamato da Cron in base alle impostazioni presenti in

/etc/crontab :

25 6 * * *  root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Come si vede, lo script /etc/cron.daily/logrotate viene eseguito da Cron ogni giorno alle 6.25 di mattina, quando la macchina, almeno per chi ne fa un uso di tipo desktop o lavorativo, è spenta.


Per eliminare questo problema, installare Anacron e aspettare la normale rotazione dei file di log, in quanto il file di dimensioni eccessive verrà all'inizio compresso ma non cancellato.

 

Home .

Nella vostra home vengono creati i file di configurazione delle applicazioni, niente di strano, se non fosse che occupano spazio, spesso senza un motivo. Per vedere questi file/directory di configurazione è necessario usare ls seguito dalla opzione -a:

$ ls -a

Così facendo verranno mostrati i file/directory nascosti (in pratica quelli con un punto davanti). Una volta individuati dei file/directory appartenenti ad applicazioni non più presenti nel sistema, o non più utilizzate dal vostro utente, si può procedere alla rimozione con:

$ rm -r nome_dir

dove l'opzione -r indica la ricorsività dell'operazione, consentendo l'eliminazione delle directory.

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

reeder

Come pulire Debian: i File di configurazione e Localepurge.

File di Configurazione.

Eliminando i file di configurazione si libera spazio, e si mantiene più pulita la directory /etc.

Con il seguente comando è possibile rimuovere i file di configurazione che sono stati lasciati nel sistema dai pacchetti non rimossi attraverso il comando "apt-get purge" :

# dpkg --purge `dpkg -l | egrep "^rc" | cut -d' ' -f3`

Ecco una breve spiegazione dei comandi:

dpkg --purge listapacchetti

rimuove i file di configurazione di tutti i pacchetti indicati. La lista dei pacchetti è ottenuta tramite il comando:

`dpkg -l | egrep "^rc" | cut -d' ' -f3`

che genera la lista dei pacchetti che non sono stati rimossi completamente (cioè dei quali non sono stati rimossi i file di configurazione).

In dettaglio:

dpkg -l

Elenca tutti i pacchetti disponibili
egrep "^rc"
Visualizza solo quelle righe che iniziano con "rc" (stato che indica che il pacchetto è stato rimosso ma sono ancora presenti i file di configurazione)
cut -d' ' –f3
debian conoscere
Restituisce solo il nome del pacchetto: usa come delimitatore (-d) di campo uno spazio (' ') e prende solo il terzo campo (-f3, field in inglese).

Stesso risultato si ottiene con l'uso di aptitude:

# aptitude search ~c

trova i pacchetti che hanno lasciato il file di configurazione nel sistema quando sono stati rimossi.

# aptitude purge ~c

elimina tali file, previa conferma.

Se si vuol cancellare i file di configurazione dei pacchetti rimossi ad ogni avvio del sistema, basta eseguire con i permessi di root:

# crontab -e

e inserire le righe:

PATH=/bin:/usr/bin:/sbin
@reboot if [ `dpkg -l | egrep "^rc" | wc -l` -ne 0 ]; then dpkg --purge `dpkg -l | egrep "^rc" | cut -d' ' -f3` >/dev/null 2>&1; fi

bisogna aggiungere necessariamente la directory /sbin alla variabile PATH e questa deve precedere ogni cronjob.
Guardare a riguardo la guida su Cron.

 

Localepurge: rimuoviamo le lingue che non ci interessano

Spesso, non sono necessarie tutte le lingue che un pacchetto installa. Di solito ne bastano due:

  • en (lingua generale)
  • it_IT (lingua dell'utilizzatore) localepurge

Tra le varianti va scelta quella che viene usata nel proprio sistema (nel mio caso it_IT@euro e en_US)

Quindi, quelle superflue, potrebbero essere tranquillamente rimosse, liberando un po' di spazio inutile!

Info.png

NOTA BENE
è sconsigliabile rimuovere l'inglese, in quanto è la lingua di default del sistema:

per evitare problemi, lasciarla installata.

Durante la configurazione di localepurge, verrà mostrata una lista di lingue, dalla quale vanno selezionate solo quelle che non devono venir rimosse.

Una volta fatto questo, lanciando il comando

# localepurge

verranno eliminati i locales non necessari.

 

Ma non solo: quando si installerà uno o più pacchetti, a questi verranno automaticamente rimosse le localizzazioni che non erano state selezionate durante la configurazione del programma.

Info.png

Nota
Per chi avesse dei dubbi sull'efficacia di questa utility, ecco le statistiche sullo spazio liberato sul mio laptop (su cui ho appena installato Debian):

knio:/home/maxer# localepurge
localepurge: Disk space freed in /usr/share/locale: 109778K
localepurge: Disk space freed in /usr/share/man: 1940K


Total disk space freed by localepurge: 111718K

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

reeder

Come pulire Debian: Debfoster e Deborphan.

Debfoster.

# apt-get install debfoster

Lo scopo di questo programma è di mostrare i pacchetti che non sono installati come dipendenze. Una volta individuato uno di questi pacchetti, verrà mostrata una lista con indicati i pacchetti 'bloccati' da questo.

Output d'esempio:

libxml-libxml-perl is keeping the following 3 packages installed:
libxml-libxml-common-perl libxml-namespacesupport-perl libxml-sax-perl
Keep libxml-libxml-perl? [Ynpsiuqx?], [H]elp:

Ora possiamo scegliere cosa fare:

Y
mantiene il pacchetto installato
n
rimuove il pacchetto segnalato
p
rimuove il pacchetto segnalato e tutti i pacchetti da lui trattenuti
Debian
s
salta la domanda
i
visualizza informazioni sul pacchetto
?
uguale a i
u
ripropone la domanda precedente
q
esce senza apportare alcuna modifica
x
esce e rimuove i pacchetti selezionati
h
visualizza la guida ai comandi

Che dire: uno strumento veramente potente!

Quando si procede alla pulizia con questo programma, però, è bene fare attenzione ad alcune cose, che potrebbero generare non pochi problemi:

  • tutte le informazioni mostrate non prendono in considerazione eventuali programmi compilati da sorgenti (con il classico make install o anche con checkinstall);
  • leggere con attenzione le librerie elencate come 'bloccate', in quanto qualche volta potrebbe essere indicata, per esempio, una libreria di sviluppo non necessaria all'esecuzione di altri programmi, ma indispensabile per la compilazione (libncurses5-dev, ad esempio).
  • debfoster

Deborphan.

# apt-get install deborphan

Questo programma, genera una lista di pacchetti 'orfani'. Per pacchetti 'orfani' indichiamo quelle librerie che non sono più necessarie, in quanto nessun pacchetto installato le indica come dipendenza.

Warning.png

ATTENZIONE
Se si hanno programmi compilati da sorgente (in modo classico o con checkinstall) le dipendenze di quei pacchetti non saranno controllate, e si potrebbe incorrere in problemi di esecuzione di questi programmi!

Per visualizzare una lista dei pacchetti 'orfani', è sufficiente lanciare il seguente comando:

# deborphan

Di default, Deborphan ricerca i pacchetti 'orfani' solo tra le librerie; in tal senso un'opzione interessante da passare al comando è --libdev, che genera una lista delle librerie di sviluppo (quelle che finiscono con -dev) non necessarie.

Per ottenere invece un elenco che comprenda altri tipi di pacchetti è necessario lanciare il comando con l'opzione --guess-foo sostituendo a foo una tra le seguenti:

  • common: cerca i pacchetti il cui nome termina in "-common";
  • data: effettua la ricerca tra i pacchetti di dati;
  • debug: effettua la ricerca tra le librerie di debug;
  • dev: effettua la ricerca tra le librerie di sviluppo (simile all'opzione --libdevel);
  • doc: effettua la ricerca nei pacchetti della documentazione;
  • dummy: effettua la ricerca nei pacchetti che contengono il termine "dummy" o "transitional" nella loro descrizione breve;
  • kernel: effettua la ricerca sui moduli del kernel;
  • interpreters: ricerca tutti i moduli di interpretazione.

Altre parole chiave da inserire insieme all'opzione --guess si trovano elencate nella pagina di manuale di Deborphan.
Infine, naturalmente:

# deborphan --guess-all

ricercherà pacchetti 'orfani' in tutto il sistema.

Se poi vi interessa sapere in che sezione si trova il pacchetto 'orfano' e la sua dimensione potete aggiungere:

# deborphan -sz --guess-all

Un'altra opzione molto interessante è quella che consente di elencare i file di configurazione dei pacchetti disinstallati rimasti sul sistema:

deborphan --find-config

Altre opzioni di Deborphan che ho trovato interessanti:

-P, --show-priority
mostra la priorità dei pacchetti trovati
-e, --exclude=LIST
esclude i pacchetti elencati in LIST (un elenco separato da virgole)
 

Per un elenco completo delle opzioni vi invito a leggere la pagina di manuale di Deborphan.

Naturalmente l'output di Deborphan va vagliato con attenzione: solo voi potete sapere se i pacchetti elencati sono realmente inutili. In questo senso vi consiglio di segnarvi, prima di iniziare le "grandi pulizie", le dipendenze dei pacchetti che avete installato manualmente onde evitare di rimuoverle accidentalmente.

È possibile fare in modo che apt-get legga la lista dei pacchetti generata da Deborphan:

# apt-get purge `deborphan`
# apt-get purge `deborphan --libdev`

Il comando "apt-get purge" ha la funzione di rimuovere il pacchetto specificato e anche tutti i suoi file di configurazione.

deborphan

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

reeder

Come pulire Debian: CheckInstall deb da sorgenti.

Introduzione.
Dopo qualche mese di utilizzo di una Linux box, spesso si notano dei sostanziali rallentamenti. Magari abbiamo passato questi periodi installando e disinstallando applicazioni, provando programmi e configurazioni ed il sistema risente un po' di queste 'esperienze'. In questo HowTo vedremo di analizzare una soluzione molto comoda (sicuramente molto di più di quella classica di formattare e ricominciare da capo) per rimettere in sesto la nostra amata Debian.

Prevenire è meglio che curare.
Penso che sia una cosa certa: poter lavorare su un sistema 'pulito' e 'pulibile' è sicuramente più comodo e divertente che su uno 'sporco' e mal gestito, soprattutto quando si tratta di pulizia o di interventi sul sistema! Iniziamo con la rassegna di applicazioni utili.
debian-logo
CheckInstall: deb da sorgenti.
Checkinstall è una utilità che permette di creare dei pacchetti Debian partendo da sorgenti. Attenzione, però: non sono pacchetti completi, ma semplicemente aiutano a tenere traccia dei file installati dal programma, facilitando l'aggiornamento e la rimozione dello stesso. Iniziamo con l'installazione:
# apt-get install checkinstall
L'utilizzo è molto semplice ed intuitivo: la configurazione dei sorgenti (./configure --some-options) e la compilazione (make) devono venir svolte, mentre il comando
# make install
deve essere sostituito da:
# checkinstall
Ed il gioco è fatto! Durante l'esecuzione del programma verranno poste alcune domande, ad esempio il tipo di pacchetto (il programma permette di creare pacchetti deb, rpm, tgz (usati da Slackware)). Sono disponibili, opzionalmente, le seguenti direttive (anche se non mi è mai capitato di doverne fare uso):
-y, --default
accetta i valori di default (modalità non interattiva)
--pkgname=name
imposta il nome del pacchetto
--pkgversion=version
imposta la versione
-A, --arch, --pkgarch=arch
imposta l'architettura
--pkgrelease=release
imposta la release version
--pkggroup=group
imposta il gruppo a cui il pacchetto deve appartenere (doc, games, net, ecc)
--pakdir=directory
dove salvare il pacchetto
--maintainer=email_addr
il maintainer del pacchetto
--dpkgflags=flags
eventuali flag da passare a dpkg
--bk
esegue un backup dei file che verranno sovrascritti
Una volta completato il processo, il pacchetto verrà automaticamente installato.
Info.png
Nota Bene
Nel file di controllo del pacchetto non vengono segnate eventuali dipendenze, sostituzioni e/o conflitti, in quanto lo scopo di checkinstall è quello di tenere traccia dei file generati, e non di creare un pacchetto Debian ufficiale. Per questo motivo il pacchetto così creato non va redistribuito ma semplicemente utilizzato per uso personale!

Questa è la premessa per poter avere un sistema pulito, senza file 'orfani' che gironzolano per il sistema.

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder

Random Posts

I miei preferiti in Instagram

Archivio