Maintenant que j’ai mon serveur web de base, je vais l’optimiser un peu.
En effet, si j’utilise des applications web comme Magento très gourmandes en ressource, il faut mieux passer par là.
Donc, je vais installer APC qui permet d’utiliser un cache pour améliorer les temps de réponses.
D’abord, il faut installer tout ce qu’il faut pour compiler les sources :
1 |
apt-get install build-essential libpcre3-dev |
Ensuite, on peut installer APC :
1 |
pecl install apc |
Laisser par défaut les valeurs au questions suivantes :
1 2 3 4 5 6 |
Enable internal debugging in APC [no] : Enable per request file info about files used from the APC cache [no] : Enable spin locks (EXPERIMENTAL) [no] : Enable memory protection (EXPERIMENTAL) [no] : Enable pthread mutexes (default) [yes] : Enable pthread read/write locks (EXPERIMENTAL) [no] : |
Si vous avez une erreur de ce type, il faut revoir l’installation de libpcre3-dev :
1 2 |
/tmp/pear/temp/APC/apc.c: In function ‘apc_regex_compile_array’: /tmp/pear/temp/APC/apc.c:454: error: ‘apc_regex’ has no member named ‘preg’ |
Les 3 dernières lignes doivent être comme ça :
1 2 3 |
install ok: channel://pecl.php.net/APC-3.1.9 configuration option "php_ini" is not set to php.ini location You should add "extension=apc.so" to php.ini |
A ce stade, il faut faire ce qui est marqué, à savoir ajouter une ligne dans le php.ini :
1 |
extension=apc.so |
Ajouter cette ligne à la fin du fichier /etc/php5/apache2/php.ini
Redmarrer le serveur Apache :
1 |
/etc/init.d/apache2 restart |
Tester la prise en compte d’APC avec le fichier phpinfo.php créé dans la partie 1.
Voici le résultat normal :
Dans la version que je viens d’installer, il y a un fichier qui permet de visualiser l’utilisation du cache :
1 |
/usr/share/php/apc.php |
Copier ce fichier à la racine du serveur web :
1 |
cp /usr/share/php/apc.php /var/www |
Dans un navigateur, utiliser l’URL d’accès au fichier (dans mon cas : http://172.17.207.65/apc.php)
Dans le code de apc.php, il faut changer le mot de passe par défaut.
Ensuite, il est possible d’utiliser les fonctions d’administration d’APC via un navigateur, comme par exemple, vider le cache d’APC (ce qui peut être utile lors des développements…).
Voilà pour la partie rapidité du serveur.
J’avais utilisé la commande suivante dans un article précédent intitulé « Ubuntu 10.10 – Serveur de développement – Partie 2 » :
1 |
ab -n 100 -c 5 http://172.17.207.65/ |
Cette commande permet de simuler l’accès de 100 utilisateurs sur le serveur web et de produire des statistiques.
Voici le résultat de la commande :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
root@debsrv001:/var/www# ab -n 100 -c 5 http://172.17.207.65/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 172.17.207.65 (be patient).....done Server Software: Apache/2.2.16 Server Hostname: 172.17.207.65 Server Port: 80 Document Path: / Document Length: 177 bytes Concurrency Level: 5 Time taken for tests: 0.195 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: 45300 bytes HTML transferred: 17700 bytes Requests per second: 512.08 [#/sec] (mean) Time per request: 9.764 [ms] (mean) Time per request: 1.953 [ms] (mean, across all concurrent requests) Transfer rate: 226.53 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 2.9 1 22 Processing: 1 7 16.4 2 89 Waiting: 0 5 13.1 2 68 Total: 2 9 16.5 3 90 Percentage of the requests served within a certain time (ms) 50% 3 66% 4 75% 6 80% 9 90% 21 95% 26 98% 90 99% 90 100% 90 (longest request) |