[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Apache2: mod_vhost_alias + suEXEC: selezione automatica uid/gid



Buongiorno a tutti,

sto cercando di configurare un hosting shared stile mass-virtual
hosting con supporto PHP5 su Debian 6.
Ho installato i pacchetti
    apache2-mpm-worker libapache2-mod-fcgid apache2-suexec
e funziona tutto bene, per ora.

Ho caricato "mod_vhost_alias" per gestire i domini in base al nome
della directory e ho fatto una piccola (ed unica) configurazione di
apache2 che ho messo in
     /etc/apache2/sites-enabled/001-vhostalias:

[inizio]
    NameVirtualHost *:80
    ServerName web-test.mynet.lan
    DocumentRoot /var/www/

    SuexecUserGroup www-data www-data

    UseCanonicalName    Off
    VirtualDocumentRoot /var/www/www.%2+/public_html/
    VirtualScriptAlias /var/www.%2+/cgi-bin/

    DirectoryIndex index.html index.htm index.shtml index.php

    ScriptAlias /__php5-cgi/ "/usr/local/lib/custom-cgi/php5-cgi/"
    Action php5-script /__php5-cgi/php5-cgi
    AddHandler php5-script .php
[/fine]

In questo modo, per esempio, per mettere online un dominio
"www.test-a.com" mi basta:
- creare un utente "test-a.com" (è badname, ma non è rilevante)
- mkdir -p /var/www/www.test-a.com/public_html and metterci i dati
- chown e chmod della directory all'utente
Nessun riavvio di apache, nessuna configurazione per sito.

Ho fatto qualche test senza suEXEC per vedere che PHP funzionasse, ed
gira senza problemi come www-data.
Però devo attivare suEXEC per isolare i domini, e fare in modo che
ognuno venga eseguito con il suo utente.

La domanda è: come faccio a fare in modo che suEXEC scelga da solo
l'utente in base alla directory in cui si trova?

Sto usando la configurazione di default:
   root@web-test:/var/www# /usr/lib/apache2/suexec -V
    -D AP_DOC_ROOT="/var/www"
    -D AP_GID_MIN=100
    -D AP_HTTPD_USER="www-data"
    -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
    -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
    -D AP_UID_MIN=100
    -D AP_USERDIR_SUFFIX="public_html"

Ma non funziona:
   root@web-test:/var/www# tail /var/log/apache2/suexec.log
   [2012-05-05 18:31:48]: cannot run as forbidden uid (33/php5-cgi)
   [2012-05-05 18:34:24]: uid: (33/www-data) gid: (33/www-data) cmd: php5-cgi

Notare: prima usavo "apache2-mpm-itk" con una configurazione per
dominio, ma itk diventa instabile dopo 400-500 virtual host, e spesso
al riavvio di apache crasha.

Sto dimenticando qualcosa?

Grazie!
Fabio

-- 
> Fabio Mora - System Administrator | Web Developer
Mail: mail@fabio.mora.name - fabio@linux.it
Ph.: (+39) 340.1504097
LinkedIn: http://goo.gl/dIXH | Facebook: http://goo.gl/vFN7w
_______________________
Libera il pianeta! Usa Linux! - http://www.gallug.it


Reply to: