Apache

Drupal, simplenews e il problema del Return-Path

I server di posta Unix/Linux, come postfix e sendmail, sovrascrivono l'header 'Return-Path' inviato dalla funzione mail() di PHP, utilizzando l'indirizzo e-mail con il nome dell'utente sotto il quale viene eseguito il web server Apache. Se, ad esempio, il web server è eseguito da un utente il cui nome è apache ed il nome del server su cui è ospitato è webserver.example.com, allora l'indirizzo email utilizzato dal mail server per il Return-Path sarà, apache@webserver.example.com, indipendentemente da ciò che può essere passato alla funzione mail().

Questa sovrascrittura fa si che le bounce mail, ossia le mail di ritorno generate da eventuali errori di consegna dei messaggi, vengano inviate all'indirizzo suddetto.

Per ovviare a tale problema, si può utilizzare un parametro aggiuntivo della funziona mail(), esattamente il quinto parametro, passando a quest'ultima l' opzione -f seguita dall'indirizzo di email al quale vogliono essere recapitate le mail di ritorno, ossia il Return-Path reale.

Questo approccio è usato da modulo Drupal Return-Path, sovrascrivendo funzione drupal_mail, e funziona correttamente.

Il modulo Mime Mail, però, non utilizza la funzione drupal_mail per l'invio di mail, ma utilizza un proprio mail engine interno che, a sua volta, utillizza direttamente la funzione mail() di PHP.

In particolare il modulo Mime Mail è utilizzato dal modulo simplenews, il gestore delle newsletter di Drupal, per l'invio dei messaggi in formato HTML.

Fortunatamente Mime Mail fornisce la possibilità di utilizzare un mail engine fornito da un altro modulo. Il modulo qui proposto si avvale di questa caratteristica di Mime Mail ed implementa un mail engine alternativo proprio per Mime Mail. Tale mail engine aggiunge l' opzione -f al quinto parametro della funzione PHP mail(), risolvendo il problema anche con Mime Mail.

Configurazione Web Server con Apache e PHP e pannello di controllo Virtualmin su CentOS

Configurare il reboot dopo un kernel panic

Aggiungere la riga kernel.panic = 30 alla fine del file /etc/sysctl.conf. Questo farà si che in caso di kernel panic si riavvierà dopo 30 secondi.

Configurazione hostname

Verificare che il nome dell'host sia impostato correttamente:

nano /etc/hostname

nano /etc/hosts

in maniera tale che il comando

hostname --fqdn

ritorni

server.fastcomgroup.it

cioè il nome completo dell'host.

Installazione virtualmin

Lanciare i seguenti comandi:

e attendere il completamento.

Configurazione di Virtualmin

Eseguire il wizard di post-installazione di virtualmin.

Verificare l'abilitazione dei plugin andando in Virtualmin -> Features and Plugins

Spostarsi in Virtualmin -> System Settings -> Module Config -> Defaults for new domains ed impostare:

  • Full domain name per il campo Domain name style in username
  • 8 per il campo Length of randomly generated password

Configurare le impostazioni per il modulo Mysql spostandosi in Virtualmin -> System Settings -> Server Templates e selezionare il templatte Default Settings. Qui selezionare le opzioni per MySQL database ed impostare le opzioni nel seguente modo:

Ripetere la configurazione anche per il template Default Settings For Sub-Servers impostando le opzioni nel seguente modo:

 

Configurare l'invio delle amil di creazione dei domini spostandosi in Virtualmin -> Server Templates e selezionare il Template Default Settings e spostarsi nelle opzioni per Mail for domain ed effettuare le seguenti modifiche ai valori predefiniti:

  • Selezionare l'opzione Message below .. nel campo Email message to send upon server creation
  • Nel sotto campo Subject line inserire Virtual server ${DOM} creato su ${HOSTNAME}
  • Nel campo Also Cc email to specificare l'indirizzo email al quale si volgiono far arrivare le notifiche delle creazioni dei domini.
  • Nel campo Format for usernames that include domain specificare username@domain

 

Configurazione Notifiche posta elettronica

Per la configurazione di un Web Server con Apache e PHP è consigliabile creare un account di posta per l'utente sotto il quale gira Apache.

Ciò serve ad intercettare le mail di errore generate dall'invio si posta tramite PHP.

Per fare ciò seguire i passi sotto esposti: