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-mysqlOra 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 postfixPoi 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 getmail14 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-mysqlPoi 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 nginxSe Apache2 è già installato sul sistema, fermalo ora…
/etc/init.d/httpd stop… e rimuovi i collegamenti di avvio del sistema di Apache:
chkconfig --del httpdPoi 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-tidySuccessivamente 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-develOra 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-fcgiApri /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 nginxCrea i collegamenti di avvio del sistema per spawn-fcgi…
chkconfig --levels 235 spawn-fcgi on… e avvialo come segue:
/etc/init.d/spawn-fcgi startDovresti 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).
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.