Server Setup · 9 min read · Feb 09, 2026

Il Server Perfetto - Ubuntu 14.04 (nginx, BIND, MySQL, PHP, Postfix, Dovecot e ISPConfig 3) - Pagina 4

12 Installa Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils

Possiamo installare Postfix, Dovecot, MySQL, rkhunter e binutils con un unico comando:

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo

Ti verranno poste le seguenti domande:

Nuova password per l’utente MySQL “root”: <– yourrootsqlpassword
Ripeti la password per l’utente MySQL “root”: <– yourrootsqlpassword
Tipo generale di configurazione della posta: <– Internet Site
Nome del sistema di posta: <– server1.example.com
Creare un certificato SSL autofirmato?: <– Sì

Successivamente, apri le porte TLS/SSL e di invio in Postfix:

vi /etc/postfix/master.cf

Decommenta le sezioni di invio e smtps come segue - aggiungi la riga -o smtpd_client_restrictions=permit_sasl_authenticated,reject a entrambe le sezioni e lascia tutto il resto commentato:

| [...] submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING [...] |

Riavvia Postfix successivamente:

service postfix restart

Vogliamo che MySQL ascolti su tutte le interfacce, non solo su localhost, quindi modifichiamo /etc/mysql/my.cnf e commentiamo la riga bind-address = 127.0.0.1:

vi /etc/mysql/my.cnf

| [...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...] |

Poi riavviamo MySQL:

service mysql restart

Ora controlla che il networking sia abilitato. Esegui

netstat -tap | grep mysql

L’output dovrebbe apparire così:

root@server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN      17300/mysqld  
root@server1:~#

13 Installa Amavisd-new, SpamAssassin e Clamav

Per installare amavisd-new, SpamAssassin e ClamAV, eseguiamo

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl

La configurazione di ISPConfig 3 utilizza amavisd che carica internamente la libreria del filtro SpamAssassin, quindi possiamo fermare SpamAssassin per liberare un po’ di RAM:

service spamassassin stop  
update-rc.d -f spamassassin remove

14 Installa Nginx, PHP5 (PHP-FPM) e Fcgiwrap

Nginx è disponibile come pacchetto per Ubuntu che possiamo installare come segue:

apt-get install nginx

Se Apache2 è già installato sul sistema, fermalo ora…

service apache2 stop

… e rimuovi i collegamenti di avvio del sistema di Apache:

update-rc.d -f apache2 remove

Avvia nginx successivamente:

service nginx start

(Se sia Apache2 che nginx sono installati, l’installer di ISPConfig 3 ti chiederà quale vuoi utilizzare - rispondi nginx in questo caso. Se solo uno di questi due è installato, ISPConfig eseguirà automaticamente la configurazione necessaria.)

Possiamo far funzionare PHP5 in nginx tramite PHP-FPM (PHP-FPM (FastCGI Process Manager) è un’implementazione alternativa di PHP FastCGI con alcune funzionalità aggiuntive utili per siti di qualsiasi dimensione, specialmente siti più trafficati) che installiamo come segue:

apt-get install php5-fpm

PHP-FPM è un processo daemon (con il comando di avvio service php5-fpm start) che esegue un server FastCGI sul socket /var/run/php5-fpm.sock.

Per ottenere il supporto MySQL in PHP, possiamo installare il pacchetto php5-mysql. È una buona idea installare anche alcuni altri moduli PHP5 poiché potresti averne bisogno per le tue applicazioni. Puoi cercare i moduli PHP5 disponibili in questo modo:

apt-cache search php5

Scegli quelli di cui hai bisogno e installali in questo modo:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl snmp

Il modulo mcrypt di PHP5 deve essere abilitato manualmente:

php5enmod mcrypt

APC è un cache opcode PHP gratuito e open source per la memorizzazione nella cache e l’ottimizzazione del codice intermedio PHP. È simile ad altri cache opcode PHP, come eAccelerator e XCache. È fortemente consigliato avere uno di questi installato per velocizzare le tue pagine PHP.

APC può essere installato come segue:

apt-get install php-apc

Successivamente, apri /etc/php5/fpm/php.ini…

vi /etc/php5/fpm/php.ini

… e imposta cgi.fix_pathinfo=0 e il tuo fuso orario:

| [...] cgi.fix_pathinfo=0 [...] date.timezone="Europe/Berlin" [...] |

(Puoi trovare tutti i fusi orari disponibili nelle directory /usr/share/zoneinfo e nelle sue sottodirectory.)

Ora ricarica PHP-FPM:

service php5-fpm reload

Per ottenere il supporto CGI in nginx, installiamo Fcgiwrap.

Fcgiwrap è un wrapper CGI che dovrebbe funzionare anche per script CGI complessi e può essere utilizzato per ambienti di hosting condiviso perché consente a ciascun vhost di utilizzare la propria directory cgi-bin.

Installa il pacchetto fcgiwrap:

apt-get install fcgiwrap

Dopo l’installazione, il daemon fcgiwrap dovrebbe già essere avviato; il suo socket è /var/run/fcgiwrap.socket. Se non è in esecuzione, puoi utilizzare lo script service fcgiwrap per avviarlo.

Questo è tutto! Ora, quando crei un vhost nginx, ISPConfig si occuperà della corretta configurazione del vhost.

14.1 Versioni PHP Aggiuntive

