Serveur Web · 5 min read · Jan 19, 2026

Le Serveur Parfait - CentOS 6.0 x86_64 [ISPConfig 2] - Page 5

12 Apache2 Avec PHP, Ruby, Python, WebDAV

Maintenant, nous installons Apache avec PHP (c’est PHP 5.3.2) :

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Ensuite, éditez /etc/httpd/conf/httpd.conf :

vi /etc/httpd/conf/httpd.conf

et changez DirectoryIndex en

| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...] |

Maintenant, configurez votre système pour démarrer Apache au démarrage :

chkconfig --levels 235 httpd on

Démarrez Apache :

/etc/init.d/httpd start

12.1 Désactiver PHP Globalement

(Si vous ne prévoyez pas d’installer ISPConfig sur ce serveur, veuillez ignorer cette section !)

Dans ISPConfig, vous configurerez PHP sur une base par site web, c’est-à-dire que vous pouvez spécifier quel site web peut exécuter des scripts PHP et lequel ne peut pas. Cela ne peut fonctionner que si PHP est désactivé globalement, car sinon tous les sites web pourraient exécuter des scripts PHP, peu importe ce que vous spécifiez dans ISPConfig.

Pour désactiver PHP globalement, nous éditons /etc/httpd/conf.d/php.conf et commentons les lignes AddHandler et AddType :

vi /etc/httpd/conf.d/php.conf

| # # PHP est un langage de script intégré dans HTML qui tente de faciliter # l'écriture de pages web générées dynamiquement pour les développeurs. # LoadModule php5_module modules/libphp5.so LoadModule php5_module modules/libphp5-zts.so # # Fait que l'interpréteur PHP gère les fichiers avec une extension .php. # #AddHandler php5-script .php #AddType text/html .php # # Ajoutez index.php à la liste des fichiers qui seront servis comme index # de répertoire. # DirectoryIndex index.php # # Décommentez la ligne suivante pour permettre à PHP d'afficher joliment les fichiers .phps # comme code source PHP : # #AddType application/x-httpd-php-source .phps |

Ensuite, nous redémarrons Apache :

/etc/init.d/httpd restart

12.2 Installation de mod_ruby

Pour CentOS 6.0, il n’y a pas de package mod_ruby disponible, donc nous devons le compiler nous-mêmes. D’abord, nous installons quelques prérequis :

yum install httpd-devel ruby ruby-devel

Ensuite, nous téléchargeons et installons mod_ruby comme suit :

cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install

Enfin, nous devons ajouter le module mod_ruby à la configuration d’Apache, donc nous créons le fichier /etc/httpd/conf.d/ruby.conf…

vi /etc/httpd/conf.d/ruby.conf

| LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8 |

… et redémarrons Apache :

/etc/init.d/httpd restart

