Installazione Server · 4 min read · Oct 08, 2025

Il Server Perfetto - CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3) - Pagina 4

11 Installa Dovecot

Dovecot può essere installato come segue:

yum install dovecot dovecot-mysql

Ora crea i collegamenti di avvio del sistema e avvia Dovecot:

chkconfig –levels 235 dovecot on
/etc/init.d/dovecot start

12 Installa Postfix

Postfix può essere installato come segue:

yum install postfix

Poi disattiva Sendmail e avvia Postfix:

chkconfig –levels 235 sendmail off
chkconfig –levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix restart

13 Installa Getmail

Getmail può essere installato come segue:

yum install getmail

14 Installa Amavisd-new, SpamAssassin e ClamAV

Per installare amavisd-new, spamassassin e clamav, esegui il seguente comando:

yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql

Poi avviamo freshclam, amavisd e clamd.amavisd:

sa-update
chkconfig –levels 235 amavisd on
chkconfig –del clamd
chkconfig –levels 235 clamd.amavisd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd.amavisd start

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

Nginx è disponibile come pacchetto per CentOS 6.3 (da EPEL) che possiamo installare come segue:

yum install nginx

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

/etc/init.d/httpd stop

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

chkconfig --del httpd

Poi creiamo i collegamenti di avvio del sistema per nginx e avviamolo:

chkconfig –levels 235 nginx on
/etc/init.d/nginx start

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

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 per siti più trafficati). Possiamo installare php-fpm insieme a php-cli e alcuni moduli PHP5 come php-mysql di cui hai bisogno se vuoi usare MySQL dai tuoi script PHP come segue:

yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

Successivamente apriamo /etc/php.ini…

vi /etc/php.ini

… e cambiamo la segnalazione degli errori (in modo che i messaggi non vengano più mostrati):

| [...] ;error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE [...] |

Imposta anche cgi.fix_pathinfo=0:

vi /etc/php.ini

| [...] ; cgi.fix_pathinfo fornisce supporto *reale* per PATH_INFO/PATH_TRANSLATED per CGI. Il comportamento precedente di PHP era di impostare PATH_TRANSLATED su SCRIPT_FILENAME, e di non comprendere cosa sia PATH_INFO. Per ulteriori informazioni su PATH_INFO, vedere le specifiche cgi. Impostare questo a 1 farà sì che PHP CGI corregga i suoi percorsi per conformarsi alla specifica. Un'impostazione di zero fa sì che PHP si comporti come prima. Il valore predefinito è 1. Dovresti correggere i tuoi script per usare SCRIPT_FILENAME piuttosto che PATH_TRANSLATED. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |

(Per favore leggi http://wiki.nginx.org/Pitfalls per scoprire perché dovresti fare questo.)

In aggiunta a ciò, per evitare errori come

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): Non è sicuro fare affidamento sulle impostazioni del fuso orario del sistema. È *richiesto* utilizzare l'impostazione date.timezone o la funzione date_default_timezone_set(). Nel caso tu abbia usato uno di questi metodi e stai ancora ricevendo questo avviso, è molto probabile che tu abbia scritto male l'identificatore del fuso orario. Abbiamo selezionato 'Europe/Berlin' per 'CEST/2.0/DST' invece in /usr/share/nginx/html/info.php alla riga 2

… in /var/log/php-fpm/www-error.log quando chiami uno script PHP nel tuo browser, dovresti impostare date.timezone in /etc/php.ini:

| [...] [Date] ; Definisce il fuso orario predefinito utilizzato dalle funzioni di data ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Berlin" [...] |

Puoi scoprire il fuso orario corretto per il tuo sistema eseguendo:

cat /etc/sysconfig/clock

[root@server1 tmp]# cat /etc/sysconfig/clock
ZONE=”Europe/Berlin”
[root@server1 tmp]#

Successivamente crea i collegamenti di avvio del sistema per php-fpm e avvialo:

chkconfig –levels 235 php-fpm on
/etc/init.d/php-fpm start

PHP-FPM è un processo daemon (con lo script di init /etc/init.d/php-fpm) che esegue un server FastCGI sulla porta 9000.

Per ottenere 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.

Poiché non esiste un pacchetto fcgiwrap per CentOS 6.3, dobbiamo costruirlo noi stessi. Prima installiamo alcune dipendenze:

yum install fcgi-devel

Ora possiamo costruire fcgiwrap come segue:

cd /usr/local/src/
git clone git://github.com/gnosek/fcgiwrap.git
cd fcgiwrap
autoreconf -i
./configure
make
make install

Questo installa fcgiwrap in /usr/local/sbin/fcgiwrap.

Successivamente installiamo il pacchetto spawn-fcgi che ci consente di eseguire fcgiwrap come un daemon:

yum install spawn-fcgi

Apri /etc/sysconfig/spawn-fcgi…

vi /etc/sysconfig/spawn-fcgi

… e modifica il file come segue:

| # Devi impostare alcune opzioni di lavoro prima che il servizio "spawn-fcgi" funzioni. # Se SOCKET punta a un file, allora questo file viene pulito dallo script di init. # # Vedi spawn-fcgi(1) per tutte le opzioni possibili. # # Esempio : #SOCKET=/var/run/php-fcgi.sock #OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi" FCGI_SOCKET=/var/run/fcgiwrap.socket FCGI_PROGRAM=/usr/local/sbin/fcgiwrap FCGI_USER=apache FCGI_GROUP=apache FCGI_EXTRA_OPTIONS="-M 0770" OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM" |

Ora aggiungi l’utente nginx al gruppo apache:

usermod -a -G apache nginx

Crea i collegamenti di avvio del sistema per spawn-fcgi…

chkconfig --levels 235 spawn-fcgi on

… e avvialo come segue:

/etc/init.d/spawn-fcgi start

Dovresti ora trovare il socket fcgiwrap in /var/run/fcgiwrap.socket, di proprietà dell’utente e del gruppo apache (alcuni script, ad esempio Mailman, si aspettano di essere eseguiti dall’utente/gruppo apache, ecco perché non eseguiamo spawn-fcgi come utente/gruppo nginx, ma invece aggiungiamo nginx al gruppo apache).

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.