Configurer un VPS avec OpenLiteSpeed et LiteSpeed Cache

Connaissez-vous OpenLiteSpeed, LSCache et CyberPanel ? Non ? Alors, si vous voulez booster les performances de votre site — c'est le moment de découvrir ces trois outils…

Cet article a été mis à jour le 7 août 2025 ; il prend 24 minutes à lire et comporte 5886 mots.

Je ren­con­tre actuelle­ment un cer­tain nom­bre de bugs blo­quant dans Cyber­Pan­el, depuis le pas­sage à la ver­sion 2.4. Au point que je viens de pass­er mon pro­pre VPS sous aaPan­el. Plus d’in­fos dans un arti­cle à venir…

Êtes-vous à la recherche de per­for­mances pour votre site web ? Soyons hon­nêtes, nous courons tous après la per­for­mance. Alors soit vous avez accès à une solu­tion per­for­mante, soit vous êtes à la recherche d’une solu­tion pour boost­er les per­for­mances de votre site.

Juste­ment, si je vous demande quel serveur web utilise votre hébergeur, vous n’en avez peut-être pas la moin­dre idée…

Après tout, ce qui vous intéresse, ce sont les per­for­mances. Oui mais voilà, le serveur web­cou est — avec les ressources du serveur (dédié ou VPS) — un des élé­ments les plus impor­tants dans la quête de notre Saint Graal.

Avant d’en­tr­er dans le vif du sujet, savez-vous ce qu’est un serveur web ?

Lorsque j’ai posé la ques­tion, j’ai eu des répons­es telles que “OVH” ou “Info­ma­ni­ak” ???? Info­ma­ni­ak et OVH sont des hébergeurs pro­posant donc d’ac­cueil­lir vos don­nées sur des serveurs web physiques sur lesquels est instal­lé un logi­ciel égale­ment appelé serveur web… et c’est ce dernier serveur qui nous intéresse aujour­d’hui.

Pour faire court, le serveur web est le logi­ciel qui gère l’ac­cès à votre site depuis un nav­i­ga­teur. Il sert à inter­préter la demande de l’in­ter­naute pour lui ren­voy­er les don­nées demandées, si elles sont effec­tive­ment stock­ées dans un espace acces­si­ble, ou pour indi­quer qu’il ne peut pas fournir ces don­nées à un moment don­né (ce qui donne les pages d’er­reur [ 404 / 410 / 500 / 503… ] que vous avez déjà cer­taine­ment ren­con­trées).

Alors ? Quel est le serveur web pro­posé par votre hébergeur ?

Encore aujour­d’hui, d’après W3Techs, le serveur web le plus util­isé reste Apache, suivi de (très) près par Nginx. En troisième posi­tion nous trou­vons Clou­flare, qui tourne en fait sur une ver­sion cus­tomisée de Nginx. Lite­Speed n’est pas dans le trio de tête, il arrive en qua­trième posi­tion avec un peu plus de 8% d’u­til­i­sa­tion dans les serveurs web iden­ti­fiés. Mais alors qu’A­pache a per­du plus de 6% de parts du marché en un an, Lite­Speed a lui, gag­né un peu plus de 1%.

Et voilà notre chal­lenger — Open­Lite­Speed — en fait ver­sion open source de Lite­Speed. Moins con­nu, mais Lite­Speed est quand même le serveur util­isé par O2switch et Plan­etHoster, deux hébergeurs très per­for­mants.

Nous allons nous intéress­er à un envi­ron­nement open source com­plet : un serveur web (Open­Lite­Speed), un cache inté­gré au serveur web (Lite­Speed Cache) et une inter­face d’ad­min­is­tra­tion (Cyber­Pan­el), à installer sur un VPS.

Mais avant de voir cet envi­ron­nement, il va fal­loir…

Choisir son VPS

Pas besoin d’une recherche Google pour devin­er que le terme VPS va met­tre en avant les VPS OVH.

OVH, Ikoula, LWS, Hostinger et Ionos vont sans sur­prise domin­er cette pre­mière page. Et ces hébergeurs sat­is­fer­ont la plu­part de vos besoins. Le VPS à 5€ HT d’OVH est cor­rect, c’est même un des meilleurs choix (de rai­son) en entrée de gamme avec une bande pas­sante de plus du dou­ble des offres con­cur­rentes. J’ai effec­tué des tests avec leur offre Starter, encore moins chère mais avec une bande pas­sante réduite, et les résul­tats n’é­taient, glob­ale­ment, pas si mau­vais que ça…

Mais… parce que vous le savez, il y a tou­jours un mais — c’est un autre hébergeur (mon hébergeur) que je vais vous con­seiller : Con­tabo. Pour cinquante cen­times moins cher, vous aurez une con­fig­u­ra­tion autrement plus mus­clée : 3 vCores, 8Go de RAM, SSD NVMe de 75Go et 200Mbps de bande pas­sante. Con­tre, rap­pelons le quand même, 2 vCore, 2Go de RAM, 40Go d’e­space disque et 500Mbps chez OVH. Et les dat­a­cen­ters Con­tabo sont eux aus­si en Europe, en Alle­magne ou au Roy­aume Uni (au choix) pour être exact. Pour la pro­tec­tion des don­nées et la con­for­mité au RGPD, dif­fi­cile de faire mieux.

OpenLiteSpeed : le serveur rapide, léger, performant et gratuit

Oui mais, le chal­lenger, c’est Lite­Speed, pas Open­Lite­Speed… vous l’avez cer­taine­ment com­pris, le sec­ond est la ver­sion open source du pre­mier. Et dans les headers de votre page, Open­Lite­Speed ren­voie Server: LiteSpeed. Ce qui rend impos­si­ble le cal­cul de la part de cha­cun de ces deux serveurs dans les sta­tis­tiques.