(Si vous omettez la directive RubyAddPath /1.8, vous verrez des erreurs comme celles-ci dans le journal des erreurs d’Apache lorsque vous appelez des fichiers Ruby :

[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in require': aucun fichier à charger -- apache/ruby-run (LoadError) [Thu May 26 02:05:05 2011] [error] mod_ruby: échec de l'exigence apache/ruby-run [Thu May 26 02:05:05 2011] [error] mod_ruby: erreur dans ruby ) #### 12.3 Installation de mod_python Le package mod_python est disponible dans les dépôts EPEL que nous pouvons activer comme suit : rpm --import https://fedoraproject.org/static/0608B895.txt wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm rpm -ivh epel-release-6-5.noarch.rpm ``` yum install yum-priorities ``` Éditez /etc/yum.repos.d/epel.repo... ``` vi /etc/yum.repos.d/epel.repo ``` ... et ajoutez la ligne priority=10 à la section [epel] : | ``` [epel] name=Paquets supplémentaires pour Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] ``` | Pour installer mod_python, il suffit de lancer... ``` yum install mod_python ``` ... et redémarrez Apache ensuite : ``` /etc/init.d/httpd restart ``` #### 12.4 WebDAV WebDAV devrait déjà être activé, mais pour vérifier cela, ouvrez /etc/httpd/conf/httpd.conf et assurez-vous que les trois modules suivants sont actifs : ``` vi /etc/httpd/conf/httpd.conf ``` | ``` [...] LoadModule auth_digest_module modules/mod_auth_digest.so [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...] ``` | Si vous devez modifier /etc/httpd/conf/httpd.conf, n'oubliez pas de redémarrer Apache ensuite : ``` /etc/init.d/httpd restart ``` ### 13 ProFTPd ISPConfig a un meilleur support pour proftpd que vsftpd, donc supprimons vsftpd : ``` yum remove vsftpd ``` Nous pouvons maintenant installer ProFTPd depuis le dépôt EPEL comme suit : ``` yum install proftpd ``` Pour des raisons de sécurité, vous pouvez également ajouter la ligne suivante à /etc/proftpd.conf (merci à Reinaldo Carvalho ; plus d'informations peuvent être trouvées ici : http://proftpd.org/localsite/Userguide/linked/userguide.html) : ``` vi /etc/proftpd.conf ``` | ``` [...] IdentLookups off [...] ``` | Maintenant, nous pouvons créer les liens de démarrage du système pour ProFTPd : ``` chkconfig --levels 235 proftpd on ``` Et enfin, nous démarrons Proftpd : ``` /etc/init.d/proftpd start ``` ### 14 Webalizer Pour installer webalizer, il suffit de lancer ``` yum install webalizer ``` ### 15 Synchroniser l'Horloge du Système Si vous souhaitez synchroniser l'horloge système avec un serveur NTP, faites ce qui suit : ``` yum install ntp ``` chkconfig --levels 235 ntpd on tpdate 0.pool.ntp.org /etc/init.d/ntpd start ### 16 Installer Quelques Modules Perl ISPConfig est livré avec SpamAssassin qui nécessite quelques modules Perl pour fonctionner. Nous installons les modules Perl requis avec une seule commande : ``` yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar perl-NetAddr-IP ``` ### 17 La Fin La configuration du serveur est maintenant terminée. Vous pouvez maintenant installer ISPConfig dessus, en suivant ces instructions : http://www.ispconfig.org/manual_installation.htm Avant d'installer ISPConfig, il y a une chose importante que vous devez faire. Ouvrez /usr/include/stdio.h et remplacez getline par parseline à la ligne 673 : ``` vim /usr/include/stdio.h ``` | ``` [...] /* Commegetdelim’, mais lit jusqu’à une nouvelle ligne.

Cette fonction ne fait pas partie de POSIX et donc aucun point d’annulation officiel. Mais en raison de la similarité avec une interface POSIX ou en raison de l’implémentation, c’est un point d’annulation et donc pas marqué avec THROW. / extern _IO_ssize_t parseline (char *restrict __lineptr,

                        size_t *__restrict __n,
                        FILE *__restrict __stream) __wur;

#endif […]


Si vous ne le faites pas, l'installation échouera à cause de l'erreur suivante :

htpasswd.c:101: erreur : types conflictuels pour âgetlineâ  
/usr/include/stdio.h:673: note : la déclaration précédente de âgetlineâ était ici  
make[2]: * [htpasswd.o] Erreur 1  
make[2]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'  
make[1]: * [build-support] Erreur 1  
make[1]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'  
make: *** [build] Erreur 2  
ERROR: Impossible de créer Apache

Vous pouvez annuler le changement dans /usr/include/stdio.h après l'installation réussie d'ISPConfig (mais n'oubliez pas de le changer à nouveau chaque fois que vous souhaitez mettre à jour ISPConfig !).

#### 17.1 Une Remarque Sur SuExec

Si vous souhaitez exécuter des scripts CGI sous suExec, vous devez spécifier /var/www comme répertoire personnel pour les sites web créés par ISPConfig, car le suExec de CentOS est compilé avec /var/www comme Doc_Root. Exécutez

/usr/sbin/suexec -V


et la sortie devrait ressembler à ceci :

[root@server1 ~]# /usr/sbin/suexec -V  
-D AP_DOC_ROOT="/var/www"  
-D AP_GID_MIN=100  
-D AP_HTTPD_USER="apache"  
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"  
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"  
-D AP_UID_MIN=500  
-D AP_USERDIR_SUFFIX="public_html"  
[root@server1 ~]#

Donc, si vous souhaitez utiliser suExec avec ISPconfig, ne changez pas le répertoire web par défaut (qui est /var/www) si vous utilisez le mode expert lors de l'installation d'ISPConfig (en mode standard, vous ne pouvez de toute façon pas changer le répertoire web, donc vous pourrez utiliser suExec dans tous les cas).

### 18 Liens

- CentOS: http://www.centos.org/
- ISPConfig 2: http://www.ispconfig.org/ispconfig-2/
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.