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 sudoTi 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.cfDecommenta 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 restartVogliamo 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 restartOra controlla che il networking sia abilitato. Esegui
netstat -tap | grep mysqlL’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-perlLa 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 remove14 Installa Nginx, PHP5 (PHP-FPM) e Fcgiwrap
Nginx è disponibile come pacchetto per Ubuntu che possiamo installare come segue:
apt-get install nginxSe 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 removeAvvia 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-fpmPHP-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 php5Scegli 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 snmpIl modulo mcrypt di PHP5 deve essere abilitato manualmente:
php5enmod mcryptAPC è 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-apcSuccessivamente, 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 reloadPer 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 fcgiwrapDopo 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 phpmyadminVedrai 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 reloadPoi 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 mailmanSeleziona 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 mailmanroot@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
newaliasessuccessivamente e riavvia Postfix:
service postfix restartPoi avvia il daemon di Mailman:
service mailman startDopo 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/
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://
Sotto http://
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.