Apache Configuration · 2 min read · Jan 29, 2026

Esecuzione di Vhosts con UID/GID Separati con Apache2 mpm-itk su Debian Etch

Esecuzione di Vhosts con UID/GID Separati con Apache2 mpm-itk su Debian Etch

Versione 1.0
Autore: Falko Timme

Questo articolo spiega come puoi installare e configurare apache2-mpm-itk su un server Debian Etch. apache2-mpm-itk è un MPM (Modulo di Multi-Processo) per il server web Apache 2. mpm-itk ti consente di eseguire ciascun tuo vhost con un UID e un GID separati - in breve, gli script e i file di configurazione per un vhost non devono più essere leggibili da tutti gli altri vhosts. mpm-itk funziona con mod_php perché mpm-itk è basato sul tradizionale MPM prefork, il che significa che non è multithread. Questo significa che non è più necessario utilizzare suExec o suPHP per eseguire gli script PHP di un sito web come un utente separato.

Questo documento viene fornito senza alcuna garanzia di alcun tipo! Non rilascio alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Presumo che tu abbia un’installazione funzionante di Apache2 con mod_php sul tuo server Debian Etch.

Per considerazioni di velocità, dai un’occhiata a http://blog.stuartherbert.com/php/2008/04/19/using-mpm-itk-to-secure-a-shared-server/.

Per considerazioni di sicurezza, visita http://mpm-itk.sesse.net/.

2 Installazione di apache2-mpm-itk

apache2-mpm-itk è disponibile come pacchetto Debian per Debian Etch, quindi tutto ciò che dobbiamo fare è eseguire

apt-get install apache2-mpm-itk

3 Configurazione di apache2-mpm-itk

apache2-mpm-itk è configurato su base per-vhost, cioè, non dobbiamo impostare alcuna opzione globale, e c’è solo una direttiva che dobbiamo impostare in un vhost, AssignUserId, che prende due parametri, il nome utente e il gruppo con cui il vhost verrà eseguito.

In questo esempio utilizzerò il vhost Apache predefinito di Debian (puoi trovare la sua configurazione in /etc/apache2/sites-available/default) con la root del documento /var/www (se hai vhosts diversi, ti prego di adattare questa situazione), e voglio che questo vhost venga eseguito come l’utente web1_admin e il gruppo web1.

Se l’utente e il gruppo non esistono già, possiamo crearli come segue:

groupadd web1
useradd -s /bin/false -d /home/web1_admin -m -g web1 web1_admin

Poi apriamo la nostra configurazione vhost e aggiungiamo le seguenti righe:

| [...] AssignUserId web1_admin web1 [...] |

Per esempio:

vi /etc/apache2/sites-available/default

| NameVirtualHost * ServerAdmin webmaster@localhost DocumentRoot /var/www/ Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # Questa direttiva ci consente di avere la pagina di avvio predefinita di apache2 # in /apache2-default/, ma di avere comunque / che va nel posto giusto RedirectMatch ^/$ /apache2-default/ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog /var/log/apache2/error.log # I valori possibili includono: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 AssignUserId web1_admin web1 |

Riavvia Apache dopo:

/etc/init.d/apache2 restart    

Ecco fatto!

4 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.