Configurer un serveur web dédié OVH/Kimsufi sous Debian 6
7. Installation d’Apache2
apt-get install apache2 php5 php5-gd apache2-dev
vi /etc/apache2/conf.d/security -> ServerTokens Prod ; ServerSignature Off
a2enmod rewrite
a2enmod expires
a2enmod headers
/etc/init.d/apache2 restart
(Mon guide de paramétrage d’Apache est ici)
8. Installation de Mysql et mytop
apt-get install mysql-server-5.0 php5-mysql
(ne pas spécifier de mdp root mysql à ce stade, sinon l’installation de mytop échouera. On le fera juste après !)
apt-get install mytop
mysql -u root -> exit
mysqladmin -u root password <votre mot de passe>
mysql -u root
-> ne doit plus fonctionner sans mot de passe
mysql -u root -p
-> fonctionne en spécifiant le mot de passe
vi /etc/mysql/my.cnf
-> log_slow_queries = /var/log/mysql/mysql-slow.log
/etc/init.d/mysql restart
9. Installation de Munin et phpsysinfo
apt-get install munin
vi /etc/apache2/conf.d/munin
-> Allow from all (ou pas ?)
/etc/init.d/apache 2 restart
http://ksXXX.ovh.net/munin/
apt-get install phpsysinfo
cp /etc/apache2/conf.d/munin /etc/apache2/conf.d/phpsysinfo
vi /etc/apache2/conf.d/phpsysinfo
Alias /phpsysinfo /usr/share/phpsysinfo<Directory /usr/share/phpsysinfo> Order allow,deny #Allow from localhost 127.0.0.0/8 ::1 Allow from all (...)
/etc/init.d/apache 2 restart
http://ksXXX.ovh.net/phpsysinfo
10. Installation de PHP et eAccelerator
apt-get install php5-dev php5-curl \ php-pear php5-imagick php5-mcrypt php5-memcache make
apt-get install re2c
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
(ou plus récent…)
tar -jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
phpize
./configure -enable-eaccelerator=shared
make
make install
vi /etc/php5/apache2/conf.d/eaccelerator.ini
-> créer le fichier contenant ceci :
extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/var/cache/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
mkdir /var/cache/eaccelerator chmod 0777 /var/cache/eaccelerator /etc/init.d/apache2 restart
vi /var/www/my_phpinfo.php
-> créer le fichier contenant ceci :
<?php phpinfo(); ?>
http://ksXXX.ovh.net/my_phpinfo.php
-> vérifier que eAccelerator est activé
11. Installation de PhpMyadmin, Logwatch et AWStats
apt-get install phpmyadmin
vi /etc/phpmyadmin/apache.conf
-> changer l’Alias par ‘/mon_admin_de_mysql_en_php’ par exemple (beaucoup d’attaques sur ce répertoire sinon)
/etc/init.d/apache2 restart
http://ksXXX.ovh.net/mon_admin_de_mysql_en_php/index.php?lang=fr-utf-8 -> favoris
apt-get install logwatch
apt-get install awstats
Paramétrer /etc/awstats/awstats.conf
LogFormat=1 ... SiteDomain="default" ... DNSLookup=2
/etc/init.d/apache2 restart
crontab -e
-> ajouter : 15,45 * * * * /usr/share/doc/awstats/examples/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl >> /var/log/awstats.log
crontab -l
tester :
/usr/share/doc/awstats/examples/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl >> /var/log/awstats.log
vi /etc/logrotate.d/apache2
-> ajouter :
prerotate /usr/share/doc/awstats/examples/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl >> /var/log/awstats.log endscript
12. Configurer vos sites et vos sauvegardes
Je recommande de sauvegarder toutes les bases mysql en utilisant l’utilisateur mysqldump,
de faire chaque jour un tar -xvf de tous les répertoires de publications web (en principe dans /var/www)
et de faire également un tar -xvf des répertoires suivants importants à sauvegarder et archiver régulièrement :
/etc
(contient les configs d’Apache, Phpmyadmin, Awstats, …)
/root
/home/<votre login>
/var/lib/awstats
La suite (exim,…) en page 3…







