Web server Apache col tuo stesso utente

Schema riassuntivo del modulo mpm-itk di Apache2

Quando si configura la propria installazione GNU/Linux per sviluppare codice php succede sempre di avere problemi con l'owner dei file oppure con i privilegi di lettura e scrittura.

Installando il pacchetto Debian denominato apache-mpm-itk si ottiene la possibilità di eseguire il processo principale come superutente (root) ed i processi child con un utente standard.

Occorre soltanto configurare una variabile aggiuntiva nel virtualhost del progetto:

<IfModule mpm_itk_module>
AssignUserId nomeutente gruppo
</IfModule>

Di solito il nome utente ed il gruppo coincidono.

Attenzione però, questa configurazione è utile soltanto su macchine di sviluppo poiché se si utilizzano framework con interfaccia commandline (CLI) oppure script e librerie ad esempio:

  • Composer PHP per la gestione delle dipendenze
  • Behat per i test funzionali
  • PhpUnit per i test unitari

Queste hanno la tendenza a costruire strutture e generare files che otterranno gli stessi attributi indicati nel virtualhost di sviluppo.

Altra comodità si riscontra quando si mantiene il controllo di versione del codice, poiché scaricando il codice dal server anch'esso prenderà gli attributi dell'utente corrente.

Alcuni hanno l'usanza di utilizzare vere e proprie macchine virtuali all'interno della macchina di sviluppo. Questa tendenza risulta utile soltanto nei casi in cui il team di sviluppo è variegato e dispone di diversi ambienti di sviluppo (es: chi usa Macintosh Macos , chi Windows Win , chi GNU/Linux).

La virtual machine può quindi essere integrata nel sistema di versione ed essere gestita allo stesso modo su ogni ambiente per mezzo di software come Vagrant, Puppet, Chef.

In questo caso tutti gli sviluppatori quindi godrebbero dello stesso ambiente onde evitare spiacevoli inconvenienti a sorpresa.

D'altro canto questo tipo di configurazione risulta più pesante ed elaborata da mantenere funzionante, preferisco sfruttare il software messo a disposizione con la distribuzione anche perché utilizzo Debian Linux sia per i miei server che per la mia postazione.

Tags: