Skip to content

Kévin Dunglas

Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, Mercure.rocks, Vulcain.rocks and of some Symfony components.

Menu
  • Talks
  • Resume
  • Sponsor me
  • Contact
Menu

Accélérer PHP grâce à APC

Posted on August 13, 2005 by Kévin Dunglas

Il existe des accélérateurs pour PHP. Chaque script PHP est compilé avant d’être éxécuter. Ces petits logiciels qu’on nomme accélérateurs gardent en cache la version compilé des scripts ce qui boost énormément les performances de PHP ! Nous avons choisi APC qui un module PHP libre, gratuit et maintenu. Allez hop, installons le !

Ce tutoriel fait suite à celui sur l’installation de apache2, PHP (4 et 5) et suPHP, il est lui aussi écrit pour les systèmes basés Debian (testé sous Debian Sarge et Ubuntu Hoary).

Avant de commencez vérifier que vous avez les outils nécessaires pour compiler (gcc, …) en effet il n’existe aucun paquet debian pour APC, nous devrons l’installer depuis les sources. Installez aussi les paquets apache2-prefork-dev et php4-dev.

Téléchargez APC sur sa page web (version 3.0.6 à l’heure ou j’écris ses lignes).

Avant tout nous avons devons définir une variable d’environnement: $ export CPPFLAGS="-I/usr/include/apache2 -DAPC_PHP4_STAT"

Décompressons l’archive: $ tar xzvf APC-*.tar.gz

Passons dans le répertoire d’APC et executons phpize qui copiera quelques fichier nécessaires à la compilation dans ce répertoire:

$ cd APC-* $ phpize4

Configurons puis compilons APC:

$ ./configure --enable-apc --enable-apc-mmap --with-apxs=/usr/bin/apxs2 --with-php-config=/usr/bin/php-config4 $ make

Installons le ! Nous devons être root (sous Ubuntu utilisez sudo).
# make install

Il nous reste à ajouter la ligne extension=”apc.so” dans votre php.ini. Il se trouve dans le dossier /etc/php4/cgi/ si vous utilisez PHP en CGI et dans /etc/php4/apache2/ si vous utilisez le module.

Redémarrez apache avec /etc/init.d/apache2 restart puis créez un fichier test.php qui contient juste <?php phpinfo(); ?>. Affichez la page test.php dans votre navigateur web, si une section concernant APC apparaît tout va bien ! Votre PHP est maintenant accéléré ! Vous devriez voir la différence niveau vitesse d’exécution et la charge du serveur devrait baisser. N’hésitez pas à consulter le fichier INSTALL avec les sources d’APC pour le configurer aux petits oignons !

APC fonctionne aussi avec PHP5, son installation étant quasiment identique que pour PHP4 nous ne la détaillerons pas, voici juste les commandes à taper. Veillez tout de même à ce que le paquet php5-dev soit installé et n’oubliez surtout le make clean !!

$ make clean $ phpize5 $ ./configure --enable-apc --enable-apc-mmap --with-apxs=/usr/bin/apxs2 --with-php-config=/usr/bin/php-config5 $ make # make install

Ajoutez ensuite extension=apc.so dans le php.ini de PHP5 (/etc/php5/cgi/php.ini ou /etc/php5/apache2/php.ini), relancez apache et voilà ! Vous pouvez créez un test.php5 contenant <?php phpinfo(); ?> pour vérifier qu’APC est bien chargé.

Related posts:

  1. suPHP: php4 et php5 sur le même serveur et exécution des scripts PHP avec les droits de leur propriétaire
  2. Installer un stack LAMP sur un dédié OVH avec Ubuntu 12.10
  3. Astuce Apache: Résoudre les problèmes d’encodage
  4. Nouvelle offre d’hébergement à bas prix chez Gandi : installez votre serveur web

Leave a Reply Cancel reply

Follow me on Twitter

My Tweets

Subscribe to this blog

Recent Posts

  • Goroutines, threads, and thread IDs
  • New in Caddy 2.5: Redact Sensitive Data from Your Logs
  • Building Decentralized Web Apps with Solid and PHP
  • JSON Columns and Doctrine DBAL 3 Upgrade
  • Preventing CORS Preflight Requests Using Content Negotiation

Top Posts & Pages

  • Using the "103 Early Hints" Status Code in Go Applications
  • Generate a Symfony password hash from the command line
  • JSON Columns and Doctrine DBAL 3 Upgrade
  • PHP 7: Introducing a domain name validator and making the URL validator stricter
  • Vulcain: HTTP/2 Server Push
 and the rise of client-driven REST APIs
  • Webperf: PHP after Server Push
  • Preventing CORS Preflight Requests Using Content Negotiation
  • New in Caddy 2.5: Redact Sensitive Data from Your Logs
  • Building Decentralized Web Apps with Solid and PHP
  • Installing a LaTeX environment on a Mac

Persistence in PHP with the Doctrine ORM

Persistence in PHP with the Doctrine ORM

Tags

Apache API API Platform Buzz Caddy Docker Doctrine Go Google HTTP/2 Hydra hypermedia Hébergement Javascript JSON-LD Kubernetes La Coopérative des Tilleuls Les-Tilleuls.coop Lille Linux Mac Mercure Messagerie Instantanée MySQL Open Source PHP Punk Rock Python React REST Rock'n'Roll RSS Schema.org Security SEO SEO Symfony Symfony Live Sécurité Ubuntu Vue.js Web 2.0 Wordpress XHTML XML

Archives

Categories

  • DevOps (24)
  • Mercure (3)
  • Opinions (91)
  • Programming (179)
    • Android (5)
    • Go (12)
    • JavaScript (43)
    • PHP (137)
      • API Platform (60)
      • Symfony (89)
    • Python (14)
      • Django (5)
  • Security (15)
  • SEO (24)
  • Talks (37)
  • Ubuntu (68)
  • Wordpress (6)

Blogoliste

  • API Platform
  • Les-Tilleuls.coop
  • Mercure.rocks
  • Vulcain.rocks
© 2022 Kévin Dunglas | Powered by Minimalist Blog WordPress Theme