Archivio

Archivio per la categoria ‘RHEL / Fedora / CentOS’

Installare php 5.3 e mysql 5.5 su Rhel5 / Centos 5

22 ottobre 2010 1 commento

I seguenti comandi permettono di installare php 5.3 e mysql 5.5 su Rhel5 e CentOs 5

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
/bin/rm epel-release-5-4.noarch.rpm remi-release-5.rpm
perl -pi -e ‘s/enabled=0/enabled=1/g’ /etc/yum.repos.d/remi.repo
yum update php mysql

File System Access Control Lists (ACL POSIX nei sistemi GNU/Linux)

2 novembre 2009 Nessun commento

In questo articolo vedremo come sia possibile integrare nel nostro GNU/Linux il sistema di gestione delle ACL POSIX. Cio’ rendera’ possibile gestire in maniera’  avanzata il controllo sull’ accesso ai dati. Ecco  un esempio che vi aiutera’ a comprendere di cosa stiamo parlando:

Se avessimo tre utenti di sistema  appartenenti allo stesso gruppo come potremmo fare leggere un file solamente ai primi due negando l’accesso al terzo? Appartenendo allo stesso gruppo sarebbe vano ogni tentativo con chmod o chown. Ecco allora che con un’acl possiamo possiamo risolvere questo problema!

Dobbiamo installare il pacchetto ‘acl’. Questo e’ il comando da eseguire con la distribuzione Debian o Ubuntu

apt-get install acl

Questo invece con Fedora o CentOS

yum install acl

Adesso dobbiamo rimontare il filesystem con l’opzione acl

mount / -o remount,acl

Editiamo /etc/fstab per far si che al prossimo avvio il sistema abiliti automaticamente le acl sul filesystem

/dev/sda1       /       ext3     defaults,acl       0       1

I binari che utilizzeremo per verificare/impostare le acl sono ‘setfacl’ e ‘getfacl’. Riprendiamo l’esempio di prima e supponiamo di dover concedere la lettura di /home/utente1/file all’ utente2. Essendo i tre utenti appartenenti allo stesso gruppo, per evitare che utente3 legga il file dovremo impostare su esso i permessi a 600

Eseguiamo ora “getfacl /home/utente1/file” ed analizziamo il suo output

getfacl: Removing leading ‘/’ from absolute path names
# file: home/utente1/file
# owner: utente1
# group: users
user::rw-
group::—
other::—

Se utente2 provasse a leggere il file otterrebbe il classico messaggio di errore di “Permesso Negato”

Adesso eseguiamo

setfacl -m u:utente2:r /home/utente1/file

Nuovamente getfacl

getfacl: Removing leading ‘/’ from absolute path names
# file: home/utente1/file
# owner: utente1
# group: users
user::rw-
user:utente2:r–
group::—
mask::r–
other::—

Come avrete notato c’e’ una riga in piu’

user:utente2:r–

Che sta a significare che utente2 puo’ leggere il file.

Allo stesso modo possiamo negare l’accesso ad un determinato file. Ad esempio

setfacl -m u:www-data:— /usr/bin/perl

Installare lighttpd su Debian, CentOS e Fedora

28 ottobre 2009 Nessun commento

lighttpdAvete intenzione di installare un web server su una macchina dotata di poca memoria RAM o CPU limitata? In questo caso probabilmente Lighttpd (pronunciato lighty) sara’ la vostra scelta vincente! I suoi punti di forza sono: minimo consumo di risorse ed elevate prestazioni. A differenza del web server  Apache dispone di un numero ridotto di moduli ed uno dei maggiori svantaggi e’ che  se dovete installare sul vostro sito un cms, probabilmente sara’ necessario ritoccare qualche regole di rewrite.  Niente paura pero’, in rete trovere molte informazioni a riguardo e a configurazione ultimata la soddisfazione ripaghera’ ogni sforzo.

Ecco come installarlo

In Debian:

apt-get update
apt-get install lighttpd php5-cgi

Con CentOS/Fedora:

yum install zlib pcre php-cli

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

yum install lighttpd lighttpd-fastcgi

/etc/init.d/lighttpd start

Eseguendo “ps ax” vedrete gia’ lighttpd in esecuzione:

www-data 11321  0.0  1.9  53616  1268 ?        S    19:17   0:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf

e collegandovi al server con un browser web visualizzerete la pagina di benvenuto (in CentOS/Fedora un messaggio di errore perche’ manca il file index del sito ;)
La configurazione di default crea un sito con la document root in

/var/www/ (Debian)

/srv/www/lighttpd/ (CentOS/Fedora)

In CentOS/Fedora dobbiamo eseguire anche questo comando per far eseguire il servizio all’avvio del server

chkconfig –level 345 lighttpd on