Il y a bien quelques dif­férences entre les deux, mais ce sont des dif­férences mineures :

  • le cache serveur Lite­Speed est plus puis­sant
  • Lite­speed est 100% com­pat­i­ble avec Apache, Open­Lite­Speed quant à lui se “con­tente” de la com­pat­i­bil­ité avec les règles de réécri­t­ure (rewrite rules)
  • Les mod­i­fi­ca­tions requièrent un redé­mar­rage d’Open­Lite­Speed, Quand Lite­Speed les détecte et les applique à chaud
  • Open­Lite­Speed Lite­Speed peut être inté­gré aux inter­faces de ges­tion web Direc­tAd­min, Cyber­Pan­el et aaPan­el — Lite­Speed s’in­tè­gre égale­ment à cPan­el et à Plesk (ce sont des options payantes).

Mais pourquoi s’in­téress­er à un serveur web à la dis­tri­b­u­tion plutôt con­fi­den­tielle, alors que Nginx fait très bien l’af­faire, seul ou cou­plé à Apache ?

Tout sim­ple­ment parce que la force d’Open­Lite­Speed est ailleurs 😉

  • Avec Nginx, Cad­dy et Cloud­flare Serv­er (qui est une ver­sion mod­i­fiée de Nginx, ne l’ou­blions pas), Lite­Speed fait par­tie des très (trop) rares serveurs web à pro­pos­er le pro­to­cole HTTP/3. Même si ce pro­to­cole n’est pas encore mas­sive­ment adop­té côté nav­i­ga­teurs, il est sup­porté par Chrome, Fire­fox, Safari, Opera et même par Edge !
  • Le cache serveur d’Open­Lite­Speed est très per­for­mant — et grâce à l’ex­ten­sion Lite­Speed Cache (dans le dépôt Word­Press, nous la ver­rons plus loin dans l’ar­ti­cle) les per­for­mances sont au moins égales à celles que l’on obtient avec WP Rock­et. En aparté, ce cache intè­gre le bal­is­age ESI (util­isé par Var­nish Cache, Sym­fony, Fast­ly ou encore Aka­mai).
  • Open­Lite­Speed dis­pose d’une inter­face web native “con­viviale” pour effectuer toutes les opéra­tions que vous effectueriez en ligne de com­mande pour Nginx ou Apache — nous revien­drons sur cette inter­face dans l’ar­ti­cle.

Je vous en par­lais à l’in­stant, juste­ment, de…

L’interface de gestion d’OpenLiteSpeed

C’est un plus et non des moin­dres, vous n’avez pas besoin d’ef­fectuer la con­fig­u­ra­tion de vos sites, vhosts, lis­ten­ers… en mode ligne de com­mande depuis un ter­mi­nal tel que PuT­TY. Il suf­fit de lancer une con­sole web sur le port 7080 : https:[IP du serveur]:7080. Enfin, si vous êtes accros à la ligne de com­mande… rien ne vous empêche de l’u­tilis­er.

L’in­térêt de cette inter­face est moins fla­grant lorsqu’Open­Lite­Speed est cou­plé avec Cyber­Pan­el, mais au moins pour visu­alis­er cer­tains réglages ou amélior­er la sécu­rité de votre site, c’est sans com­mune mesure avec la ligne de com­mande…

Interface de gestion d'OpenLiteSpeed
Inter­face de ges­tion d’Open­Lite­Speed

Tout devient d’un coup bien plus sim­ple… même si, avouons-le, il faut quelques con­nais­sances de base en admin­is­tra­tion de site pour men­er à bien l’a­jout d’un site web.

LiteSpeed Cache : le cache serveur contrôlé depuis WordPress

Con­traire­ment aux exten­sions général­istes telles que WP Rock­et, WP Super Cache ou W3 Total Cache, l’ex­ten­sion Lite­Speed Cache est dédiée à Open­Lite­Speed (et à Lite­Speed). L’ex­ten­sion inter­ag­it directe­ment avec le serveur, ce qui lui per­met d’op­ti­miser au max­i­mum les per­for­mances de votre site.

J’ai effec­tué deux instal­la­tions de base de Word­Press : une avec Open­Lite­Speed et LS Cache et une clas­sique avec Nginx / Apache, un cache Nginx et WP Rock­et. J’ai ajouté une image, et ten­té de régler les deux exten­sions de manière sim­i­laire (com­pres­sion HTML / CSS / javascript, CSS cri­tique et javascript en mode dif­féré).

Sans cache, la page pèse 143Ko et génère 11 requêtes. Avec WP Rock­et, elle ne pèse plus “que” 138Ko et génère 9 requêtes. C’est déjà mieux. Mais avec Lite­Speed Cache, elle tombe à “seule­ment” 118Ko et génère tou­jours 9 requêtes. En ser­vant la page comme “sta­tique” on descend même à 94Ko tout en générant une requête de plus, soit 10 requêtes. De quoi dire que Lite­Speed Cache est per­for­mant, en plus d’être gra­tu­it.

Le tableau de bord de l’ex­ten­sion est intéres­sant quand on pense Core Web Vitals — les sig­naux web essen­tiels mis en avant par Google pour le classe­ment.

LS Cache - Tableau de bord
LS Cache — Tableau de bord

En 1, les indi­ca­teurs essen­tiels : les images et le CSS cri­tique — l’essen­tiel pour un charge­ment rapi­de de la page “vis­i­ble”.

En 2, le temps de charge­ment et le score Page­Speed — deux indi­ca­teurs majeurs des Web Core Vitals.

En 3 et 4, les autres indi­ca­teurs. Tout ce qui est généré via QUIC.cloud, le CDN Open­Lite­Speed / Lite­Speed.

Configurer LiteSpeed Cache

Si je vous dit que l’ex­ten­sion est util­is­able telle quelle, out of the box… mal­heureuse­ment non, ce n’est pas le cas. Mais pour autant, pas besoin de sor­tir de Saint-Cyr pour la con­fig­ur­er.

