mehrere PHP Versionen mit Plesk (12) betreiben (Teil 1: PHP auf VM kompilieren)

!! Der unten genannte Beitrag ist obsolet.. mit dem Plesk Update 12.0.18 Update 41 [07-Apr-2015] sind mehrere php versionen ‘nativ’ einfach zu installieren siehe http://kb.odin.com/125146 !!

Im Wesentlichen ist dieser Beitrag eine Kopie des exzellenten Artikels auf der Plesk Seite. Es gab denn doch ein paar Fallstricke (imap, –enable-fcgi) die umschifft werden mussten..

Ausgangssituation

  1. ubuntu 12.04.5 LTS (64bit)
  2. plesk 12 #update33
  3. PHP 5.3.10

PHP 5.6.6 kompilieren

Wir brauchen erstmal eine kompilierte PHP Version für unser Betriebsystem. Die kompilieren wir in einer vm (ich benutze virtualbox) damit die ganzen “Ich kompilier hier mal”-Pakete nicht auf dem Produktionsserver rumliegen.

virtuelle Maschine erstellen und ubuntu installieren

  1. ubuntu iso runterladen (ubuntu-12.04.4-server-amd64.iso)
  2. virtualbox starten
  3. neue virtuelle Maschine anlegen (Netzwerk > Angeschlossen an [Netzwerbrücke])
  4. starten > iso rein als Bootmedium,
  5. ubuntu installieren (Rechnername: vm-ubuntu12, Software: OpenSSH server, LAMP server)

optional

  1. einloggen in die vm > $ ip a (ip auslesen)
  2. in die eigene .ssh/config eintrag rein (z.B. vmub12) damit wir unser eingerichtetes cmd oder terminal etc.. benutzen können statt des virtualbox fensters

php 5.6 holen und entpacken

$ sudo su - 
$ cd /usr/local/src 
$ wget -O php-5.6.6.tar.gz http://de1.php.net/get/php-5.6.6.tar.gz/from/this/mirror 
$ tar xzfv php-5.6.6.tar.gz

notwendige Entwicklungs-Bibliotheken installieren

$ aptitude update && aptitude upgrade
$ aptitude install libxml2-dev libbz2-dev libcurl4-openssl-dev\
 libjpeg-dev libpng-dev libfreetype6-dev libgmp3-dev libc-client-dev\
 libicu-dev libsasl2-dev unixodbc-dev libpspell-dev\
 libsnmp-dev libxslt-dev libpq-dev libapache2-mod-fcgid\
 apache2-suexec libpcre3-dev libpcre++-dev libpng12-dev\
 libbz2-dev libcurl4-openssl-dev libc-client2007e-dev\
 libjpeg-dev libgif-dev libgif4 libpthread-stubs0\
 libpthread-stubs0-dev libx11-dev libxau-dev libxcb1-dev\
 libxdmcp-dev libxpm-dev x11proto-core-dev\
 x11proto-input-dev x11proto-kb-dev xtrans-dev libxml2-dev\
 libmysqlclient-dev libfreetype6-dev libapache2-mod-fastcgi\
 libmcrypt libmcrypt-dev mcrypt build-essential autoconf\

symlinks für libraries

$ ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
$ ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/

configure und make test

$ cd /usr/local/src/php-5.6.6
$ ./configure \
    '--with-libdir=lib/x86_64-linux-gnu'\
    '--cache-file=../config.cache'\
    '--prefix=/usr/local/php566-cgi'\
    '--with-config-file-path=/usr/local/php566-cgi/etc'\
    '--disable-debug'\
    '--with-pic'\
    '--disable-rpath'\
    '--with-bz2'\
    '--with-curl'\
    '--with-freetype-dir=/usr/local/php566-cgi'\
    '--with-png-dir=/usr/local/php566-cgi'\
    '--enable-gd-native-ttf'\
    '--without-gdbm'\
    '--with-gettext'\
    '--with-gmp'\
    '--with-iconv'\
    '--with-jpeg-dir=/usr/local/php566-cgi'\
    '--with-openssl'\
    '--with-pspell'\
    '--with-pcre-regex'\
    '--with-zlib'\
    '--enable-exif'\
    '--enable-ftp'\
    '--enable-sockets'\
    '--enable-sysvsem'\
    '--enable-sysvshm'\
    '--enable-sysvmsg'\
    '--enable-wddx'\
    '--with-kerberos'\
    '--with-unixODBC=/usr'\
    '--enable-shmop'\
    '--enable-calendar'\
    '--without-sqlite3'\
    '--with-libxml-dir=/usr/local/php566-cgi'\
    '--enable-pcntl'\
    '--with-imap'\
    '--with-imap-ssl'\
    '--enable-mbstring'\
    '--enable-mbregex'\
    '--with-gd'\
    '--enable-bcmath'\
    '--with-xmlrpc'\
    '--with-ldap'\
    '--with-ldap-sasl'\
    '--with-mysql=/usr'\
    '--with-mysqli'\
    '--with-snmp'\
    '--enable-soap'\
    '--with-xsl'\
    '--enable-xmlreader'\
    '--enable-xmlwriter'\
    '--enable-pdo'\
    '--with-pdo-mysql'\
    '--with-pdo-pgsql'\
    '--enable-intl'\
    '--enable-zip'\
    '--with-mcrypt'\
    '--without-pdo-sqlite'\
    '--with-config-file-scan-dir=/usr/local/php566-cgi/php.d'

Achtung: kompiliert wird ohne PEAR wer das braucht setzt noch dazwischen

'--with-pear=/usr/local/php566-cgi/pear'\

wenn das alles ohne Fehler durchläuft:

$ make

je nach cpu und was man davon der vm zugestanden hat dauert das etwas, also kaffee holen oder etwas anderes, wenn die Kompilation komplikationslos kompletierte kann das ganze zum Abholen eingepackt werden.

$ cd /usr/local/src
$ tar czf php566.tar.gz php-5.6.6/

in Teil 2 geht es weiter

 

 

 

 

 

4 Gedanken zu „mehrere PHP Versionen mit Plesk (12) betreiben (Teil 1: PHP auf VM kompilieren)

  1. Hi

    ich habe mich an deine Anleitung gehalten und in einer vm das builden von php-5.6.5 ausprobiert.
    ich habe nur die Pfade in configure angepasst in /usr/local/php-5.6.5

    Leider scheiterte dies bei configure zunächst an
    configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

    Dies konnte ich lösen über
    ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

    Nun erhalte ich bei make jedoch

    /usr/local/src/php-5.6.5/ext/intl/intl_convertcpp.cpp -o ext/intl/intl_convertcpp.lo
    env: g++: No such file or directory
    make: *** [ext/intl/intl_convertcpp.lo] Fehler 1

    Was tun?

    Danke
    Thilo

    1. shau mal ob es funktioniert --mode=compile cc an das configure mit ranzuhängen..
      und in meinem aptitude install fehlt fehlte “build-essential” welches gcc etc installiert.. also vlt fehtl der gcc?

  2. Hi,
    danke für den tollen Artikel.
    Eine Frage hätte ich. Ich arbeite das erste mal mit Plesk und bin auch bei Linux noch Anfänger.
    Du hast bei dem Punkt “virtuelle Maschine installieren…” unter Punkt 5 geschrieben “ubuntu installieren (Rechnername: vm-ubuntu12, Software: OpenSSH server, LAMP server)”.
    Was meinst du hier mit Software? Muss ich OpenSSH server und LAMP Server noch separat installieren?
    Wenn ja, wie mach ich das am besten?

    Danke!
    Markus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.