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.apt-get install php-apcVielen 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
.
sudo su
Zuerst aktualisiert man die Paketliste:
sudo apt-get update
Da APC aus dem PECL installiert wird, benötigt man einige Bibliotheken, die eine Entwicklungsumgebung bereitstellen:
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:
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:
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.
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ß.