Si son inter­face est moins mod­erne que celle de WP Rock­et par exem­ple, elle est plus con­viviale que celle de bien des exten­sions de cache présentes dans le dépôt Word­Press, vu qu’on n’est pas agressé en per­ma­nence par des propo­si­tions de mise à jour vers une ver­sion Pro payante. Et pour cause, il n’y a pas de ver­sion payante.

Voici la page pour les réglages généraux :

Options générales - LiteSpeed Cache
Options générales — Lite­Speed Cache

Sobre, et préréglée. Véri­fiez quand même juste après avoir activé l’ex­ten­sion, cela ne vous pren­dra que quelques sec­on­des et vous ajus­terez éventuelle­ment en fonc­tion de vos besoins.

Toutes les autres réglages sont acces­si­bles via le menu latéral gauche de l’ad­min­is­tra­tion Word­Press, à l’en­trée Lite­Speed Cache. Vous allez devoir pass­er par chaque onglet pour régler chaque paramètre à grands coups de clics. 5 min­utes chrono, dans le pire des cas.

En aparté, Lite­Speed a égale­ment dévelop­pé des exten­sions de cache pour Magen­to, Joom­la, Prestashop, Open­Cart, Dru­pal 8, Xen­Foro, Medi­aWi­ki, Lar­avel, CS.Cart et Shop­ware… autrement dit, pour cha­cun de ces frame­works et appli­cat­ifs, vous tir­erez pleine­ment par­ti de la puis­sance d’Open­Lite­Speed. Et vous avez aus­si accès à une API, ce qui fait que vous pou­vez égale­ment implé­menter une solu­tion pour un tout autre envi­ron­nement.

QUIC.cloud — le CDN HTTP/3 dédié à LiteSpeed & OpenLiteSpeed

À l’in­star de Cloud­flare, QUIC.cloud implé­mente le pro­to­cole HTTP/3. Dif­fi­cile de faire autrement, pour le CDN dédié à Lite­Speed et à Open­Lite­Speed. Le tableau de bord est très sim­ple, il y a l’essen­tiel et rien d’autre. Son util­i­sa­tion pour un site Word­Press est gra­tu­ite, pour l’op­ti­mi­sa­tion des images, pour la généra­tion de CSS cri­tiques et pour l’u­til­i­sa­tion en tant que CDN. Exit les exten­sions d’op­ti­mi­sa­tion d’im­ages, QUIC.cloud gère très bien tout seul.

QUIC.cloud CDN
QUIC.cloud CDN

Activé en deux clics depuis l’in­ter­face de ges­tion du cache dans Word­Press, il ne demande que peu de réglages pour être fonc­tion­nel. Vous n’au­rez pas à pass­er d’écran en écran pour fig­nol­er votre instal­la­tion.

aaPanel, le panneau de contrôle alternatif

Livré brut de décof­frage, aaPan­el est tout aus­si intéres­sant et gra­tu­it que Cyber­Pan­el, que nous ver­rons ensuite, mais demande à être con­fig­uré de part en part une fois instal­lé. C’est un pan­neau de con­trôle util­isé prin­ci­pale­ment en Asie, où il est instal­lé sur plus de 2 mil­lions de serveurs en pro­duc­tion.

Le défaut majeur, c’est qu’il faut tout installer et con­fig­ur­er manuelle­ment. Mais c’est aus­si son prin­ci­pal avan­tage. Vous pou­vez installer les appli­ca­tions que vous souhaitez, et unique­ment celles que vous souhaitez : pas besoin d’un serveur de mails ? Ne l’in­stallez pas. Vous préférez aliSQL ou MySQL 8.0 à mari­aDB ? Installez la ver­sion que vous souhaitez utilis­er, voire les trois si le cœur vous en dit.

Cen­tos est la plate­forme native d’aa­Pan­el. Mal­heureuse­ment, cette dis­tri­b­u­tion n’est plus main­tenue, elle a été aban­don­née au prof­it de Cen­tos Stream, avec une dif­férence majeure : Cen­tos était une ver­sion sta­bil­isée de Red­Hat Enter­prise, alors que Cen­tos Stream sert de lab­o­ra­toire en inclu­ant les out­ils qui seront nor­male­ment inté­grés dans la prochaine release de Red­Hat Enter­prise.

Je vous con­seille d’u­tilis­er alma­l­in­ux ou Rocky Lin­ux, deux dis­tri­b­u­tions récentes qui repren­nent l’e­sprit de Cen­tos et sont 100% com­pat­i­bles binaire­ment avec Red­Hat Entre­prise. Après avoir ten­té l’in­stal­la­tion sur l’une et sur l’autre, tout fonc­tionne par­faite­ment.

Vous pou­vez égale­ment utilis­er aaPan­el sur Debian / Ubun­tu, mais cer­tains out­ils (tels que le serveur de DNS) ne fonc­tion­neront pas.

aaPanel - Panneau de contrôle
aaPan­el — Pan­neau de con­trôle

Vous aurez à installer tout, du serveur web (avec au choix, Apache, Nginx ou Open­lite­Speed), le serveur de bases de don­nées (MySQL 5.x, 8.0 ou Mari­aDB), le serveurFTP, PHP, node.js… enfin, vous avez un “con­teneur”, libre à vous de le con­fig­ur­er en fonc­tion de vos besoins.

Pour ma part, j’aime bien cette approche min­i­mal­iste : vous n’êtes pas encom­brés par tout un ensem­ble d’élé­ments qui ne vous ser­vent pas. Par con­tre, l’in­té­gra­tion d’Open­Lite­Speed n’est pas aus­si poussée que dans Cyber­Pan­el : vous allez devoir met­tre les mains dans le cam­bouis, aller mod­i­fi­er des fichiers de con­fig­u­ra­tion sur le serveur en mode SSH / CLI. Dom­mage…

CyberPanel : le panneau de contrôle d’OpenLiteSpeed et consorts

