APC (Alternative PHP Cache) In PHP5 (Debian Etch & Apache2) integrieren

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht, wie man APC (Alternative PHP Cache) in PHP5 auf einem Debian Etch System (mit Apache2) integriert. APC ist ein kostenloser PHP Opcode Cacher zum Zwischenspeichern und Optimieren von PHP intermediate code. Er ähnelt anderen PHP Opcode Cachern, wie zum Beispiel eAccelerator oder XCache.

Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

Ich habe dies auf einem Debian Etch Server mit der IP Adresse 192.168.0.100 getestet, auf dem Apache2 und PHP5 bereits installiert waren und funktionierten. Ich verwende in dieser Anleitung Apaches Standard Dokumenten-Root /var/www aus Demonstrationsgründen. Natürlich kannst Du auch jeden anderen vhost verwenden, es kann nur sein, dass Du den Pfad zur info.php Datei, die ich in dieser Anleitung verwende, anpassen musst.

2 Den derzeitigen Status von PHP5 überprüfen

Bevor wir APC installieren, müssen wir einige Angaben über unsere PHP5 Installation in Erfahrung bringen. Dazu erstellen wir die Datei info.php in unserem Dokumenten-Root /var/www:

vi /var/www/info.php


<?php
phpinfo(); ?>
Danach rufen wir diese Datei in einem Browser auf: http://192.168.0.100/info.php

Wie Du siehst, ist PHP 5.2.0 installiert...


... jedoch wird APC nirgendwo auf der Seite erwähnt:

3 Installation von APC

APC ist eine PHP Erweiterung, die mit PECL installiert werden kann. PECL hat das php-pear Paket, also installieren wir das nun:

apt-get install php-pear

Weiterhin müssen wir einige APC Abhängigkeiten installieren, damit PECL APC bauen kann:

apt-get install php5-dev apache2-prefork-dev build-essential

Da nun alle Abhängigkeiten installiert sind, können wir APC wie folgt installieren:

pecl install apc


server2:~# pecl install apc
downloading APC-3.0.17.tgz ...
Starting to download APC-3.0.17.tgz (116,058 bytes)
.........................done: 116,058 bytes
47 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Use apxs to set compile flags (if using APC with Apache)? [yes] : <-- ENTER

[...]


----------------------------------------------------------------------
Libraries have been installed in:
/var/tmp/pear-build-root/APC-3.0.17/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

running: make INSTALL_ROOT="/var/tmp/pear-build-root/install-APC-3.0.17" install
Installing shared extensions: /var/tmp/pear-build-root/install-APC-3.0.17/usr/lib/php5/20060613+lfs/
running: find "/var/tmp/pear-build-root/install-APC-3.0.17" -ls
998152 4 drwxr-xr-x 3 root root 4096 Mar 28 15:23 /var/tmp/pear-build-root/install-APC-3.0.17
998214 4 drwxr-xr-x 3 root root 4096 Mar 28 15:23 /var/tmp/pear-build-root/install-APC-3.0.17/usr
998215 4 drwxr-xr-x 3 root root 4096 Mar 28 15:23 /var/tmp/pear-build-root/install-APC-3.0.17/usr/lib
998216 4 drwxr-xr-x 3 root root 4096 Mar 28 15:23 /var/tmp/pear-build-root/install-APC-3.0.17/usr/lib/php5
998217 4 drwxr-xr-x 2 root root 4096 Mar 28 15:23 /var/tmp/pear-build-root/install-APC-3.0.17/usr/lib/php5/20060613+lfs
998213 416 -rwxr-xr-x 1 root root 418822 Mar 28 15:23 /var/tmp/pear-build-root/install-APC-3.0.17/usr/lib/php5/20060613+lfs/apc.so

Build process completed successfully
Installing '/var/tmp/pear-build-root/install-APC-3.0.17//usr/lib/php5/20060613+lfs/apc.so'
install ok: channel://pecl.php.net/APC-3.0.17
You should add "extension=apc.so" to php.ini
server2:~#

Da nun APC installiert ist, erstellen wir die Konfigurationsdatei /etc/php5/conf.d/apc.ini. Wir müssen zumindest die Zeile extension=apc.so hinzufügen; alle anderen Konfigurationsoptionen sind optional. Eine Liste mit allen Konfigurationsoptionen findest Du hier: http://de2.php.net/manual/en/ref.apc.php.

vi /etc/php5/conf.d/apc.ini


extension=apc.so
apc.enabled=1 apc.shm_size=30
Das war's. Starte Apache neu und Du bist fertig:

/etc/init.d/apache2 restart

Öffne danach info.php erneut in einem Browser: http://192.168.0.100/info.php

Nun solltest Du sehen, dass APC auf der Seite erwähnt wird, was bedeutet, dass es erfolgreich integriert wurd und wie erwartet funktioniert:

4 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte