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

PHP Logo

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:

apt-get install build-essential php5-dev unzip

Zend OPcache downloaden und entpacken:

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

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

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

unzip master.zip

Zend OPcache kompilieren und installieren:

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

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

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:

apt-get remove --purge build-essential php5-dev

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

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

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)

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

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

/etc/init.d/apache2 restart

OPcache Installation überprüfen

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

php -v

Ausgabe:

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

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):

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:

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

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

Zend OPcache - PHP Beschleuniger + OpCode Cache - Installation unter Debian, Ubuntu, Linux Mint, 5.0 out of 5 based on 6 ratings
GD Star Rating
loading...
Patrick Schoyswohl

Patrick Schoyswohl

Systemadministrator
Hallo, mein Name ist Patrick Schoyswohl und ich bin Systemadministrator in einer Agentur für neue Medien und seit 2009 Betreiber und leidenschaftlicher Blogger von SysADMINsLife.com. Meine Leidenschaft gehört den Webservern und der Serverüberwachung auf Open-Source Basis. Falls du gefallen an meinen Artikel hast, kannst du mir gerne auf Google+, Facebook oder Twitter folgen.
Patrick Schoyswohl
Making Sites Uber Fast! Yeah @filiwiese #seokomm https://t.co/avT4fU6pZw - 5 Monaten ago
Patrick Schoyswohl

Tags: , , , , , , , , , , , , , , ,

Montag, 18. März 2013 Apache, Linux, WebServer Author: Patrick Schoyswohl

15 Comments zum Thema Zend OPcache – PHP Beschleuniger + OpCode Cache – Installation unter Debian, Ubuntu, Linux Mint

  • m3adow sagt:

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

    • Patrick sagt:

      Ja läuft auch mit php5-fpm 😉

      • m3adow sagt:

        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.

      • sacklaus sagt:

        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??

  • Patschi sagt:

    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.

    • Patrick sagt:

      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

  • Alexander Diedler sagt:

    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

    • m3adow sagt:

      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.

  • Shentao sagt:

    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

    • Patrick sagt:

      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

      • Shentao sagt:

        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?

  • Nils sagt:

    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

  • Leave a Reply

    Werbung schalten

    *=Affiliatelink

    Blogverzeichnis - Blog Verzeichnis bloggerei.de