En fait, Cyber­Pan­el est l’un des trois pan­neaux de con­trôle com­pat­i­bles Open­Lite­Speed. Les autres, ce sont Direc­tAd­min (mais en plus d’être payant, il sem­ble ne pas être aus­si fine­ment con­fig­urable — de quoi dire “il y a moins bien, mais c’est plus cher…”), et aaPan­el.

L’in­ter­face est agréable, même si, il faut le recon­naître, elle n’est pas aus­si con­viviale que celle de Plesk par exem­ple. Dis­ons que l’on se trou­ve à mi-chemin entre la laideur et l’er­gonomie cauchemardesque de cPan­el et la con­vivi­al­ité de Plesk. Ni belle ni moche, bien au con­traire 😉

Cyber Panel - Panneau de contrôle
Cyber Pan­el — Pan­neau de con­trôle

Créer un site web et le sécuris­er avec Let’s Encrypt est très facile. Vous choi­sis­sez la ver­sion de PHP (de 7.2 à 8.0), vous pou­vez aus­si décider de créer un sous-domaine réservé aux emails (mail.votre-domaine.com). Ceci-dit, le SSL pro­posé pour la créa­tion d’un domaine (ou d’un sous-domaine) n’est pas un wild­card sécurisant les domaines de niveaux inférieurs. Pour chaque sous domaine créé (dont celui réservé aux emails) il va fal­loir sécuris­er avec Let’s Encrypt.

Création de domaine dans CyberPanel
Créa­tion de domaine dans Cyber­Pan­el

Cerise sur le gâteau, après avoir créé votre pre­mier domaine, vous pour­rez créer un sous-domaine (via la même inter­face, Cyber­Pan­el ne fait pas la dif­férence, a pri­ori) dédié à l’ac­cès à Cyber­Pan­el, en mode HTTPS sécurisé par un cer­ti­fi­cat Let’s Encrypt. Il suf­fi­ra, après avoir créé le sous-domaine, d’aller, dans le menu latéral, à SSL > Nom d’hôte SSL et de génér­er un cer­ti­fi­cat. Accéder à son pan­neau de con­trôle via https://cyberpanel.mondomaine.com:8090/ c’est quand même plus pro­pre que l’ac­cès via une URL en HTTPS non valide (auto-signé).

L’in­stal­la­teur d’ap­pli­ca­tion est plutôt basique mais s’en sort bien : l’in­stal­la­tion est pro­pre, avec la dernière ver­sion de Word­Press, sans ajout aucun, si ce n’est Lite­Speed Cache, mais c’est annon­cé dès le départ. Et bien sûr, en anglais, il fau­dra donc pass­er par les réglages généraux pour avoir une inter­face et des réglages internes (date, heure, mes­sages…) adap­tés à une audi­ence française.

CyberPanel - Installateur d'applications
Cyber­Pan­el — Instal­la­teur d’ap­pli­ca­tions

J’ai créé le site de démo avec cette inter­face :

CyberPanel - Installer WordPress
Cyber­Pan­el — Installer Word­Press

En plus de l’in­stal­la­teur (qui nor­male­ment, ne devrait pas servir tous les jours), vous trou­verez dans Cyber­Pan­el un autre out­il beau­coup plus utile si vous gérez une let­tre d’in­for­ma­tion : un out­il inté­gré de ges­tion d’email mar­ket­ing.

Outils pour lettre d'information - CyberPanel
Out­ils pour let­tre d’in­for­ma­tion — Cyber­Pan­el

Je ne l’ai pas encore testé, mais ça ne saurait tarder — et si l’es­sai est con­clu­ant, je n’en servi­rai prob­a­ble­ment pour mes let­tres d’in­for­ma­tion.

Les performances d’OpenLiteSpeed avec CyberPanel

J’ai fait point­er un sous-domaine vers le serveur pour effectuer mes tests. J’ai ensuite migré mon blog pour avoir une base “en con­di­tions réelles”. La seule mod­i­fi­ca­tion apportée, c’est le pas­sage de WP Rock­et à Lite­Speed Cache. Le résul­tat est sans appel ! Surtout, sou­venez-vous, que la con­fig­u­ra­tion du VPS de test est bien inférieure à celle de mon héberge­ment actuel.

Intéres­sons-nous tout d’abord aux tests GTmetrix :

Performances Tout sur WordPress avec Nginx + Apache
Per­for­mances Tout sur Word­Press avec Nginx + Apache
Performances Tout sur WordPress avec OpenLiteSpeed
Per­for­mances Tout sur Word­Press avec Open­Lite­Speed

Page plus légère (un gain d’un peu plus de 10%), temps de réponse inférieur, charge­ment plus rapi­de (gain de 30%), meilleurs Core Web Vitals… tout est dit, je n’ai rien à ajouter.

La sécu­rité n’est pas en reste, vous noterez le A+ dans le test Qualys / SSL Labs :

Test Qualys SSL Labs
Test Qualys SSL Labs

Alors bien sûr, j’ap­plique ma sauce per­so pour obtenir ce résul­tat, mais si je peux le faire (et quel que soit l’en­vi­ron­nement : Plesk, cPan­el, Cyber­Pan­el… ), vous pou­vez le faire aus­si.

Avec mon VPS kim­su­fi (pour les tests tout au moins), son vCore et ses 2Go de RAM, je passe 450 vis­ites (de la page d’ac­cueil d’un site Word­Press de base) en 15 sec­on­des, soit 30 pages servies par sec­onde. Pas si mal, même si je remar­que que les per­for­mances ne sont pas linéaires, en grande par­tie à cause du serveur, peu puis­sant, avec une bande pas­sante assez faible, et non garantie. N’empêche, même en divisant par 3, on reste sur du 10 pages par sec­onde, soit 600 pages par minute, 3600 par heure… j’ai de la marge vu mes stats 😐

Charge supportée par OpenLiteSpeed
Charge sup­port­ée par Open­Lite­Speed

