Home / WebServer / Apache / Zend OPcache – PHP Beschleuniger + OpCode Cache – Installation unter Debian, Ubuntu, Linux Mint
PHP Logo

Zend OPcache – PHP Beschleuniger + OpCode Cache – Installation unter Debian, Ubuntu, Linux Mint

Der PHP Zend Optimizer Plus war lange Zeit nur als kostenpflichtige Version erhältlich und ist seit Februar 2013 Open Source und umbenannt auf Zend OPcache. Der Grund für diesen Schritt ist wohl die fixe Integration in die nächste PHP Version

Update März 2013: Zend Optimizer Plus wurde in Zend OPcache umbenannt. Anleitung wurde angepasst.
Update Juni 2013: Anleitung auf die neueste Zend OPCache Version aktualisiert
Update Jänner 2014: OPcache wurde in PHP 5.5 integriert

Der Zend OPcache steigert die Performance und optimiert PHP indem er den Code vorkompiliert und im RAM (Hauptspeicher) hält und somit Verzögerungen durch Lesezugriffe auf die langsamerer Festplatte  reduziert.

Zend Optimizer+ wurde im Februar 2013 auf github umgezogen und ist so quelloffen und frei verfügbar. Mitte März wurde das Projekt in Zend OPcache umbenannt. Ich habe das Tool ausgiebig getestet und muss sagen dass die Performance wirklich beeindruckt. So funktioniert die Installation auf eurer Debian basierten Linux Distribution.

Wichtig ist hierbei immer, dass ihr auch eine entsprechende Webseiten Performance Analyse durchführt, damit man auch die Auswirkung von Zend OPcache sieht. Bei meinem Blog war mit aktivierten WP Super Cache Plugin eine Performancesteigerung von 20% möglich.

Zend OPcache unter Debian, Ubuntu und Linux Mint installieren

Voraussetzungen installieren:

Damit wir den Zend OPcache für unser Debian basiertes System kompilieren können, sind einige Pakete dafür notwendig, die in „build-essential“ enthalten sind, ausserdem benötigen wir das php5-dev Paket. (Diese Pakete sollten nach der Installation wieder entfernt werden). Dieses installieren wir über folgenden Befehl:

[bash]apt-get install build-essential php5-dev unzip[/bash]

Zend OPcache downloaden und entpacken:

Wir können die Quellpakete direkt bei github downloaden und nach /usr/src entpacken.

[bash]cd /usr/src
wget https://github.com/zend-dev/ZendOptimizerPlus/archive/master.zip[/bash]

Der PHP Beschleuniger befindet sich nun gezippt in unserem /usr/src Verzeichnis. Diesen werden wir nun entpacken.

[bash]unzip master.zip[/bash]

Zend OPcache kompilieren und installieren:

Mit folgenden Befehlen kompilieren/installieren wir den PHP Beschleuniger für unser System

[bash]cd /usr/src/ZendOptimizerPlus-master
phpize
./configure
make
make test
make install[/bash]

Die opcache.so PHP Extension wurde nun erfolgreich kompiliert und in das Extension Verzeichnis installiert. (Bei PHP 5.3/usr/lib/php5/20090626/ und bei PHP 5.4 /usr/lib/php5/20100525)

Damit das System sauber bleibt, sollten die, zuvor für den Buildprozess benötigten Pakete wieder deinstalliert werden:

[bash]apt-get remove –purge build-essential php5-dev[/bash]

Zend OPcache konfigurieren

Nachdem die Installation abgeschlossen sind, teilen wir unserem PHP mit, dass wir gerne den neuen PHP Beschleuniger verwenden möchten. Dazu legen wir eine neue ini Datei in unserem Standard PHP Verzeichnis an

[bash]vi /etc/php5/conf.d/opcache.ini[/bash]

Die gerade erstellte zendoptimizerplus.ini befüllen wir nun mit folgendem Inhalt:
(Wichtig hierbei ist ob ihr PHP 5.3 oder PHP 5.4 verwendet (php -v), die entsprechende Zeile (1 oder 2) mit ; ein bzw. auskommentieren)

[bash]zend_extension=/usr/lib/php5/20100525/opcache.so ;PHP 5.4
;zend_extension=/usr/lib/php5/20090626/opcache.so ;PHP 5.3
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=8000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1[/bash]

Die Werte sind sauber in der REAME File dokumentiert und sollten auf das eingesetzte System angepasst werden.

Gerade der Wert „opcache.memory_consumption“ kann bei viel RAM erheblich erhöht werden.

Nun wird der Apache neu gestartet

[bash]/etc/init.d/apache2 restart[/bash] [sam id=“2″ codes=“true“]

OPcache Installation überprüfen

Im ersten Schritt kann die Installation der PHP Erweiterung ganz einfach über die Kommandozeile überprüft werden:

[bash]php -v[/bash]

Ausgabe:

[bash highlight=“4″]PHP 5.4.16-1~dotdeb.1 (cli) (built: Jun 8 2013 22:07:31)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies[/bash]

Wenn in der Ausgabe ein Fehler erscheint, dann ist etwas schief gelaufen, bzw. sollten die Installationsschritte nochmal überprüft werden.

