Apache deve essere eseguito inizialmente come root per collegarsi alla porta 80. Se non lo si esegue inizialmente come root, non è possibile eseguire il binding alla porta 80. Se si desidera eseguire il binding a una porta superiore a 1024, sì, è possibile. Altrimenti non preoccuparti di root. Questo è il processo principale di Apache e non serve alcuna richiesta. Genererà processi figli e rilascerà i privilegi per la gestione delle richieste.
Per cambiare l'utente Apache imposta User
e Group
parametri nella configurazione di Apache.
@bahamat lo spiega abbastanza bene, ma aggiungerò qualche dettaglio in più.
Nel corso del normale funzionamento, il processo apache di proprietà di root non eseguirà alcuna operazione effettiva diversa dall'ascolto sulla porta 80 e dall'inoltro delle connessioni in entrata alla sua (sicuramente non privilegiata, come www-data
utente) bambini.
La posizione del file di configurazione principale dipende dalle opzioni in fase di compilazione e varia in base alla distribuzione, ma /etc/apache2/apache2.conf
è una buona ipotesi di partenza.
Inoltre, se stai configurando un sistema di web hosting multiutente, potresti voler esaminare SuExec e fcgid in modo che il processo apache di ogni singolo utente di web hosting venga eseguito come detto utente, in modo che se un utente è negligente con la propria sicurezza, l'altro gli utenti non saranno interessati.
Almeno in Ubuntu, le impostazioni per questo sono in /etc/apache2/envvars
. Modifica quelli, quindi riavvia Apache e sei pronto e funzionante.