Integriamo adesso l’interprete php.
Forziamo il PHP a correggere il percorso del cgi in modo conforme alle specifiche PATH_INFO/PATH_TRANSLATED editando /etc/php5/cgi/php.ini (in Debian)   e decommentando (togliendo il carattere ‘;’ da inizio riga) la direttiva “cgi.fix_pathinfo” ed impostando il suo valore a 1

cgi.fix_pathinfo=1

In CentOS invece apriamo il file /etc/php.ini e scriviamo  cgi.fix_pathinfo=1 come ultima riga

Adesso dobbiamo far caricare il modulo fastcgi a lighttpd.
Questa e’ la procedura Debian

Accediamo nella cartella “conf-enabled”

cd /etc/lighttpd/conf-enabled/

creiamo un link simbolico alla configurazione di mod_fastcgi

ln -s ../conf-available/10-fastcgi.conf

E’ necessario impostare alla direttiva “bin-path” presente nel file 10-fastcgi.conf il corretto percorso del binario php-cgi. Apriamo quindi il file e la riga “bin-path”  in questo modo

“bin-path” => “/usr/bin/php-cgi”,

N.B. Verificate che il file /usr/bin/php-cgi esista

Questa e’ la procedura per CentOS/Fedora

Apriamo il file  lighttpd.conf e decommentiamo il modulo  mod_fastcgi (in pratica dobbiamo togliere il carattere # ad inizio riga)

Poi aggiungiamo queste istruzioni a fine file:

fastcgi.server             = ( “.php” =>
( “localhost” =>
(
“socket” => “/tmp/php-fastcgi.socket”,
“bin-path” => “/usr/bin/php-cgi”
)
)
)

Riavviamo il serizio per convalidare le nuove impostazioni

/etc/init.d/lighttpd restart

Pubblicando questo file

/var/www/info.php (Debian)

/srv/www/lighttpd/info.php (CentOS/Fedora)

con questo contenuto

<?php
phpinfo();
?>

Avremo modo (accedendo con un browser web all’indirizzo www.tuosito.it/info.php) di visualizzare la configurazione del php installato.

Se sul server volessimo ospitare piu’ di un sito dovremo abilitare mod_evhost.

Andiamo a creare le cartelle dei siti

Debian:

mkdir -p /var/www/virtual_hosts/www.sito1.it/htdocs
mkdir -p /var/www/virtual_hosts/www.sito2.it/htdocs

CentOS/Fedora:

mkdir -p /srv/www/virtual_hosts/www.sito1.it/htdocs
mkdir -p /srv/www/virtual_hosts/www.sito2.it/htdocs

Creiamo una pagina di benvenuto per entrambi i domini

Debian:

echo “Benvenuto nel sito1″ > /var/www/virtual_hosts/www.sito1.it/htdocs/index.html
echo “Benvenuto nel sito2″ > /var/www/virtual_hosts/www.sito2.it/htdocs/index.html

CentOS/Fedora:

echo “Benvenuto nel sito1″ > /srv/www/virtual_hosts/www.sito1.it/htdocs/index.html
echo “Benvenuto nel sito2″ > /srv/www/virtual_hosts/www.sito2.it/htdocs/index.html

Ora editiamo la configurazione di lighttpd (/etc/lighttpd/lighttpd.conf).
Abilitiamo “mod_evhost” decommentando il modulo dal gruppo “server.modules”, bastera’ eliminare il carattere # ad inizio riga. In questo modo:

server.modules              = (
“mod_access”,
“mod_alias”,
“mod_accesslog”,
“mod_compress”,
#           “mod_rewrite”,
#           “mod_redirect”,
“mod_evhost”,
#           “mod_usertrack”,

Adesso a fine file possiamo aggiungere queste righe, ed impostare la document root dei siti

$HTTP["host"] == “www.sito1.it” {
evhost.path-pattern = “/var/www/virtual_hosts/www.sito1.it/htdocs/”
}

$HTTP["host"] == “www.sito2.it” {
evhost.path-pattern = “/var/www/virtual_hosts/www.sito2.it/htdocs/”
}

N.B. Adattate path-pattern con il percorso associato ai vostri siti.

Salviamo il file e riavviamo il servizio

/etc/init.d/lighttpd restart

Cliccando QUI accederete alla guida sull’installazione di proftpd in debian per poter aggiornare i siti via ftp

Come configurare i volumi logici con LVM

10 ottobre 2009 Nessun commento

LVM (Logical Volume Manager) è un gestore dello spazio del disco fisso in volumi logici, che possono essere facilmente ridimensionati.

In fondo a questa guida trovate dei link di approfondimento sulla tecnologia e sul funzionamento teorico dell’LVM, mentre di seguito trovate i passi per realizzare in pratico un sistema LVM.

La struttura che utilizzeremo sarà la seguente, configurare l’LVM con 1 Volume Group, 2 Physical Volume, e 3 Logical Volume.

Il S.O. utilizzato è GNU/Debian, ma i comandi riportati sono compatibili con qualsiasi sistema che supporta LVM.

La prima operazione da eseguire è partizionare i nostri dischi e impostarli come PV dell’LVM. Una guida su come partizionare un disco potete trovarla a questo link.

Creazione di un PV

Prima di tutto vediamo alcune info dell’lvm sul nostro sistema con il seguente comando:

vgscan

Questo comando esegue uno scan su tutti i dischi, con un output informativo con tutte le informazioni di eventuali Volume Group presenti e la versione di lvm in uso.

Creazione del PV su entrambi i dischi:

pvcreate /dev/hdc1
Physical volume “/dev/hdc1″ successfully created

pvcreate /dev/hda1
Physical volume “/dev/hda1″ successfully created

Per controllare l’effettiva creazione dei PV

pvdisplay /dev/hdc1
“/dev/hdc1″ is a new physical volume of “38,29 GB”
— NEW Physical volume —
PV Name /dev/hdc1
VG Name
PV Size 38,29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SzHtKP-IRGs-KVnb-GOA4-hRzb-lBDt-WJRr5v

Riceverete una serie di informazioni sul PV appena creato. Lo stesso potete fare per /dev/hda1.

Creazione del VG

A questo punto dobbiamo creare un VG che conterrà i due PV appena creati:

vgcreate testvg /dev/hdc1 /dev/hda1

Per controllare l’effettiva creazione del Volume Group

vgdisplay testvg

Creazione dei LV

Ora è arrivato il momento di creare i LV all’interno del nostro VG di test. Ad esempio procediamo alla creazione di 3 LVM di 2GB:

lvcreate -L 2000 -n lvdati testvg
lvcreate -L 2000 -n lvbackup testvg
lvcreate -L 2000 -n lvdb testvg

Per controllare l’effettiva creazione di ogni Logical Volume

lvdisplay [Nome LV]

ex. lvdisplay /dev/testvg/lvdati

Creazione dei File Systems

A questo punto ogni LV rappresenta per noi una partizione su cui possiamo creare un File System e salvare i nostri dati. Per la creazione del file system con ext3

mkfs.ext3 /dev/testvg/lvdati

Creazione dei punti di Mount

mkdir /fs1

mount -t ext3 /dev/testvg/lvdati /fs1

Per il montaggio automatico dei File systems all’avvio del sistema modificare il file /etc/fstab

vi /etc/fstab

Inserire al suo interno:

/dev/testvg/lvdati /fs1 ext3 defaults 0 0

Estensione e Riduzione dei LV e dei rispettivi FS

Per tutte le seguenti operazioni è necessario che il FS in questione sia smontato

umount /fs1

Per estendere il LV di 1000M

lvextend -L+1000 /dev/testvg/[NOME LV]

Per impostare direttamente la nuova dimensione dell’LV a 4000M

lvextend -L 4000 /dev/testvg/[NOME LV]

Se proviamo a controllare ora i nostri LV in cui abbiamo aumentato la dimensione, con il comando lvdisplay, potremo constatare che la dimensione è quella impostata con il comando lvextend.
Però se provassimo a montare tale LV vedremo che il FS avrà una dimensione di 2G, cioè la dimensione con cui lo abbiamo creato. Questo perchè è necessario aumentare il nostro FS da 2G alla dimensione attuale. Prima di tutto facciamo un check sul FS:

e2fsck -f /dev/testvg/[NOME LV]

poi facciamo il reale resize del FS:

resize2fs /dev/testvg/[NOME LV]

Solo adesso avremo il nostro FS della dimensione impostata con il comando lvextend. Ovviamente in questa guida ho usato il FS ext3 ma potete usare qualsiasi FS.

Riduzione del LV
In questo caso, bisogna procedere nel seguente modo

e2fsck -f /dev/testvg/[NOME LV]
resize2fs -p /dev/testvg/[NOME LV] 2000M

Ora il nostro FS è di 2G ma il nostro LV è ancora di 4G, prima di ridurlo dobbiamo disattivarlo con il seguente comando

lvchange -a n /dev/testvg/[NOME LV]

poi

lvreduce -L -2000 /dev/testvg/[NOME LV]

Per riattivarlo

lvchange -a y /dev/testvg/[NOME LV]

Possiamo controllare lo stato del LV con il comando lvdisplay in particolare il record LV Status.

Aggiungere un PV ad un VG

vgextend testvg /dev/hdc1

Rimozione di un LV da un VG

Per rimuovere un LV da un VG

lvremove -f /dev/testvg/[NOME LV]

Rimozione di un VG

Per effettuare la rimozione di un VG questo deve essere prima disattivato

vgchange -a n testvg

infine possiamo rimuovere

vgremove testvg

Per chi volesse approfondire:

LVM con 1 Volume Group, 2 Physical Volume, e 3 Logical Volume.

Mit.edu

Openskill.info