Um die Einstellungen der neu installierten PHP Erweiterung zu  überprüfen kann nun eine phpinfo.php Datei am Server angelegt werden (sollte nachher wieder entfernt werden):

[php]<?php
phpinfo();
?>[/php]

Der Aufruf im Browser sollte in etwa so wie hier aussehen:

PHP.ini Zend OPcache

Zend OPcache deinstallieren / entfernen

Um den PHP Beschleuniger wieder sauber zu entfernen, wird nur die .so und .ini Datei vom System entfernt:

[bash]rm /etc/php5/conf.d/opcache.ini
rm /usr/lib/php5/20100525/opcache.so
rm /usr/lib/php5/20090626/opcache.so[/bash]

Fazit

Der Zend OPcache ist nach einigen Test das Tool meiner Wahl, wenn es um die Beschleunigung von PHP geht. Es ist dabei um einiges schneller als eAccelerator und wird zudem noch aktiv weiterentwickelt und ist fester Bestandteil der PHP Version 5.5. Installationsanleitung von PHP5.5 unter Debian

4.3/5 - (21 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

15 Kommentare

  1. Frage, weil ich zu faul zum Suchen bin: Läuft der auch mit PHP5-FPM?

    • Ja läuft auch mit php5-fpm 😉

      • Super!
        Hatte darüber mal bei heise gelesen, mir aber nicht viel bei gedacht. Wenn aber ~20% drin sind, ist das vielleicht doch nicht so verkehrt.
        Dann werde ich es mir wohl mal anschauen müssen. Und noch was auf die 2do-Liste. 😛

        Danke für den Tipp.

        • japps, habe ebenfalls vor einigen Tagen darüber gelesen dass es endlich Open Source ist, allerdings keine wirklich gute Anleitung dafür gefunden. Gerade im Zusammenspiel mit PHP 4.5 ist die Performance wirklich Top!

      • Hi,
        leider steigen die php-fpm Childs mit aktiviertem opcache-Modul sofort aus Und Nginx bringt ne weiße Seite 🙁

        WARNING: pid 6306, fpm_children_bury(), line 252: [pool www] child 6307 exited with code 1 after 12.411664 seconds from start

        Das ganze unter Debian Squeeze und Ubuntu 12.04, nginx 1.2.7 und PHP-FPM 5.3.24 aus dem Dotdeb-Repository.
        Hat jemand ne Idee, woran das liegen könnte??

  2. Habe auch einen Fehler gefunden. Anscheinend wurde mittlerweile ZendOptimizer in opcache umbenannt und nun müssen die Konfigurationsvariablen auch mit „opcache.“ beginnen und nicht mit zend_optimizer. Deshalb wurden bei mir die Einstellungen nicht richtig übernommen.

    • Hallo Patschi, du hast vollkommend recht! ZendOptimizer+ hat den neuen Namen „Zend OPcache“ – werde die Anleitung natürlich sofort anpassen!

      Danke für den Hinweis!
      Patrick

  3. Alexander Diedler

    Hallo,
    WEnn ich zwei PHP Versionen, die PHP 5.2 ist manuell aus den Quellen erstellt worden und PHP 5.3 wurde per Apt-get installiert. Wie kann ich den OPCache inbeide versionen einbinden? Die Anleitung oben funktioniert nur mit der PHP 5.3 aus dem APT Installer.

    Alex

    • Ohne es jetzt genau zu wissen, aber dafür gibt es in den Compileoptionen doch i.d.R. Parameter. Nach groben Überfliegen würde ich diesen hier empfehlen: „–with-php-config=$PHP_DIR/bin/php-config“ in dem du dann eben den Pfad zu deinem anderen PHP angibst.

  4. Hallo allerseits,

    leider bin ich aus diversen Gründen bei einem Shared-Hoster 1und1. Dort habe ich zwar Shell-Zugang, aber durch mangelnde Zugriffe kann ich dort nichts kompilieren oder installieren – einzige Möglichkeit wäre es, per php.ini die opcache.so einzubinden.

    Gibt es eine Möglichkeit an die opcache.so ran zu kommen, wenn man weder kompilieren kann?

    LG

    Shentao

    • Hallo Shentao,

      du könntest ein identes System aufsetzen und dort kompilieren. Anschließend die .so Datei auf das System übertragen und einbinden.

      Gruß
      Patrick

      • Hi Patrick,

        danke für den Input! In Putty steht nach dem Login „Debian GNU/Linux“ – Würde es gehen, wenn ich demnach Debian auf einem USB-Stick installiere und von dort aus ausführe, oder könnte ich auch Ubuntu nutzen?

  5. Hallo,

    erstmal wollte ich sagen: Super Anleitung!

    Allerdings ist mir aufgefallen, dass wenn OPCache aktiviert ist, beispielsweise PMA unter http://ip/phpmyadmin nicht mehr erreichbar ist. Ich weiß nicht genau woran das liegt, aber das ist irgendwie schade. Hätte OPCache schon gerne genutzt.
    Hat noch irgendwer dieses Problem gehabt?

    MfG