le 19 May 2011 à 23:46 h
[...] sur le net, remises à jour pour une installation Debian Lenny de Septembre 2009. Il a été mis à jour en mai 2011 pour s’adapter à la nouvelle version Debian 6 Squeeze, et vous pouvez donc lire la nouvelle version ici. La présente page est devenue obsolète, et ne [...]
le 19 May 2011 à 23:49 h
[...] Configurer un serveur dédié OVH pour le web pas à pas (version à jour pour Debian 6 Squeeze) [...]
le 19 May 2011 à 23:51 h
[...] (rappel : mon guide de configuration d’un environnement web LAMP complet sous Debian 6, par exemple sur un s…) [...]
le 19 May 2011 à 23:53 h
[...] Cet article est donc un bon complément de mon autre article sur la configuration de base d’un environnement LAMP sur un serveur Debian du type de …. [...]
le 19 May 2011 à 23:55 h
[...] obtenus en installant le compilateur d’opcode eAccelerator. Par ailleurs, dans mon tutoriel résumant la configuration rapide d’un serveur LAMP type OVH/Kimsufi, j’ai détaillé l’installation d’eAccelerator. Sur une installation [...]
le 19 May 2011 à 23:56 h
[...] Tous les serveurs dédiés OVH et Kimsufi sont fournis avec une espace d’hébergement sur FTP gratuit. L’espace est limité mais il permet tout de même de sauvegarder l’essentiel des données systèmes d’un serveur web sous GNU/Linux, et en général également les sauvegardes de base de données et les fichiers de contenus de vos sites. Voici un mémo qui explique pas à pas comment activer votre espace de sauvegarde gratuit, puis comment mettre en place une politique de sauvegarde automatisée de vos fichiers les plus précieux. Pour rappel, mon guide de configuration rapide d’un serveur web LAMP sous Debian Linux chez OVH se trouve ici. [...]
le 20 May 2011 à 12:01 h
[...] référer à mon guide de configuration pas-à-pas d’un serveur LAMP sous Debian 6 pour toute la configurat… depuis le partitionnement jusqu’à l’installation des services de monitoring. Pour [...]
le 20 May 2011 à 16:17 h
[...] dis dans l’article sur l’optimisation (accélération) de WordPress, et apprendre ici comment monter une configuration LAMP sous Debian à partir de zéro, incluant eAccelerator. Enfin, cet article explique comment re-compiler eAccelerator pour l’installer ou le mettre [...]
le 15 June 2011 à 11:57 h
[...] Configurer un serveur web dédié sous Debian 6 [...]
le 16 June 2011 à 22:49 h
[...] L’installation de Munin sous Debian à partir des paquets est ultra simple, je l’aborde rapidement dans mon article sur la configuration d’un serveur LAMP sous Debian. [...]
le 9 July 2011 à 20:34 h
Bonjour et merci pour ce tuto très complet et à jour ! Un petit problème cependant, si l’on suit chaque étape, une fois nginx configuré, l’accès aux outils via les alias d’apache devient impossible. Y a-t-il une étape supplémentaire pour faire en sorte que les erreurs 404 de nginx soient vérifées auprès d’apache ? Ou une autre solution afin de faire fonctionner le rewriting et les alias d’apache lorsque nginx tourne en front ?
le 11 July 2011 à 11:26 h
@Patrick
Dans les configurations que j’ai proposé, NginX traite directement les fichiers statiques sans passer par Apache, donc tous les alias qui concernent des fichiers statiques (images, css, js…) doivent être re-déclarés dans la configuration de NginX. Mais pour laisser Apache traiter complètement certains types d’URL, on peut créer des règles supplémentaires dans la configuration NginX pour passer directement à Apache certains types d’adresses. NginX ne peut pas prendre en compte directement les règles de re-writing d’Apache.
le 13 July 2011 à 12:45 h
Bonjour, tout d’abord merci beaucoup pour ce tutorial très interessant qui m’a permis de réviser mes bases linux, et mettre en place facilement un kimsufi
Vous dites dans le commentaire ci-dessus, que Nginx, ne peut pas prendre en compte les règles de re-writing d’Apache, et c’est le cas, mais j’ai trouvé une solution que je trouve très pratique pour héberger plusieurs sites, gérés par les règles Apache, et compatible avec Nginx pour servir les images.
Préambule :
- Tout d’abord, j’ai mise à jour Nginx, avec la version 1, car celle des paquets debian était plus ancienne.
- Je voulais gérer mes sites dans le répertoire /var/www/site1.fr/www, /var/www/site2.fr/www et ainsi de suite
J’ai donc édité le fichier de config nginx
sudo vi /etc/nginx/sites-enabled/default
et rajouté et modifié les lignes suivantes :
server_name_in_redirect on;
server_name ~^(www\.)?(?<domain>.+)$;
root /var/www/$domain/www;
location ~* \.(jpg|jpeg|gif|css|png|js|ico|swf|mp3)$ {
root /var/www/$domain/www;
expires 365d;
access_log off;
}
Cela fonctionne donc très bien avec différents virtuals host apache, sans devoir récrire des règles dans Nginx.
Je ne sais pas si ma config est la meilleure qu’il soit, mais si cela peut-aider quelqu’un, on ne sait jamais
le 13 July 2011 à 12:53 h
@R.Pacouil
Merci pour cette astuce utile !
le 13 July 2011 à 13:01 h
@ Y.Dubois, Je vous en prie
Par contre, dans mon commentaire, la ligne serveur_name ne s’est pas bien affichée (peut-être avez vous une protection des commentaire..) La revoici, il suffit de retirer les espaces entre chaque caractère
server_name ~ ^ ( w w w \. ) ? ( ? < domain >. + ) $;
le 13 July 2011 à 13:09 h
J’ai corrigé. Utiliser les codes & lt; et & gt; (sans l’espace) pour mettre des <crochets> dans les commentaires.
le 24 August 2011 à 10:22 h
Salut,
J’ai suivi ton tuto, tout est parfait, mais j’ai du mal pour mettre mes domaines (je viens d’une gentoo pourri, mais avec ovhm qui me faisait le boulot).
Comment fais-tu ? J’ai vu que tu virer bind9 du serveur, c’est pas avec ca qu’il faut faire ?
le 24 August 2011 à 12:11 h
Je ne vois pas l’intérêt d’héberger son propre serveur DNS, qui va consommer des ressources et sera nécessairement moins fiable que l’infrastructure industrialisée d’OVH. Sur mes propres serveurs dédiés qui sont tous chez OVH, je n’installe donc pas de serveur DNS (d’où la désinstallation de Bind ou Named), et je laisse OVH s’occuper du DNS.
Pour les serveurs de mes clients qui ne sont pas chez OVH, je leur recommande en général de procéder de la même façon (GoDaddy, 1&1 ou Gandi proposent tous des services d’hébergement des domaines DNS très fiables inclus dans leurs formules d’hébergement, c’est le coeur de leur métier !)
Si tu veux absolument héberger tes domaines toi-même sur ton serveur dédié, alors il faut effectivement utiliser Bind9. La configuration n’est pas compliquée du tout, mais ce serait l’objet d’un autre tutoriel, c’est trop long à expliquer ici !
le 24 August 2011 à 16:25 h
Merci pour ta réponse …
En fait comme la release2 de OVH et la configuration par ovhm créé des règles pour bind9 je pensais que c’était nécessaire …
Mais du coup, effectivement je vais m’en passer, rien ne sert de surcharger le serveur pour ca.
Merci encore
le 5 September 2011 à 11:04 h
Merci beaucoup pour ce tutoriel très pratique et compréhensible par les personnes comme moi qui sont des amateurs sans être débutant…
le 10 September 2011 à 16:57 h
Je suis vraiment ravi de trouver un tuto aussi complet sur le web, mais chez moi je n’ai que des ennuyeux, rien ne va comme sur le tuto.
Command not found par exemple pour ça:vi /etc/apache2/conf.d/security -> ServerTokens Prod ; ServerSignature Off, avec en plus “too many edit arguments”
Je suis débutant, mais avec ce genre de problème impossible d’avancer.
Merci pour ce tuto
le 10 September 2011 à 17:53 h
@Arnaud : ce n’est pas à proprement parler un tutoriel, mais plutôt une sorte d’aide mémoire ou de guide pas à pas, plutôt destiné à quelqu’un qui a un minimum de connaissance en administration système. Au départ j’ai écrit cet article à partir de mes notes personnelles. J’ai donc abrégé et je ne donne pratiquement pas d’explication. Pour l’étape où tu rencontres un problème par exemple : ce qu’il y a avant la flèche est la commande à entrer pour éditer un fichier texte (il faut savoir que vi est un éditeur de texte, ce qui fait partie des fondamentaux de l’administration Linux). Ce qu’il y a après la flèche est un résumé des valeurs à modifier dans le fichier de configuration en question.
Je suis désolé,mais actuellement cet aide-mémoire n’est pas assez détaillé et simplifié pour un débutant. Peut-être que tu trouveras de meilleures références ailleurs sur le web. Quand je mettrai à jour cette procédure, j’essaierai de la simplifier et de donner plus d’explications, mais c’est du travail en plus !
le 10 September 2011 à 17:55 h
C’est déjà une très bonne base!
Et c’est très bien d’avoir sur le net des personnes qui partagent leurs connaissances.
J’ai déjà pas mal appris mais pas suffisamment pour arriver à mes fins.
Merci Encore
le 12 September 2011 à 13:50 h
très bon tuto, merci beaucoup.
J’ai tout bien suivi (enfin presque), car je n’ai pas trouvé comment spécifier mon nom de domaine “monsiteamoi.com” ? Y a t il aussi des chose a faire du coté du manager ovh ?
encore merci
le 20 September 2011 à 20:42 h
Bonjour et tout d’abord merci pour ce guide qui m’a permis de démarrer en dédié sans trop de soucis.
En ce qui concerne le paramétrage d’Exim, j’ai suivi a la lettre ce qui a été demandé et la fonction mail() de PhP ne semble pas marcher. Y-a-t-il des modifications a faire dans le php.ini ?
Merci par avance
le 21 September 2011 à 11:01 h
@Seb: Il n’y a aucun paramétrage supplémentaire à faire sur une configuration Debian standard avec tout installé par défaut. PHP utilisera automatiquement le client mail disponible au niveau système (Sendmail ou Exim), ça n’a pas besoin d’être spécifié puisque de toute façon Exim se fait “passer” pour Sendmail (en plus léger). Avant de s’intéresser à la commande mail() de PHP, est-ce que l’envoi d’un message e-mail en ligne de commande, comme préconisé en guise de test dans l’article, a bien fonctionné ? Tant que le système ne peut pas acheminer les e-mails, PHP n’y arrivera pas non plus; sauf à installer des bibliothèques supplémentaires pour PHP afin de contourner le système, ce qui est une autre possibilité (non couverte par cet article).
le 21 September 2011 à 11:18 h
Bonjour Yann,
En effet j’ai oublié de préciser, l’envoie d’un mail en ligne de commande marche très bien.
J’ai vu sur divers articles qu’il fallait rajouter dans le php.ini la ligne
sendmail_path = “sendmail -t -i”
Ce que j’ai fait … mais les emails ne partent toujours pas depuis PhP
le 21 September 2011 à 11:40 h
Je te renvoie à cet article très complet sur le sujet :
http://r24422.ovh.net/wiki/doku.php/cours/linux/relai_mail_exim4
Si cela ne fonctionne toujours pas je n’ai pas d’autre idée.
le 21 September 2011 à 11:50 h
Problème résolu (en partie), il s’agissait d’un problème dans les en-têtes de mon email envoyé avec la fonction mail() de Php.
Merci beaucoup !
le 12 October 2011 à 15:50 h
Vraiment sympa est utile !
Par contre je me pose toujours une question ….
Quelle est la configuration minimale requise pour héberger des sites vitrines / e-commerce ?
Je pêche un peu de ce côté là ….
le 12 October 2011 à 17:33 h
@Ontherock : n’importe quel serveur dédié OVH suffira pour un site. S’il y en a plusieurs, alors un serveur MG (moyenne gamme) s’impose au minimum. Toujours en dédié si c’est pour un service professionnel.
le 13 October 2011 à 15:07 h
Merci beaucoup pour cette réponse si rapide
je sais vers quoi m’orienter alors . bonne journée !
le 30 October 2011 à 2:42 h
Bonjour,
Je Voulais te remercier pour ton article bien construit et dans surprise.
Par défaut le document root est /var/www je l’ai modifie pour qui point
e ver /home/user/www
J’aimerai donc faire pointer un ndd (hébergé chez ovh)
Ex.: http://www.mon_site.com
le 31 December 2011 à 14:04 h
Bonjour,
Merci pour ton tutoriel qui est vraiment super sympa.
Néanmoins il manque l’étape d’ajout de noms de domaines pour le serveur.
En fait je veux faire pointer plusieurs noms de domaine sur mon serveur et il y a une histoire de Vhosts un peu bizarre que je n’arrive pas à résoudre pour le moment. Surtout que je suis un newbie avec Linux et apache en mode console.
le 11 January 2012 à 20:32 h
@Florian K :
L’ajout des noms de domaines au niveau DNS n’a pas à se faire sur le serveur (je ne fais pas tourner de serveur DNS, comme je l’ai déjà expliqué ailleurs ça ne sert à rien et OVH fait ça très bien). Il reste donc juste à déclarer les noms de domaines utilisés au niveau des vhosts, mais ça c’est la configuration des sites, et je n’entre pas non plus dans ce niveau de détail dans ce mémo; c’est une autre étape.
le 20 January 2012 à 23:40 h
La coammande pour redémarrer appach est : /etc/init.d/apache2 restart
… et non /etc/init.d/apache 2 restart
Le lien de eaccelerator n’est plus le bon
cf : http://sourceforge.net/projects/eaccelerator/files/eaccelerator/eAccelerator%200.9.6.1/
le 23 January 2012 à 17:43 h
Bonjour,
J’en suis à cette ligne : vi /etc/pam.d/common-password
et je ne comprend pas ce qu’il faut modifier dans ce fichier (rien n’est indiqué)
et d’une manière générale a quoi sert la portion
“vi /etc/pam.d/su
-> On dé-commente la ligne : auth required pam_wheel.so
vi /etc/pam.d/common-password
pam-auth-update
aptitude install sudo
visudo
-> Ajout de la ligne : %root ALL=(ALL) PASSWD: ALL”
et peut-on s’en passer ?
Merci pour ton tuto très instructif !
le 27 January 2012 à 12:16 h
@Chevrolat: PAM, on peut s’en passer mais c’est moins sécurisé.
Sudo c’est très utile pour pouvoir se connecter en utilisateur non privilégié et exécuter seulement certaines commandes en “super-administrateur”. Dans ma pratique de l’administration système, c’est indispensable, mais il y a d’autres administrateurs qui font sans (se connectent en permanence en root par exemple…)
Plus d’infos sur PAM ici : http://www.linuxcodex.fr/index.php?option=com_content&task=view&id=30&Itemid=29
Plus d’infos sur sudo ici : http://www.generation-linux.fr/index.php?post/2009/03/24/Cours-Linux-%3A-sudo
le 28 February 2012 à 21:02 h
Bonjour,
J’ai suivi votre tuto qui a répondu à 100% de mes besoins.
Tout marche impeccable, juste un grand merci.
le 26 March 2012 à 23:07 h
J’ai trouvé une erreur dans la partie 11 (phpmyadmin)
au lieu de vi /etc/phpmyadmin/apache.conf il faut faire
vi /etc/apache2/conf.d/phpmyadmin.conf
le 1 April 2012 à 18:15 h
Merci Yann pour ces superbes tuto, je n’aurais pas pris mon kimsufi sans vous!
Je suis newbie sur linux et j’en suis au point 5 (Sécurisation minimum du serveur) et j’ai deux remarques:
1/ pour vi /etc/pam.d/common-password il n’est pas indiqué ici quoi modifier dans l’édition. J’ai supposé qu’il s’agissait de faire comme dans le tuto pour Debian5:
-> On rajoute à la fin la ligne : password required pam_cracklib.so retry=3 minlen=8
2/ dans l’édition vi /etc/fail2ban/jail.conf vous proposez d’inserrer
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
# durée du banissement
bantime = 900
mais ce fichier indique en haut
# To avoid merges during upgrades DO NOT MODIFY THIS FILE
# and rather provide your changes in /etc/fail2ban/jail.local
Ne vaudrait-il pas mieux créer ce fichier /etc/fail2ban/jail.local pour être tranquille lors des mises à jour (est-ce que vos procédures marcheraient encore?)
Merci de me dire (ou un lecteur expert) ce qu’il en est.
le 1 April 2012 à 19:02 h
@Jacques: Oui, je pense qu’il vaut mieux suivre le conseil, comme vous l’avez bien compris.
le 15 April 2012 à 3:18 h
Merci pour ce tuto !
Je suis arrivé à la fin de cette page :
sudo /etc/ntp.conf
Cette commande me renvoie :
sudo: /etc/ntp.conf: command not found
Est-ce normal?
le 16 April 2012 à 10:19 h
@Excellent : en effet la ligne de commande indiquée était fausse, il s’agissait d’éditer le fichier de configuration ntp.conf avec l’éditeur vi, donc :
`sudo vi /etc/ntp.conf`
J’ai corrigé dans la page, merci d’avoir signalé l’erreur !
le 19 April 2012 à 13:18 h
Merci encore pour ce travail Yann.
J’ai listé ici le recap des points de blocage et solutions que tu pourrais intégrer dans le tuto à destination des administrateurs débutants comme moi:
11. installation PhpMyadmin
Probleme 1: phpmyadmin n’apparait pas sur http://ksXXX.ovh.net/:
Je me suis inspiré de http://doc.ubuntu-fr.org/phpmyadmin
dans sudo vi /etc/phpmyadmin/apache.conf après avoir mis
Alias /mon_admin_de_mysql_en_php /usr/share/phpmyadmin
et relancé apache, la page http://ksXXX.ovh.net/mon_admin_de_mysql_en_php/ est introuvable
Explication : apache cherche par défaut dans “/var/www/phpmyadmin” et ce fichier n’existe pas. Sachant que l’installation s’est faîte dans “/usr/share/phpmyadmin”, il suffit de créer un lien symbolique :
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
Et là http://ksXXX.ovh.net/phpmyadmin/ s’affiche mais pas encore http://ksXXX.ovh.net/mon_admin_de_mysql_en_php/
En effet la configuration de base de phpmyadmin, sous apache, se trouve sous /etc/apache2/conf.d/ par lien symbolique à /etc/phpmyadmin/apache.conf Or ce lien n’existe pas donc il faut le créer avec
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf ce qui correspond au commentaire de @sorties entre amis
là çà ne marche toujours pas donc faire
sudo apache2ctl configtest && sudo service apache2 reload && sudo service apache2 status
Probleme 2: édition difficile sous crontab
Solution: avant le crontab -e
faire export EDITOR=vi
12. Configurer vos sites et vos sauvegardes
Problème: à l’exécution de sudo ./site-save.sh le systeme renvoyait le message d’erreur suivant:
“tar: Removing leading `/’ from member names”
Pour éviter cela il faut enlever le chemin absolu du répertoire sauvegardé i.e. remplaçer
“tar -czf /home/[utilisateur]/save/files/etc.tgz /etc >> /home/[utilisateur]/log/tar.log”
par
“tar -czf /home/[utilisateur]/save/files/etc.tgz -C / etc >> /home/[utilisateur]/log/tar.log”
idem pour les 4 lignes de files-save.sh qui renvoyait 4 fois ce même message d’erreur
13. Recevoir les alertes d’administration
passage en sudo imperatif sinon les commandes ne sont pas trouvées
sudo dpkg-reconfigure exim4-config
sudo /etc/init.d/exim4 restart
15. Installer NginX en mode reverse proxy pour accélérer l’accès aux statiques
Le tandem fonctionne bien quoique curieusement je doive impérativement laisser root /var/www dans /etc/nginx/sites-enabled/default alors que le blog est installé sur /var/www/wordpress (et idem coté config apache)
Maintenant le seul truc qui ne fonctionne pas c’est de servir les pages car dans wordpress j’ai une réécriture d’URL du type settings / permaliks / custom structure / /%year%/%postname%/
J’ai trouvé ceci à mettre dans /etc/nginx/sites-enabled/default lorsque l’on utilise nginx seul avec wordpress,
location / {
index index.php;
# Rewrite rules
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
comment l’adapter pour le tandem nginx + apache? ou faut-il faire autrement? (plugin wordpress ou autre?)
Merci pour tout
le 19 April 2012 à 14:51 h
@Jacques : Merci de partager ! j’intégrerais ces remarques dès que j’aurais l’occasion de ré-éditer cet article.
le 20 April 2012 à 14:29 h
@Yann mais dans l’immédiat comment prendre en compte les permalinks wordpress du type /%year%/%postname%/ ?? je sèche.
le 20 April 2012 à 14:50 h
Voir ici :
http://wiki.nginx.org/WordPress
le 20 April 2012 à 16:25 h
@yann dsl je ne m’en sors pas. J’ai publié un message sur http://forum.ovh.com/showthread.php?t=79056
le 20 April 2012 à 17:26 h
Perso, j’ai laissé tombé Nginx…
Ca marche très bien, mais dès que j’ai mis les règles d’écriture, ça ne fonctionne plus : “trop de redirections”.
Il ne trouve pas la page concernée.
le 20 April 2012 à 17:36 h
@Damien :
NginX est pourtant une excellente solution pour WordPress, y compris en cluster avec de très fortes volumétries. Le site WordPress.com tourne sur NginX, comme la plupart des plus gros sites WordPress. Personnellement je fais tourner un des plus gros sites WP de France (6 serveurs, 200000 visiteurs par jour, plusieurs commentaires par seconde), entièrement sous NginX. Au début il était sous Apache, puis on est passé à la configuration hybride décrite ici, et enfin maintenant on est en “full NginX”, plus simple, et très performant. Jamais eu le oindre problème de compatibilité. Y compris avec W3Total Cache, qui donne les règles à utiliser pour NginX, et avec bbPress.
On trouve les règles de réécritures NginX facilement sur le web (il y a plusieurs solutions possibles). Le lien que j’ai donné est la solution recommandée “officiellement” par l’auteur de NginX. C’est la plus récente et la plus performante.
le 20 April 2012 à 17:46 h
Je suis sous Prestashop, et pour le moment, je ne suis qu’à 1000 visites par jour sur un serveur dédié.
Je pense avoir de la marge.
Je dois passer au plus vite mon site sur ce serveur dédié, car actuellement il est sur un mutualisé, et c’est carrément trop lent…
Je referai des tests avec Nginx plus tard.
J’ai vu qu’il y avait également une autre version de Nginx (1.0.7 il me semble). Mais elle n’est qu’en bêta de mémoire.
le 20 April 2012 à 17:51 h
@Damien : si tu es sous Prestashop, demande les règles NginX à l’équipe Prestashop ! c’est leur boulot ! Va poster dans le forum de support de Prestashop. A mon avis d’ailleurs on doit déjà trouver l’info chez eux quelque part.
le 20 April 2012 à 20:57 h
@Yann on trouve effectivement plein de règles de réécriture pour nginx seul, mais pas dans la configuration hybride avec apache avec cette directive
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
tu faisais comment à l’époque ??
le 21 April 2012 à 10:07 h
@Y.Dubois et à tous ceux qui ont aussi galéré sur ces redirections, la solution est dans apache et non dans nginx: changer le AllowOverride None par AllowOverride All partout dans le fichier /etc/apache2/sites-enabled/000-default. (merci le forum ovh)
pour tout recommencer …
Maintenant çà marche pour moi.
Y’a plus qu’à attendre ton tuto sur wordpress en mode “full NginX”
le 22 April 2012 à 21:26 h
Une question :
exim4, il faut l’installer avant non?
Car on passe directement à la configuration dans le tuto.
Faut-il lancer :
aptitude install exim4
avant ?
le 5 May 2012 à 16:34 h
Merci à toi !
Ton site m’a été d’une aide précieuse et j’ai pu commencer à vraiment m’intéresser à l’administration réseau !
Un grand bravo
le 24 May 2012 à 21:53 h
Bonjour,
Ton tutoriel a l’air plutôt sympa mais je me suis arrêté dès le début.
Tu dis qu’il n’est pas recommandé d’utiliser l’utilisateur root pour des raisons de sécurité et pour cela, il faut créer un autre utilisateur avec certains privilèges.
Tout à fait d’accord.
Mais la commande ( adduser test, puis adduser test root ) me laisse perplexe.
En effet, en ajoutant l’utilisateur test au groupe root, c’est exactement comme ci tu te connecté avec l’utilisateur root.
Donc pour moi ça sert à rien de créer un utilisateur avec un accès total à la machine puisque il se trouve dans le groupe root.
Cordialement
le 31 May 2012 à 0:25 h
@Rathorian: Tu confonds la notion d’utilisateur et celle de groupe. En aucun cas un utilisateur du groupe root n’est la même chose que l’utilisateur root lui-même. Les actions réservées à l’utilisateur root ne peuvent pas être faites par un autre membre du groupe root. Au niveau des privilèges d’accès aux fichiers, le groupe et l’utilisateur sont également gérables séparément. Bref, être dans le groupe root ne donne pas un accès total à la machine. Fais le test…
le 11 September 2012 à 17:40 h
Cordialement pour le partage de l’information avec nous sur http://www.yann.com.
le 1 March 2013 à 17:16 h
Bonjour,
Je ne comprend pas ce qu’on doit éditer dans /etc/pam.d/common-password ?
Lorsque ont lance “pam-auth-update” ont dois juste sélectionner “ok” avec les deux cases cochés ?
Merci d’avance,
le 8 March 2013 à 17:00 h
Salut,
Merci pour le tuto!
Comme précisé plus haut, que doit-on éditer dans le fichier:
vi /etc/pam.d/common-password
J’ai ensuite un problème quand je me reconnecte après le reboot: la commande “su” me demande un mdp, et ni celui du root ni celui de mon user ne fonctionne.
le 8 March 2013 à 17:27 h
Pour common-password, vous n’avez rien à modifier si la configuration par défaut vous convient. Pour l’update, oui, juste accepter. Si le mot de passe de su est refusé c’est qu’il y a une faute de frappe, il n’y a pas de raison que ça ne fonctionne pas.
le 16 March 2013 à 22:52 h
Merci pour le tutoriel
Il est toujours difficile de tenir à jour des docs techniques. C’est en perpétuel mouvement…
Pour ceux que ça intéresse, j’essaye de tenir une doc publique de la configuration de mon serveur Kimsufi :
http://technix.starend.org/si/index.php/Zulu.starend.org
Il y a sûrement des erreurs, je n’ai pas assez de temps pour m’occuper de ce serveur.
C’est ma modeste contribution
Steph
le 27 March 2013 à 17:29 h
Bonjour,
Merci pour le tuto,
Juste une petite question comment fait-on pour protéger l’accès phpsysinfo et a Munin ???
Merci
le 27 March 2013 à 17:40 h
@Ganbil: si vous êtes sous Apache vous mettez un .htaccess et un .htpasswd pour avoir une authentification http obligatoire sur le répertoire par exemple. Sous NginX il faut le faire dans les fichiers de configuration NginX du vhost directement. Cherchez “htpasswd” sur Google pour trouver des tutoriaux.
le 27 March 2013 à 17:45 h
J’ai suivi votre tuto, donc je suis sur les deux, j’ai mis des htaccess dans les dossiers /phpsysinfo et /munin mais quand j’y accède par http://mon_ip_server:8080/phpsysinfo par exemple aucune restriction n’est faite.
le 27 March 2013 à 19:08 h
@Ganbil : pour que les fichiers .htaccess soient pris en compte il faut l’indiquer dans la configuration d’Apache et la configuration du vhost (directive AllowOverride). Voir ici : http://httpd.apache.org/docs/2.2/fr/howto/htaccess.html
le 27 March 2013 à 19:30 h
Ok merci, c’est nikel ^^