A partire da ISPConfig 3.0.5, è possibile avere più versioni di PHP su un server (selezionabili tramite ISPConfig) che possono essere eseguite tramite PHP-FPM. Per sapere come costruire versioni PHP aggiuntive (PHP-FPM) e come configurare ISPConfig, controlla questo tutorial: Come Utilizzare Più Versioni di PHP (PHP-FPM & FastCGI) Con ISPConfig 3 (Ubuntu 12.10) (funziona anche per Ubuntu 14.04).

14.2 Installa phpMyAdmin

Installa phpMyAdmin come segue:

apt-get install phpmyadmin

Vedrai le seguenti domande:

Server web da riconfigurare automaticamente: <– seleziona nessuno (perché solo apache2 e lighttpd sono disponibili come opzioni)
Configurare il database per phpmyadmin con dbconfig-common? <– No

Ora puoi trovare phpMyAdmin nella directory /usr/share/phpmyadmin/.

Dopo aver installato ISPConfig 3, puoi accedere a phpMyAdmin come segue:

Il vhost delle app ISPConfig sulla porta 8081 per nginx viene fornito con una configurazione di phpMyAdmin, quindi puoi utilizzare http://server1.example.com:8081/phpmyadmin o http://server1.example.com:8081/phpMyAdmin per accedere a phpMyAdmin.

Se desideri utilizzare un alias /phpmyadmin o /phpMyAdmin che puoi utilizzare dai tuoi siti web, questo è un po’ più complicato rispetto ad Apache perché nginx non ha alias globali (cioè, alias che possono essere definiti per tutti i vhost). Pertanto, devi definire questi alias per ogni vhost da cui desideri accedere a phpMyAdmin.

Per fare ciò, incolla quanto segue nel campo Direttive nginx nella scheda Opzioni del sito web in ISPConfig:

| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |

Se utilizzi http s invece di http per il tuo vhost, dovresti aggiungere la riga fastcgi_param HTTPS on; alla tua configurazione di phpMyAdmin in questo modo:

| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param HTTPS on; # <-- aggiungi questa riga fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |

Se utilizzi sia http che https per il tuo vhost, devi aggiungere la seguente sezione alla sezione http {} in /etc/nginx/nginx.conf (prima di qualsiasi riga include) che determina se il visitatore utilizza http o https e imposta la variabile $fastcgi_https (che utilizzeremo nella nostra configurazione di phpMyAdmin) di conseguenza:

vi /etc/nginx/nginx.conf

| [...] http { [...] ## Detect when HTTPS is used map $scheme $fastcgi_https { default off; https on; } [...] } [...] |

Non dimenticare di ricaricare nginx successivamente:

service nginx reload

Poi torna di nuovo al campo Direttive nginx e, invece di fastcgi_param HTTPS on;, aggiungi la riga fastcgi_param HTTPS $fastcgi_https; in modo da poter utilizzare phpMyAdmin per entrambe le richieste http e https:

| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param HTTPS $fastcgi_https; # <-- aggiungi questa riga fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |

15 Installa Mailman

Dalla versione 3.0.4, ISPConfig consente anche di gestire (creare/modificare/eliminare) le liste di distribuzione Mailman. Se desideri utilizzare questa funzione, installa Mailman come segue:

apt-get install mailman

Seleziona almeno una lingua, ad esempio:

Lingue da supportare: <– en (Inglese)
Lista siti mancanti <– Ok

Prima di poter avviare Mailman, deve essere creata una prima lista di distribuzione chiamata mailman:

newlist mailman

root@server1:~# newlist mailman
Inserisci l’email della persona che gestisce la lista: <– indirizzo email dell’amministratore, ad es. [email protected]
Password iniziale di mailman: <– password dell’amministratore per la lista mailman
Per completare la creazione della tua lista di distribuzione, devi modificare il tuo file /etc/aliases (o equivalente) aggiungendo le seguenti righe, e possibilmente eseguendo il programma newaliases:

lista di distribuzione mailman

mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”

Premi invio per notificare il proprietario di mailman… <– INVIO

root@server1:~#

Apri /etc/aliases successivamente…

vi /etc/aliases

… e aggiungi le seguenti righe:

| [...] ## lista di distribuzione mailman mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" |

Esegui

newaliases

successivamente e riavvia Postfix:

service postfix restart

Poi avvia il daemon di Mailman:

service mailman start

Dopo aver installato ISPConfig 3, puoi accedere a Mailman come segue:

Il vhost delle app ISPConfig sulla porta 8081 per nginx viene fornito con una configurazione di Mailman, quindi puoi utilizzare http://server1.example.com:8081/cgi-bin/mailman/admin/ o http://server1.example.com:8081/cgi-bin/mailman/listinfo/ per accedere a Mailman.

Se desideri utilizzare Mailman dai tuoi siti web, questo è un po’ più complicato rispetto ad Apache perché nginx non ha alias globali (cioè, alias che possono essere definiti per tutti i vhost). Pertanto, devi definire questi alias per ogni vhost da cui desideri accedere a Mailman.

Per fare ciò, incolla quanto segue nel campo Direttive nginx nella scheda Opzioni del sito web in ISPConfig:

| location /cgi-bin/mailman { root /usr/lib/; fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location /images/mailman { alias /usr/share/images/mailman; } location /pipermail { alias /var/lib/mailman/archives/public; autoindex on; } |

Questo definisce l’alias /cgi-bin/mailman/ per il tuo vhost, il che significa che puoi accedere all’interfaccia di amministrazione di Mailman per una lista su http:///cgi-bin/mailman/admin/, e la pagina web per gli utenti di una lista di distribuzione può essere trovata su http:///cgi-bin/mailman/listinfo/.

Sotto http:///pipermail puoi trovare gli archivi delle liste di distribuzione.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.