Un retour rapi­de sur la bande pas­sante : les 100Mbps que vous offrent les offres d’en­trée de gamme ne per­me­t­tent pas des per­for­mances extra­or­di­naires. 100Mbps équiv­a­lent à 12,5Mo. Pas à 100Mo.

Vous divisez la bande pas­sante max­i­male par le poids de la page, et vous obtenez grosso modo le nom­bre de pages que peut servir votre VPS en 1 sec­onde.

Donc pour 100Mbps et une page de 500Ko : 12,5Mo / 0.5Mo vous ne servirez jamais plus de 25 pages par sec­onde. Si votre page pèse un bon Mo (ce n’est pas si rare), faites le cal­cul…

Théorique­ment, parce que la bande pas­sante n’est pas le seul fac­teur à pren­dre en compte. Le nom­bre de CPU, la puis­sance de chaque vCore, la mémoire, les dis­ques, le temps de réponse du serveur… tout est impor­tant. D’où l’im­por­tance d’op­ti­miser vos images et vos pages plus générale­ment.

Installer OpenliteSpeed sur votre VPS

Deux types d’in­stal­la­tion sont pos­si­bles : soit un pack Open­Lite­Speed / PHP / Mari­aDB / Word­Press via le script ols1clk.sh, sans Cyber­pan­el, mais il va nous man­quer des briques logi­cielles telles qu’un serveur DNS, un serveur FTP et un serveur d’emails, ou via Cyber­Pan­el, avec tout ce dont nous avons besoin pour un serveur com­plet. Tout dépend de vos attentes.

Installer OpenLiteSpeed sans CyberPanel

Open­Lite­Speed n’est pas gour­mand, il doit tourn­er sur un 80486 ou un Pow­er­PC G4 (mais si, vous trou­verez un vieux PC à écran catholique cathodique dans le plac­ard à grand-papa pour tester) avec 32Mo de RAM (la norme était plutôt de 4 voire de 8Mo) et un disque de 500Mo avec un sys­tème d’ex­ploita­tion vague­ment récent (15 à 20 ans) de type *nix : Unix, Lin­ux, FreeB­SD, Solaris, MacOS (au choix : Debian 4+, Ubun­tu 8.04+, Cen­tOS 5+, SunOS 5.8+, FreeB­SD 4.5+, MacOS 10.3+). Mais bon, atten­tion, c’est la con­fig­u­ra­tion min­i­male, vous n’irez pas très loin avec, et ne comptez pas installer MySQL et un serveur FTP…

On va dire qu’à min­i­ma, un bon vieux Pen­tium avec 8Go de RAM et un SSD pre­mier prix voire un SATA avec 5Go fer­ont large­ment l’af­faire et une carte Eth­er­net 100Mbps, si vous ne voulez pas pren­dre un VPS (1vCore / 2Go / 100Mbps suff­isent pour ten­ter l’aven­ture, mais je vous recom­mande 2 vCores / 4Go de RAM / 200Mbps si vous faites une instal­la­tion qui doit accueil­lir votre site en pro­duc­tion).

Mais quelle que soit la solu­tion retenue, n’ou­bliez pas qu’il faut une instal­la­tion fraîche de votre dis­tri­b­u­tion lin­ux, sous peine de ren­con­tr­er des inco­hérences lors de l’in­stal­la­tion d’Open­lite­Speed.

Nous allons suiv­re l’in­stal­la­tion sur une dis­tri­b­u­tion Debian / Ubun­tu. Debian 9, 10, Ubun­tu 18, 20… peu importe, la procé­dure est la même.

Une fois logué, en tant qu’ad­min­is­tra­teur ou sous votre iden­ti­fi­ant, vous devrez pass­er en root ou utilis­er la com­mande su, ce qui revient au même.

Ensuite, une com­mande suf­fit :

wget --no-check-certificate https://raw.githubusercontent.com/litespeedtech/ols1clk/master/ols1clk.sh && bash ols1clk.sh -w

Vous devrez répon­dre, par Y si vous souhaitez pour­suiv­re :

lancement du script ols1clk.sh
lance­ment du script ols1clk.sh

Quelques min­utes plus tard, votre écran va affich­er :

installation via ols1clk.sh terminée
instal­la­tion via ols1clk.sh ter­minée

Voilà, c’est ter­miné. Vous n’avez pas eu trop mal ? Non ? Alors récupérons les mots de passe :

cat /usr/local/lsws/password

Les mots de passe sont en clair, entourés par des cro­chets :

Mots de passe OpenLiteSpeed
Mots de passe Open­Lite­Speed

L’i­den­ti­fi­ant et le pot de passe WebAd­min vous per­me­t­tent d’ac­céder à la con­sole d’Open­Lite­Speed (et ne rêvez pas, ce sont les iden­ti­fi­ants générés aléa­toire­ment pen­dant mes tests, le serveur a été réin­stal­lé n fois +1 depuis).

Vous pou­vez per­son­nalis­er l’in­stal­la­tion en ren­seignant chaque option dans la ligne de com­mande (l’aide pour­rait être utile, elle est acces­si­ble via la com­mande bash ols1clk.sh --help) :

Options d'ols1clk.sh
Options d’ols1clk.sh

Donc pour installer Word­Press en français depuis la ligne de com­mande, en ren­seignant votre nom de domaine, vous lancerez plutôt :

wget --no-check-certificate https://raw.githubusercontent.com/litespeedtech/ols1clk/master/ols1clk.sh && bash ols1clk.sh --wplang fr_FR --wordpressplus mondomaine.com

Vous pou­vez égale­ment installer Open­Lite­Speed dans un con­tain­er Dock­er, vous trou­verez des images et les instruc­tions néces­saires sur le site offi­ciel de Lite­Speed.

Installer CyberPanel (avec OpenLiteSpeed)

