Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / PHP / Installer l'extension PHP APC sur Debian

Installer l'extension PHP APC sur Debian

Par Pierre-Yves Landuré Dernière modification 02/03/2018 20:35

APC, acronyme de Alternative PHP Cache, est un cache d'op-code améliorant les performances du code PHP. C'est un outil incontournable si vous utilisez de nombreuses applications PHP.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy
  • Ubuntu 13.10 Saucy Salamander

Avertissement

Cet article est incompatible avec ces guides:

Prérequis

Ce guide nécessite:

Installation depuis les dépôts

Détectez le proxy de commande (command ou sudo):

cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'

Installez le logiciel:

if [ -n "$(command apt-cache pkgnames php5-apc)" \
-a -n "$(command dpkg --status "php5-common" | command grep "dotdeb")" ]; then
# Check for dot-deb packages.
${cmdProxy} apt-get -y install php5-apc
elif [ -n "$(command apt-cache pkgnames php-apc)" ]; then
${cmdProxy} apt-get -y install php-apc
fi

Rechargez la configuration :

test -e '/etc/init.d/php5-fpm' && ${cmdProxy} service 'php5-fpm' 'restart'
test -e '/etc/init.d/apache2' && ${cmdProxy} service 'apache2' 'force-reload'

Configuration

Détectez le chemin des fichiers de configuration des extensions PHP:

MODS_CONF_PATH='/etc/php5/conf.d'
test -d '/etc/php5/mods-available' \
  && MODS_CONF_PATH='/etc/php5/mods-available'

La configuration par défaut de APC est suffisante. Assurez-vous qu'il soit activé, et activez l'option permettant de suivre la progression des envois de fichiers:

echo '; APC Configuration
; priority=50
apc.enabled = 1
; Memory allocated to APC. Use Munin or APC Info to see if more is needed.
apc.shm_size="96M"
; rfc1867 allow file upload progression display.
apc.rfc1867 = on' \
| ${cmdProxy} tee "${MODS_CONF_PATH}/apc-config.ini"
[[ -x '/usr/sbin/php5enmod' ]] && ${cmdProxy} php5enmod 'apc-config/50'

Si nécessaire, appliquez les configurations spécifiques à PHP-FPM:

if [ -e '/etc/init.d/php5-fpm' ]; then
echo '; Enable APC ressources sharing.
; priority=50
apc.mmap_file_mask=/apc.shm.XXXXXX' \
    | ${cmdProxy} tee "${MODS_CONF_PATH}/apc-fpm.ini"
[[ -x '/usr/sbin/php5enmod' ]] && ${cmdProxy} php5enmod 'apc-fpm/50'
fi

Remarque: Si partager les données d'APC entre différents sites pose problème (de sécurité, par exemple), la solution est de créer un pool FPM par site. L'inconvénient majeur est que cela complexifie notablement la configuration du serveur.

Rechargez la configuration :

test -e '/etc/init.d/php5-fpm' && ${cmdProxy} service 'php5-fpm' 'restart'
test -e '/etc/init.d/apache2' && ${cmdProxy} service 'apache2' 'force-reload'

Installation manuelle

Si le paquet Debian n'existe pas, installez l'extension manuellement.

Détectez le chemin des fichiers de configuration des extensions PHP:

MODS_CONF_PATH='/etc/php5/conf.d'
test -d '/etc/php5/mods-available' \
  && MODS_CONF_PATH='/etc/php5/mods-available'

Préparation de l'environnement

installez les logiciels nécessaires:

command apt-get install php5-dev make php-pear apache2-prefork-dev libpcre3-dev

Mettez à jour PEAR:

command pear channel-update pear.php.net
command pear upgrade PEAR

Mettez à jour PECL:

command pecl channel-update pecl.php.net
command pecl upgrade

Mise en place du logiciel

Installez l'extension:

command pecl install 'apc' --with-apxs='/usr/bin/apxs2'

Activez l'extension:

echo "; configuration for php APC module
; priority=20
extension=apc.so" > "${MODS_CONF_PATH}/apc.ini"
command type -f 'php5enmod' &>'/dev/null' && command php5enmod 'apc'

Rechargez la configuration:

test -e '/etc/init.d/php5-fpm' && command service 'php5-fpm' 'restart'
test -e '/etc/init.d/apache2' && command service 'apache2' 'force-reload'

Vous pouvez maintenant configurer APC.

Finalisation

La procédure d'installation manuelle recommande:

Remerciements