Artikelformat

APC unter Ubuntu (8.04 LTS aka Hardy Heron) installieren

Heute gibt es ein paar Infos zum OpCode-Caching. Grob gesagt wird der PHP-Code in einen OpCode compiliert und dieser wird anschließend ausgeführt. Bei jedem Aufruf eines PHP-Skripts passiert genau dieser Vorgang. Unabhängig davon, ob das Skript geändert wurde oder nicht. Hört sich ja eigentlich ziemlich unlogisch an und darum gibt es OpCode Caches. Diese speichern den OpCode und führen diesen dann aus. Damit spart man sich die Compile-Zeit.

Es gibt verschiedene OpCode-Caches und ich beziehe mich hier auf den APC (Alternative PHP Cache). Der Grund ist der, dass APC in PHP6 integriert sein sollte. Somit ist es natürlich sinnvoll ein System zu nutzen, das in Zukunft Standard sein könnte. Diese Anleitung beschreibt, wie man APC auf einem Ubuntu System installiert.

Hinweis: Nutzt man eine neuere Ubuntu Version, kann man APC direkt über apt installieren und muss sich nur noch um die Konfiguration kümmern.

1
apt-get install php-apc

Vielen Dank an Michael für diese Information.

Zuerst wird man root, denn dann ansonsten kann man keine Pakete nachinstalliert und man spart sich viele sudo.

1
sudo su

Zuerst aktualisiert man die Paketliste:

1
sudo apt-get update

Da APC aus dem PECL installiert wird, benötigt man einige Bibliotheken, die eine Entwicklungsumgebung bereitstellen:

1
apt-get install php5-dev php-pear

Nun benötigt man noch ein Apache Entwicklungspaket. Dies ist abhängig von der installierten Apache Version, daher muss man diese erst einmal herausbekommen. Am einfachsten ist dies, indem man in der Paketliste nachschaut. Dazu nutzt man folgenden Befehl:

1
dpkg --get-selections | grep apache2

Findet man hier apache2-mpm-prefork, dann muss man das Paket apache2-prefork-dev installieren. Bei apache2-mpm-worker muss es apache2-threaded-dev sein.

Nun kann man endlich APC installieren. Da man den OpCode-Cache wie bereits erwähnt im PECL findet, nutzt man den üblichen PECL Installationsaufruf:

1
pecl install apc

Die Installation dauert nur einen Moment und schon ist APC einsatzbereit. Es ist jetzt noch notwendig die APC-Erweiterung PHP bekannt zu geben und eine entsprechende Konfiguration zu übergeben. Dazu fügt man folgende Zeilen an das Ende der php.ini an. Hierbei sollte man darauf achten, dass man die php.ini modifiziert, die vom Apache genutzt wird. Im CLI ist das vielleicht auch ganz toll, würde aber nicht das erhoffte Ergebnis bringen.

1
2
3
4
5
extension = apc.so
apc.enabled = 1
apc.shm_size = 48
apc.include_once_override = 1
apc.mmap_file_mask = /tmp/apc.XXXXXX

Dann wie üblich bei Änderungen an der php.ini den Apache neu starten und apc ist aktiv. Überprüfen kann man dies, indem man eine php-Datei mit der phpinfo() Funktion aufruft. Die übliche Ausgabe wird um eine Sektion APC erweitert sein.

Hinweis: Wenn man sich das Quelltext-Paket hrunterlädt, findet man darin eine apc.php-Datei, legt man diese in seinem Webspace ab, so kann man eine kleine Statistik abrufen, wie gut APC funktioniert. Für die Beschleunigung gibt es eine Grundregel. Gibt es viel Code mit wenig Berechnung ist der OpCode-Cache sehr effizient. Hat man wenig Code mit viel Berechnung, ist die Effizienz weniger groß.

3 Kommentare

  1. Hallo,

    warum so aufwendig?
    apt-get update
    apt-get install php-apc

    danach nu noch config anpassen, apache oder lighty neustarten, fertig.
    So nutze ich es ebenfalls im Backend eines 24 Webserver starken Social-Networks.

    Antworten
    • Funktioniert aber nicht bei Ubuntu 8.04 Hardy Heron. Bei einigen Hostern wird eher diese LTS Version angeboten. Ich denke mal, dass du keine vserver nutzt und daher relativ unabhängig im Betriebssystem bist. Ich habe den Titel entsprechend angepasst, damit der Suchende den Unterschied schneller findet.

  2. Okay, arbeite bisher nur mit eigenen Serven, auf denen zum größten Teil Debian läuft. Wundert mich, dass das bei Ubuntu so nicht klappt…

    Antworten

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.