Serveur Parfait · 4 min read · Oct 08, 2025
Le Serveur Parfait - CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3) - Page 4
11 Installer Dovecot
Dovecot peut être installé comme suit :
yum install dovecot dovecot-mysqlMaintenant, créez les liens de démarrage système et démarrez Dovecot :
chkconfig –levels 235 dovecot on
/etc/init.d/dovecot start
12 Installer Postfix
Postfix peut être installé comme suit :
yum install postfixEnsuite, désactivez Sendmail et démarrez Postfix :
chkconfig –levels 235 sendmail off
chkconfig –levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix restart
13 Installer Getmail
Getmail peut être installé comme suit :
yum install getmail14 Installer Amavisd-new, SpamAssassin et ClamAV
Pour installer amavisd-new, spamassassin et clamav, exécutez la commande suivante :
yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysqlEnsuite, nous démarrons freshclam, amavisd et 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 Installer Nginx, PHP5 (PHP-FPM) et Fcgiwrap
Nginx est disponible en tant que paquet pour CentOS 6.3 (depuis EPEL) que nous pouvons installer comme suit :
yum install nginxSi Apache2 est déjà installé sur le système, arrêtez-le maintenant…
/etc/init.d/httpd stop… et supprimez les liens de démarrage système d’Apache :
chkconfig --del httpdEnsuite, nous créons les liens de démarrage système pour nginx et le démarrons :
chkconfig –levels 235 nginx on
/etc/init.d/nginx start
(Si Apache2 et nginx sont tous deux installés, l’installateur ISPConfig 3 vous demandera lequel vous souhaitez utiliser - répondez nginx dans ce cas. Si l’un de ces deux est installé, ISPConfig effectuera la configuration nécessaire automatiquement.)
Nous pouvons faire fonctionner PHP5 dans nginx via PHP-FPM (PHP-FPM (FastCGI Process Manager) est une implémentation PHP FastCGI alternative avec des fonctionnalités supplémentaires utiles pour des sites de toute taille, en particulier les sites plus fréquentés). Nous pouvons installer php-fpm avec php-cli et certains modules PHP5 comme php-mysql dont vous avez besoin si vous souhaitez utiliser MySQL depuis vos scripts PHP comme suit :
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-tidyEnsuite, nous ouvrons /etc/php.ini…
vi /etc/php.ini… et changeons le rapport d’erreurs (pour que les notifications ne soient plus affichées) :
| [...] ;error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE [...] |
Aussi, définissez cgi.fix_pathinfo=0 :
vi /etc/php.ini| [...] ; cgi.fix_pathinfo fournit un support *réel* pour PATH_INFO/PATH_TRANSLATED pour CGI. PHP's ; le comportement précédent était de définir PATH_TRANSLATED sur SCRIPT_FILENAME, et de ne pas comprendre ; ce qu'est PATH_INFO. Pour plus d'informations sur PATH_INFO, voir les spécifications cgi. Définir ; cela à 1 fera que PHP CGI corrigera ses chemins pour se conformer à la spécification. Un paramètre ; de zéro fait que PHP se comporte comme avant. La valeur par défaut est 1. Vous devriez corriger vos scripts ; pour utiliser SCRIPT_FILENAME plutôt que PATH_TRANSLATED. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |
(Veuillez lire http://wiki.nginx.org/Pitfalls pour comprendre pourquoi vous devriez faire cela.)
En plus de cela, afin d’éviter des erreurs comme
[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): Il n'est pas sûr de se fier aux paramètres de fuseau horaire du système. Vous êtes *tenu* d'utiliser le paramètre date.timezone ou la fonction date_default_timezone_set(). Si vous avez utilisé l'une de ces méthodes et que vous obtenez toujours cet avertissement, vous avez probablement mal orthographié l'identifiant de fuseau horaire. Nous avons sélectionné 'Europe/Berlin' pour 'CEST/2.0/DST' à la place dans /usr/share/nginx/html/info.php à la ligne 2… dans /var/log/php-fpm/www-error.log lorsque vous appelez un script PHP dans votre navigateur, vous devez définir date.timezone dans /etc/php.ini :
| [...] [Date] ; Définit le fuseau horaire par défaut utilisé par les fonctions de date ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Berlin" [...] |
Vous pouvez trouver le fuseau horaire correct pour votre système en exécutant :
cat /etc/sysconfig/clock[root@server1 tmp]# cat /etc/sysconfig/clock
ZONE=”Europe/Berlin”
[root@server1 tmp]#
Ensuite, créez les liens de démarrage système pour php-fpm et démarrez-le :
chkconfig –levels 235 php-fpm on
/etc/init.d/php-fpm start
PHP-FPM est un processus daemon (avec le script d’initialisation /etc/init.d/php-fpm) qui exécute un serveur FastCGI sur le port 9000.
Pour obtenir le support CGI dans nginx, nous installons Fcgiwrap.
Fcgiwrap est un wrapper CGI qui devrait également fonctionner pour des scripts CGI complexes et peut être utilisé pour des environnements d’hébergement partagé car il permet à chaque vhost d’utiliser son propre répertoire cgi-bin.
Comme il n’y a pas de paquet fcgiwrap pour CentOS 6.3, nous devons le construire nous-mêmes. D’abord, nous installons quelques prérequis :
yum install fcgi-develMaintenant, nous pouvons construire fcgiwrap comme suit :
cd /usr/local/src/
git clone git://github.com/gnosek/fcgiwrap.git
cd fcgiwrap
autoreconf -i
./configure
make
make install
Cela installe fcgiwrap dans /usr/local/sbin/fcgiwrap.
Ensuite, nous installons le paquet spawn-fcgi qui nous permet d’exécuter fcgiwrap en tant que daemon :
yum install spawn-fcgiOuvrez /etc/sysconfig/spawn-fcgi…
vi /etc/sysconfig/spawn-fcgi… et modifiez le fichier comme suit :
| # Vous devez définir quelques options de travail avant que le service "spawn-fcgi" ne fonctionne. # Si SOCKET pointe vers un fichier, alors ce fichier est nettoyé par le script d'initialisation. # # Voir spawn-fcgi(1) pour toutes les options possibles. # # Exemple : #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" |
Maintenant, ajoutez l’utilisateur nginx au groupe apache :
usermod -a -G apache nginxCréez les liens de démarrage système pour spawn-fcgi…
chkconfig --levels 235 spawn-fcgi on… et démarrez-le comme suit :
/etc/init.d/spawn-fcgi startVous devriez maintenant trouver le socket fcgiwrap dans /var/run/fcgiwrap.socket, appartenant à l’utilisateur et au groupe apache (certains scripts, par exemple Mailman, s’attendent à être exécutés par l’utilisateur/groupe apache, c’est pourquoi nous ne faisons pas fonctionner spawn-fcgi en tant qu’utilisateur/groupe nginx, mais ajoutons plutôt nginx au groupe apache).
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.