Cyber­Pan­el intro­duit des con­traintes en ter­mes de dis­tri­b­u­tions Lin­ux com­pat­i­bles : Cen­tOS 7 & 8 (mais que nous allons laiss­er de côté, vu que même Cen­tOS 8 n’est plus main­tenu depuis le 9 avril 2021) et Ubun­tu 18 & 20. Nous pou­vons par­tir sur une Ubun­tu Serv­er 20.04.2 LTS (Long Term Sup­port) qui sera main­tenue jusqu’en avril 2025. À toutes fins utiles, vous pou­vez la télécharg­er ici : Get Ubun­tu Serv­er.

Une fois votre dis­tri­b­u­tion instal­lée, loguez-vous et prenez le con­trôle avec su. Il n’y a pas grand chose à faire, juste lancer cette ligne de com­mande :

sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)

Vous aurez à répon­dre à quelques ques­tions, mais vous devriez vous en sor­tir :

Installation de CyberPanel avec OpenLiteSpeed
Instal­la­tion de Cyber­Pan­el avec Open­Lite­Speed

Il ne reste plus qu’à atten­dre la fin de l’in­stal­la­tion, plus ou moins longtemps en fonc­tion de votre VPS.

Fin d'installation - CyberPanel
Fin d’in­stal­la­tion — Cyber­Pan­el

il ne vous reste plus qu’à relancer le serveur, tout est main­tenant en place.

Ajustements post installation

Cyber­Pan­el devient para­noïaque, dans ses dernières ver­sions tout est dés­ac­tivé par défaut dont le télécharge­ment de fichiers. En fonc­tion de la ver­sion d’in­stal­la­tion (2.4.2 actuelle­ment) curl est ou n’est pas activé sur cer­taines ver­sions de PHP, idem pour intl. On est tou­jours sur une con­fig­u­ra­tion par défaut le plus sou­vent inadap­tée pour Word­Press : upload_max_filesize à 2M, memory_limit à 128M… Pour uni­formiser la con­fig­u­ra­tion des veri­ons de PHP, j’ai pré­paré un script bash, fix_php_ols.sh.

Une fois con­nec­té en root sur votre VPS, ouvrez le fichi­er avec la com­mande suiv­ante :

vim /root/fix_php_ols.sh

Insérez le code suiv­ant (adaptez les pre­mières lignes pour que la con­fig­u­ra­tion soit telle que vous la souhaitez) :

#!/bin/bash

set -euo pipefail

# Dépendances
command -v apt >/dev/null || { echo "Ce script nécessite un système basé sur APT (Debian/Ubuntu)"; exit 1; }

# Paramètres à appliquer
declare -A PHP_SETTINGS=(
    ["file_uploads"]="On"
    ["upload_max_filesize"]="64M"
    ["post_max_size"]="64M"
    ["memory_limit"]="512M"
    ["max_execution_time"]="120"
    ["upload_tmp_dir"]="/tmp"
    ["expose_php"]="Off"
)

REQUIRED_EXTENSIONS=("curl" "mbstring" "intl" "json" "mysqli")

LSWS_BASE="/usr/local/lsws"
RESTART_REQUIRED=0
PHP_FOUND=()

echo -e "\n???? Détection des versions PHP installées dans $LSWS_BASE..."

for dir in "$LSWS_BASE"/lsphp*/; do
    [[ -d "$dir" ]] || continue
    php_bin="${dir}bin/php"
    [[ -x "$php_bin" ]] || continue

    version=$("$php_bin" -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
    ini_path=$(find "$dir"etc/php/ -name php.ini 2>/dev/null | head -n1)

    if [[ -f "$ini_path" ]]; then
        PHP_FOUND+=("$version|$ini_path|$php_bin")
    fi
done

if [[ ${#PHP_FOUND[@]} -eq 0 ]]; then
    echo "❌ Aucune version PHP trouvée."
    exit 1
fi

for entry in "${PHP_FOUND[@]}"; do
    IFS="|" read -r ver ini php <<<"$entry"
    echo -e "\n⚙️  Configuration de PHP $ver → $ini"

    for key in "${!PHP_SETTINGS[@]}"; do
        value="${PHP_SETTINGS[$key]}"
        if grep -qE "^$key\s*=" "$ini"; then
            sed -i "s|^$key\s*=.*|$key = $value|" "$ini"
        else
            echo "$key = $value" >> "$ini"
        fi
    done

    echo "   ✅ Paramètres corrigés"

    echo "   ???? Extensions requises :"
    for ext in "${REQUIRED_EXTENSIONS[@]}"; do
        if "$php" -m | grep -qw "$ext"; then
            echo "      ✔ $ext"
        else
            echo "      ❌ $ext ABSENT — tentative d'installation"
            apt-get install -y "php${ver}-${ext}" && RESTART_REQUIRED=1 || echo "         ⚠️ Échec installation php${ver}-${ext}"
        fi
    done

    RESTART_REQUIRED=1
done

if [[ $RESTART_REQUIRED -eq 1 ]]; then
    echo -e "\n♻️  Redémarrage OpenLiteSpeed..."
    $LSWS_BASE/bin/lswsctrl restart
else
    echo -e "\n✅ Aucun redémarrage nécessaire"
fi

echo -e "\n???? Terminé. Tous les `php.ini` corrigés et extensions vérifiées."

Ren­dez-le exé­cutable :

chmod +x /root/fix_php_ols.sh

Lancez-le en root :

./fix_php_ols.sh

Ajustements pour MariaDB

Pour opti­miser l’u­til­i­sa­tion mémoire / CPU de Mari­aDB, je vous recom­mande de cus­tomiser le fichi­er 50-server.cnf. Com­mencez par ouvrir le fichi­er :

vim /etc/mysql/mariadb.conf.d/50-server.cnf

Insérez dans le fichi­er, après la balise [mysqld], en adap­tant les valeurs (ici pour un VPS avec 3 vCPU et 8Go de RAM) :

# Basique
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_thread_concurrency = 6
thread_cache_size = 50
thread_pool_size = 4

skip-name-resolve
max_connections         = 150
connect_timeout         = 10
wait_timeout            = 300
thread_cache_size       = 100

# Mémoire (adaptée à 8 Go total système)
innodb_buffer_pool_size = 3G
innodb_buffer_pool_instances = 2
innodb_log_file_size    = 512M
innodb_log_buffer_size  = 64M
innodb_flush_log_at_trx_commit = 2

# Cache
query_cache_type        = 0
query_cache_size        = 0
tmp_table_size          = 256M
max_heap_table_size     = 256M
table_open_cache        = 4096
open_files_limit        = 65535

# Journalisation
slow_query_log          = 1
slow_query_log_file     = /var/log/mysql/slow.log
long_query_time         = 1

# Sécurité minimale
local-infile            = 0

# Charset par défaut
character-set-server    = utf8mb4
collation-server        = utf8mb4_unicode_ci

Redé­mar­rez le ser­vice :

systemctl restart mariadb

Et c’est ter­miné. Votre con­fig­u­ra­tion de Mari­aDB est ter­minée.

Mise à jour d’OpenLiteSpeed

Dans le cas où Open­Lite­Speed ne serait pas à jour, il est tou­jours intéres­sant de pass­er à la dernière ver­sion pour prof­iter des cor­rec­tions et des nou­velles fonc­tion­nal­ités.

Nous allons d’abord met­tre actu­alis­er le fichi­er de dépôt debian :

wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash

Ensuite, ouvrez le fichi­er lst_debian_repo.list avec vim :

vim /etc/apt/sources.list.d/lst_debian_repo.list

Décom­mentez la sec­onde ligne (x pour sup­primer le # puis :x pour enreg­istr­er et sor­tir). Puis lancez cette ligne de com­mande :

apt update && apt upgrade

Une fois la mise à jour ter­minée, ren­dez-vous dans les out­ils d’ad­min­is­tra­tion d’Open­Lite­Speed :

cd /usr/local/lsws/admin/misc

Puis lancez une com­mande pour définir l’i­den­ti­fi­ant et le mot de passe de la con­sole web d’Open­Lite­Speed :

./admpass.sh

Voilà, le sys­tème est en place, et à jour, vous accédez à Cyber­Pan­el sur le port 8090 et après avoir ajouté une règle au pare-feu, vous accèderez à l’in­ter­face d’ad­min­is­tra­tion d’Open­Lite­Speed via le port 7080.

Il ne reste plus qu’à con­fig­ur­er l’ensem­ble avant de prof­iter pleine­ment de votre nou­veau serveur.

En tout pre­mier lieu, installez le pare-feu (CSF) ain­si que Mod­Se­cu­ri­ty. Les deux sont acces­si­bles dans l’on­glet Sécu­rité de l’in­ter­face (menu latéral gauche), et s’in­stal­lent en un clic.

Ajoutez le port 7080 à la liste des ports autorisés, vous en aurez besoin pour accéder à la con­sole Open­Lite­Speed.

CyberPanel - CSF (pare-feu)
Cyber­Pan­el — CSF (pare-feu)

Voilà, vous avez un serveur web com­plet (web / ftp / emails) con­fig­uré, prêt à servir ! Il ne reste plus qu’à créer votre pre­mier domaine, à ajouter un accès FTP si besoin, un email…

Mise à jour de CyberPanel

Pour éviter les failles de sécu­rité et prof­iter des amélio­ra­tions logi­cielles, il est impératif de met­tre à jour régulière­ment Cyber­Pan­el. Vous pou­vez effectuer cette mise à jour depuis l’in­ter­face web (menu latéral gauche : Dashboard > Version Management), ou en ligne de com­mande depuis un ter­mi­nal SSH :

sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)

Je vous pro­pose une alter­na­tive qui vous évite toute inter­ven­tion manuelle une fois mise en place… via cron.

Mise en place d’une mise à jour automatisée de CyberPanel

Nous allons créer un script basé sur la ligne de com­mande précé­dente, avec les fonc­tion­nal­ités suiv­antes :

  • Sys­tème de ver­rous : Évite les exé­cu­tions simul­tanées
  • Log­ging com­plet : Toutes les actions sont enreg­istrées dans un fichi­er log
  • Fall­back automa­tique : Utilise curl en pre­mier, puis wget en cas d’échec
  • Véri­fi­ca­tion de con­nec­tiv­ité : Teste la con­nex­ion Inter­net avant de procéder
  • Net­toy­age automa­tique : Sup­prime les fichiers tem­po­raires même en cas d’er­reur

Depuis une con­sole SSH, créez le fichi­er cyberpanel_update.sh :

vim /usr/local/bin/cyberpanel_update.sh

Insérez le code suiv­ant dans le fichi­er fraîche­ment créé :

#!/bin/bash

# Script de mise à jour automatique de CyberPanel
# Date: $(date +%Y-%m-%d)

# Configuration des logs
LOG_FILE="/var/log/cyberpanel_update.log"
LOCK_FILE="/tmp/cyberpanel_update.lock"

# Fonction de logging
log_message() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

# Fonction de nettoyage
cleanup() {
    if [ -f "$LOCK_FILE" ]; then
        rm -f "$LOCK_FILE"
        log_message "Verrou supprimé"
    fi
}

# Trap pour nettoyer en cas d'interruption
trap cleanup EXIT INT TERM

# Vérifier si le script est déjà en cours d'exécution
if [ -f "$LOCK_FILE" ]; then
    log_message "ERREUR: Une mise à jour est déjà en cours (fichier de verrou existant)"
    exit 1
fi

# Créer le fichier de verrou
touch "$LOCK_FILE"
log_message "Début de la mise à jour CyberPanel"

# Vérifier la connectivité Internet
if ! ping -c 1 google.com &> /dev/null; then
    log_message "ERREUR: Pas de connexion Internet disponible"
    exit 1
fi

# Fonction pour exécuter la mise à jour
execute_update() {
    local method=$1
    local url="https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh"
    
    case $method in
        "curl")
            if command -v curl &> /dev/null; then
                log_message "Utilisation de curl pour télécharger le script de mise à jour"
                curl -fsSL "$url" | bash
                return $?
            else
                log_message "curl n'est pas disponible"
                return 1
            fi
            ;;
        "wget")
            if command -v wget &> /dev/null; then
                log_message "Utilisation de wget pour télécharger le script de mise à jour"
                wget -O - "$url" | bash
                return $?
            else
                log_message "wget n'est pas disponible"
                return 1
            fi
            ;;
        *)
            log_message "Méthode inconnue: $method"
            return 1
            ;;
    esac
}

# Tenter la mise à jour avec curl en premier, puis wget en fallback
log_message "Tentative de mise à jour avec curl..."
if execute_update "curl"; then
    log_message "Mise à jour réussie avec curl"
    exit 0
else
    log_message "Échec avec curl, tentative avec wget..."
    if execute_update "wget"; then
        log_message "Mise à jour réussie avec wget"
        exit 0
    else
        log_message "ERREUR: Échec de la mise à jour avec curl et wget"
        exit 1
    fi
fi

Ren­dez le fichi­er exé­cutable :

chmod +x /usr/local/bin/cyberpanel_update.sh

Con­fig­urez la tâche cron :

crontab -e

Ajoutez la ligne suiv­ante (ou adaptez-la) :

0 5 * * * /usr/local/bin/cyberpanel_update.sh

Et voilà, c’est ter­miné, vous n’avez plus rien à faire, la mise à jour se fera automa­tique­ment tous les jours à 5h, sans que vous n’ayez à inter­venir !

Pour sur­veiller les logs, rien de plus sim­ple :

# Voir les dernières mises à jour
sudo tail -f /var/log/cyberpanel_update.log

# Voir l'historique complet
sudo cat /var/log/cyberpanel_update.log

Le mot de la fin

J’ai redé­cou­vert Open­Lite­Speed en cher­chant des solu­tions alter­na­tives à Plesk, que j’ai util­isé pen­dant plus de 5 ans mais dont le coût n’é­tait pas nég­lige­able.

Ceci-dit, con­fig­ur­er un serveur pour un site en pro­duc­tion ne s’im­pro­vise pas, cela demande un cer­tain investisse­ment en temps et en tests (je n’ai pas de com­pé­tences innées, hélas), j’ai donc ten­té, testé, retesté, véri­fié, revéri­fié… avant de pass­er deux sites sous Open­Lite­speed : Tout sur Word­Press, sur lequel vous êtes actuelle­ment, et Alla Tavola di Cesca­to — Cuci­na ital­iana e caf­fè, un blog de recettes (ital­i­ennes). Ain­si que mes réal­i­sa­tions les plus récentes, comme le site d’une pizze­ria locale : Zio Enzo. Et j’ai pour­suivi la migra­tion au fil du temps, en fonc­tion de mes impérat­ifs pro­fes­sion­nels et famil­i­aux.

J’ai même con­va­in­cu d’autres agences web et entre­pris­es de pass­er à Cyber­Pan­el / Open­Lite­Speed — ce sont main­tenant des dizaines de sites autour de moi, dont des sites e‑commerce et des appli­ca­tions web qui utilisent cette solu­tion alter­na­tive pour des per­for­mances en hausse et un coût revu à la baisse.

Atten­tion ! Si vous avez des sites en pro­duc­tion sur votre serveur, n’ou­bliez pas de le sécuris­er : choi­sis­sez un mot de passe fort et changez-le régulière­ment, met­tez Cyber­Pan­el à jour dès qu’une mise à jour est disponible, changez le port par défaut (de 8090 à 8312 par exem­ple), effectuez des sauve­g­ardes régulières — ne sim­pli­fiez pas la tâche des hack­ers, ce serait som­mage de voir votre instal­la­tion par­tir en fumée par nég­li­gence…

Et vous, allez-vous ten­ter Open­Lite­Speed, avec ou sans Cyber­Pan­el ? Ou peut-être avez-vous déjà migré vers ce serveur web…

Les chiffres clés :

  • 26 répons­es au sondage dans Fans de Word­Press sur Face­book
  • 25 instal­la­tions / réin­stal­la­tions de la dis­tri­b­u­tion, d’Open­Lite­Speed, de Cyber­Pan­el, d’aa­Pan­el… ou peut-être plus, j’ai arrêté de compter il y a longtemps déjà 😉
  • 40 heures, à la louche (entre les recherch­es, les tests et la rédac­tion)
  • 157 révi­sions (avec l’en­reg­istrement automa­tique dés­ac­tivé)
  • 150 tass­es de café (ou peut-être plus) — mer­ci à ma cafetière napoli­taine trou­vé sur un stand de bro­cante 😉

Cer­tains liens de cet arti­cle sont des liens affil­iés ; c’est à dire que si vous achetez en suiv­ant un des liens de cet arti­cle, vous ne paierez pas plus cher, et moi je toucherai éventuelle­ment une petite com­mis­sion.

2 réflexions sur “Configurer un VPS avec OpenLiteSpeed et LiteSpeed Cache”

  1. SI c’est pas un arti­cle com­plet, avec un ton plus que sym­pa et très bien fait, je ne sais pas ce que c’est !
    Je garde le lien (et à cause de toi, j’ai pris 2 serveurs M chez Con­tabo, avec ton lien, j’e­spère que tu touch­es quelque chose !).
    Mer­ci pour ce tra­vail et je clique de suite sur “s’abon­ner”.

Les commentaires sont fermés.

Retour en haut
Les cookies que nous utilisons sont indispensables au bon fonctionnement de ce site. Il n'y a aucun pistage publicitaire et les données statistiques recueillies sont anonymisées.
J'ai compris