43 Reaktionen

PHP 5.3 und 5.4 unter Debian 7 wheezy parallel installieren

Geschätzte Lesedauer:

Ich hatte hier bereits Artikel veröffentlicht, wie unter Debian 6 (squeeze) PHP 5.4 bzw. 5.2 parallel zum System-Standard 5.3 installiert werden können.
Mit Debian wheezy ist nun PHP 5.4 zum System-Standard geworden. Da einige Seiten jedoch noch PHP 5.3 benötigen, hier nun eine kurze Anleitung, wie dies zu bewerkstelligen ist.

Wie immer gilt auch bei dieser Anleitung: Verwendung auf eigene Gefahr.

Da die PHP 5.3 Version für die Nutzung mit mod_fcgid selbst kompiliert werden muss, stellen wir zuerst einmal sicher, dass wir die benötigten Pakete zum kompilieren installiert haben.
Davon, dass die grundlegenden Programme zum Kompilieren von Quellcode (z. B. gcc) installiert sind, gehe ich an dieser Stelle einmal stillschweigend aus.

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

apt-get install 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

[/pastacode]

Als nächstes laden wir uns die aktuelle Version des PHP Quellcodes. Zum Zeitpunkt dieses Artikels war die aktuellste Version 5.3.25.

[pastacode lang=“bash“ message=““ highlight=““ provider=“manual“]

cd /tmp
wget "http://de.php.net/get/php-5.3.25.tar.bz2/from/this/mirror" -O php.tar.bz2
tar xjf php.tar.bz2
cd php-5.3.25

[/pastacode]

Nach dem Entpacken und Wechseln in das Quellcode-Verzeichnis kommt es beim Kompilieren nun darauf an, ob wir eine 64Bit oder eine 32Bit Installation von Debian verwenden.

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

server1:~# uname -a
Linux server1 2.6.30-2-amd64

[/pastacode]

In meinem Fall ist das System also mit einem 64Bit Kernel ausgestattet, wenn dort i386 oder i686 statt des amd64 steht kann man davon ausgehen, dass eine 32Bit Version installiert ist.

Kompilier-Befehl für 32Bit:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

./configure --prefix=/usr/share/php53 --datadir=/usr/share/php53 --mandir=/usr/share/man --bindir=/usr/bin/php53 --with-libdir=lib/i386-linux-gnu --includedir=/usr/include/php53 --sysconfdir=/etc/php53/apache2 --with-config-file-path=/etc/php53/apache2 --with-config-file-scan-dir=/etc/php53/conf.d --enable-libxml --enable-session --with-pcre-regex=/usr --enable-xml --enable-simplexml --enable-filter --disable-debug --enable-inline-optimization --disable-rpath --disable-static --enable-shared --with-pic --with-gnu-ld --with-mysql --with-gd --with-jpeg-dir --with-png-dir --with-xpm-dir --enable-exif --with-zlib --with-bz2 --with-curl --with-ldap --with-mysqli --with-freetype-dir --enable-soap --enable-sockets --enable-calendar --enable-ftp --enable-mbstring --enable-gd-native-ttf --enable-bcmath --enable-zip --with-pear --with-openssl --with-imap --with-imap-ssl --with-kerberos --enable-phar --enable-pdo --with-pdo-mysql --with-mysqli

[/pastacode]

Kompilier-Befehl für 64Bit:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

./configure --prefix=/usr/share/php53 --datadir=/usr/share/php53 --mandir=/usr/share/man --bindir=/usr/bin/php53 --with-libdir=lib/x86_64-linux-gnu --includedir=/usr/include/php53 --sysconfdir=/etc/php53/apache2 --with-config-file-path=/etc/php53/apache2 --with-config-file-scan-dir=/etc/php53/conf.d --enable-libxml --enable-session --with-pcre-regex=/usr --enable-xml --enable-simplexml --enable-filter --disable-debug --enable-inline-optimization --disable-rpath --disable-static --enable-shared --with-pic --with-gnu-ld --with-mysql --with-gd --with-jpeg-dir --with-png-dir --with-xpm-dir --enable-exif --with-zlib --with-bz2 --with-curl --with-ldap --with-mysqli --with-freetype-dir --enable-soap --enable-sockets --enable-calendar --enable-ftp --enable-mbstring --enable-gd-native-ttf --enable-bcmath --enable-zip --with-pear --with-openssl --with-imap --with-imap-ssl --with-kerberos --enable-phar --enable-pdo --with-pdo-mysql --with-mysqli

[/pastacode]

Beim Vorbereiten der Kompilierung von PHP fehlt auf den Maschinen eine Abhängigkeit, es kommt zu einer Fehlermeldung ähnlich wie dieser:
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
Um dies zu korrigieren reicht ein kleiner Befehl vor dem Kompilieren:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

[/pastacode]

bzw für 32bit

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

ln -s /usr/lib/libc-client.a /usr/lib/i386-linux-gnu/libc-client.a

[/pastacode]

Der einzige Unterschied zwischen den Kompilierbefehlen besteht eigentlich darin, dass bei der 64Bit-Variante bei der Option –with-libdir einen anderen Pfadnamen übergeben bekommt.
Die weiteren Optionen stellen sicher, dass die PHP Version später auch IMAP, MySQL (inkl. PDO), GD (Grafikbibliothek), Curl und ein paar weitere Module enthält.

Wenn der configure Befehl ohne Fehler beendet ist, kann das Kompilieren und Installieren durch die Befehlsfolge

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

make
make test # optional
make install

[/pastacode]

gestartet werden.
Der Befehl make test ist optional, sollte aber vor der Installation verwendet werden um sicherzustellen, dass PHP korrekt kompiliert wurde.

Nach der Installation befindet sich in /usr/bin/php53/ nun ein eigenes Verzeichnis für die PHP Binaries der Version 5.3.25.
Nun müssen wir noch sicherstellen, dass die Apache-Module mod_fcgid (Fast-CGI) und SuExec aktiv sind.

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

a2enmod fcgid
a2enmod suexec
/etc/init.d/apache2 force-reload

[/pastacode]

Als nächstes erstellen wir uns eine Starter-Datei für PHP als Vorlage für unsere Web-User. Was genau eine solche Datei tut, darüber wurde an anderen Stellen schon so viel geschrieben, dass ich mir die Erläuterungen hier spare. Eine Google Suche nach PHP FCGI wird sicherlich einige Ergebnisse bringen.
Natürlich bieten diese Skripte oft noch einige Funktionen, die an dieser Stelle bewusst weggelassen wurden. Hier wird wirklich nur eine minimale Version verwendet.

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

mkdir -p /etc/php53/php-fcgi
vim /etc/php53/php-fcgi/php-starter

[/pastacode]

Der Inhalt der Datei:

[pastacode lang=“bash“ message=“Shell-Script“ highlight=““ provider=“manual“]

#!/bin/sh
 
FCGID_STARTER_PHPBIN="/usr/bin/php53/php-cgi -c /etc/php53/cgi/"
 
exec $FCGID_STARTER_PHPBIN

[/pastacode]

Nach dem Speichern versehen wir die Datei mit den passenden Zugriffsrechten und setzen danach das Immutable Bit. Dadurch sind keine Änderungen mehr an der Datei möglich (auch nicht durch root-User), bis das Immutable Bit wieder gelöscht wird.

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

chmod 750 /etc/php53/php-fcgi/php-starter
chattr +i /etc/php53/php-fcgi/php-starter

[/pastacode]

Damit sind die Vorbereitungen abgeschlossen.
Was nun folgt sind die Einstellungen für die einzelnen Webs, für die die neue PHP Version aktiviert werden sollen.
Wir gehen hier davon aus, dass das Web in /var/www/webseite liegt.
Zunächst erstellen wir (falls noch nicht vorhanden) einen User mit dem Namen „webuser“ als Besitzer des Webs.

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

useradd -d /var/www/webseite -s /bin/false webuser

[/pastacode]

Nun erstellen wir (falls noch nicht vorhanden) ein Verzeichnis für die FCGI Starterdatei und kopieren die vorbereitete Starterdatei dorthin.

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

mkdir -p /var/www/fcgi/webseite
cp -a /etc/php53/php-fcgi/php-starter /var/www/fcgi/webseite/
chown -R webuser:webuser /var/www/fcgi/webseite
chattr +i /var/www/fcgi/webseite/php-starter

[/pastacode]

Das Verzeichnis könnte auch anders heißen, wichtig ist nur, dass es innerhalb von /var/www liegt, da sonst suexec keinen Zugriff darauf erlaubt.
Das Verzeichnis sollte jedoch nicht über den Browser erreichbar sein.

Nachdem die Vorlagendatei in das Webverzeichnis kopiert wurde und die korrekten Dateirechte vergeben wurden, muss nun noch die Einstellung für den Apache VHost (allerdings nicht innerhalb des <Directory…> Bereichs) der Webseite gemacht werden.

[pastacode lang=“bash“ message=“Apache VHost“ highlight=““ provider=“manual“]

SuexecUserGroup webuser webuser

    SetHandler fcgid-script

 
AddHandler fcgid-script .php .php4 .php5
FCGIWrapper "/var/www/fcgi/webseite/php-starter" .php
FCGIWrapper "/var/www/fcgi/webseite/php-starter" .php5
FCGIWrapper "/var/www/fcgi/webseite/php-starter" .php4

[/pastacode]

Eigentlich war es das schon und das Web sollte auf PHP 5.3.25 laufen.
Durch die Umstellung kann es sein, dass PHP keinen Zugriff mehr auf zuvor von PHP angelegte Dateien hat. Dies liegt dann daran, dass der Besitzer von Dateien, die mit PHP (mod_php) angelegt wurden www-data als Besitzer haben, da PHP als Apache Modul unter diesem Benutzer ausgeführt wird.
In der hier eingerichteten Variante wird PHP mit SuExec als „webuser“ ausgeführt.

Man kann sehr einfach alle Dateien finden, die www-data gehören und den Besitzer ändern:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

cd /var/www/webseite
find /var/www/webseite -user www-data -exec chown webuser:webuser {} \;

[/pastacode]

Zum Testen der PHP Version ist es am einfachsten eine einfache PHP Datei in das Web-Verzeichnis zu legen, die nur den folgenden Inhalt hat:

[pastacode lang=“php“ message=“PHP“ highlight=““ provider=“manual“]

< ?php phpinfo(); ?>

[/pastacode]

Falls beim Aufruf dieser Datei im Webbrowser noch die falsche PHP Version angezeigt wird oder ein Fehler 500 auftritt, oder der Apache sich nicht starten lässt hilft es die Fehlermeldungen in den Logdateien zu lesen.
Die wichtigsten Meldungen sind hierbei im SuExec Log (/var/log/apache2/suexec.log) und im Apache Log (/var/www/webXY/log/error.log) zu finden.
Der häufigste Fehler sind fehlerhafte Berechtigungen der php-starter Datei, die zu einem Streik von SuExec führen.

Dieser Artikel wurde von Marius Burkard verfasst.

Marius Burkard ist Diplom-Wirtschaftsinformatiker und arbeitet seit 2006 als selbstständiger Software-Entwickler und Linux-Server-Administrator mit der Firma pixcept KG. Er ist unter anderem mitverantwortlich für die Projekte Was-lese-ich.de und ISPProtect.

43 Kommentare - bis jetzt!

Eigenen Kommentar verfassen
  1. Mischa
    schrieb am :

    Hi, ich bekomme nach dem Kompilieren (32Bit) den folgenden Fehler.

    checking for PCRE library location… configure: error: Could not find libpcre.(a|so) in /usr

  2. schrieb am :

    Hi, scheinbar benötigt man da doch noch eine Änderung im configure Befehl.

    Gib mal bitte folgenden Befehl ein und poste das Ergebnis hier:
    find /lib -name „libpcre*“

    Danke.

  3. Mischa
    schrieb am :

    find /lib -name „libpcre*“ spuckt folgendes aus.

    /lib/i386-linux-gnu/libpcre.so.3.13.1
    /lib/i386-linux-gnu/libpcre.so.3

  4. schrieb am :

    Vielen Dank. Habe den configure-Befehl im Artikel angepasst, damit sollte es funktionieren.

    Den Abschnitt danach (mit dem ln -s Befehl) habe ich ebenfalls darauf angepasst.

  5. Mischa
    schrieb am :

    Super, jetzt geht’s weiter. Danke!

  6. Mischa
    schrieb am :

    Das Kompilieren lief jetzt problemlos, aber beim make test kam es zu problemen.

    http://www.xup.in/dl,10439318/php_test_results_20130523_1412.txt/

  7. schrieb am :

    die würde ich jetzt ignorieren. sieht für mich nicht nach Problemen aus.

  8. Mischa
    schrieb am :

    Jup, hat funktioniert! Vielen Dank für dieses Tutorial!!

  9. Daniel
    schrieb am :

    Danke! Das funktioniert einwandfrei!
    Vielleicht könntest du noch dazuschreiben, dass die Apache-Config von oben NICHT in die „Directory“ gehört! Das funktioniert dann natürlich nicht mehr, wenn es da drin steht.

    Achja, bei SuexecUserGroup werden User und Gruppe mit Leerzeichen und nicht mit Doppelpunkt getrennt:
    „SuexecUserGroup webuser webuser“

  10. schrieb am :

    Danke für den Hinweis. Ist aktualisiert.

  11. schrieb am :

    Sehr cool, danke für deine Anleitung!

  12. schrieb am :

    Sollte irgendwer MariaDB anstatt MySQL verwenden, muss noch folgender symlink angelegt werden (64bit):

    ln -s /usr/lib/libmysqlclient.a /usr/lib/x86_64-linux-gnu/libmysqlclient.a

  13. HerrSerker
    schrieb am :

    Man sollte noch dazufügen, dass in der Vhost Konfiguration eine Options +ExecCGI innerhalb Directory-Direktive hinzugefügt werden muss, sonst hat man keine Erlaubnis und erhält eine 403-Fehlerseite

  14. Philipp
    schrieb am :

    ich bekomme beim ausführen von :

    ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

    folgenden fehler angezeigt:

    ln: Symbolische Verknüpfung „/usr/lib/x86_64-linux-gnu/libc-client.a“ konnte nicht angelegt werden: Die Datei existiert bereits

    Dennoch kann ich make nicht ausführen da ich ncoh immer den Fehler

    configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

    Weiß jemand eine Lösung? Kann ich die Symbolische Verknüpfung löschen und neu anlegen?

  15. schrieb am :

    Bitte schau dir mit ls -l erst einmal an, wo der Symlink bisher hinzeigt.

  16. Philipp
    schrieb am :

    # ls -l
    insgesamt 4
    drwxr-xr-x 8 root root 4096 Dez 20 15:37 parallels

    lrwxrwxrwx 1 root root 22 Dez 20 17:24 /usr/lib/x86_64-linux-gnu/libc-client.a -> /usr/lib/libc-client.a

     

  17. schrieb am :

    Evtl. einmal „make clean“ versuchen und dann das ./configure …. etc. nochmal.

  18. Philipp
    schrieb am :

    make clean schließt ab mit

    # make clean
    make: *** Keine Regel, um »clean« zu erstellen.  Schluss.

    und .configure endet unweigerlich mit:

    configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

    trotz symlink.

  19. schrieb am :

    Hm. Da bin ich ehrlich gesagt etwas ratlos gerade.
    Habe ich bislang noch nicht erlebt.

  20. Philipp
    schrieb am :

    Versuchen wir doch mal das was ich zu erst gefragt habe.

    Wie kann ich den Symlink wieder löschen? Ist wie beim Rechner, manchmal hilft ein Neustart 😉

  21. schrieb am :

    Wie jede andere Datei auch 😉 mit „rm“, also rm /path/to/symlink

  22. Horst-Günter Stahr
    schrieb am :

    Hallo

    Frage php-5.3.28 neben 5.4 etc. installiert wo befindet sich nun die php.ini Datei von php-5.3.28

    php-5.3.28, wird gefunden unter ispconfig als zusatz, kein Problem.

    Nur wo anpassen php-5.3.28 php.ini, wo ist diese abgelegt.

    Nicht unter apache2 etc. zu finden?

  23. schrieb am :

    Hallo,

    im Installationsordner von PHP, also in /tmp/php-5.3.x/ wenn man dem Howto gefolgt ist, liegt eine „php.ini-production“ oder „php.ini-recommended“.

    Einfach die passenden Ordner anlegen:

    mkdir /etc/php53/cgi

    mkdir /etc/php53/cli

    und die Datei dort hinkopieren (als php.ini):

    cp php.ini-production /etc/php53/apache2/php.ini

    cp php.ini-production /etc/php53/cgi/php.ini

    cp php.ini-production /etc/php53/cli/php.ini

  24. Michael
    schrieb am :

    Hallo miteinander,

    kann man diese Vorgehensweise auch verwenden wenn Plesk 11.5.30 bereits installiert ist?

    Derzeitige Konfig: blankes Debian 7.0 x64 mit Plesk 11.5.30

  25. schrieb am :

    Also ich wüsste nicht, dass Plesk mehrere PHP Versionen unterstützt. Daher würde ich sagen: es geht nicht. Aber zu 100% bin ich da nicht sicher, da ich mich weigere, mit Plesk zu arbeiten.

  26. Michael
    schrieb am :

    Hallo Marius,

    Ab Plesk 11.5.30 gehts mit verschiedenen PHP-Versionen.

    http://download1.parallels.com/Plesk/Doc/en-US/online/plesk-administrator-guide/index.htm?fileName=72042.htm

    Allerdings, da ich kein Linux Profi bin und nur bedingt mit Linux erfahrungen habe, galt meine Frage bezüglich der Installation so wie hier beschrieben.

    Mir gehts eigentlich nur um die configure-Parameter zwecks mySQL und die üblichen Standard Sachen.

     

  27. schrieb am :

    Das sollte kein Problem sein. Die Sachen werden ja nicht in irgend einem Standardverzeichnis installiert und kommen somit auch dem eigentlichen System nicht in die Quere.

  28. Michael
    schrieb am :

    Danke, werde mal testen 🙂

  29. Paddy
    schrieb am :

    Da ich bei der Installation probleme hatte wollte ich nun wissen ob es eine Möglichkeit gibt die installation etc. wieder rückgängig zu machne ohne den server neu aufsetzen zu müssen.

     

    Danke im Vorraus.

     

    LG

     

  30. Tobi
    schrieb am :

    Hallo,

    erstmal Danke für dein Howto! Nun brauche ich nicht eine „alte“ Version sondern die 5.5, hast du dies zufällig schonmal gemacht? Vermutlich ist das Vorgehen ähnlich.

    Gruß
    Tobi

  31. Markus
    schrieb am :

    Hi! Ich habe nun alles nach de Anleitnung gemacht. bin total froh das es diese gibt. leder endet das ganze mit einem 500er Fehler und im error.log steht:

    [Thu Oct 02 15:47:38 2014] [warn] [client IP] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
    [Thu Oct 02 15:47:38 2014] [error] [client IP] Premature end of script headers: phpinfo.php

    In der Apache SSL Config steht folgendes:

    Alias /strategyboard „/srv/www/default-ssl/board“

    Options Indexes MultiViews FollowSymLinks +ExecCGI
    Order allow,deny
    Allow from all

    SuexecUserGroup webuser webuser

    SetHandler fcgid-script

    AddHandler fcgid-script .php .php4 .php5
    FCGIWrapper „/srv/www/default-ssl/board/php-starter“ .php
    FCGIWrapper „/srv/www/default-ssl/board/php-starter“ .php5
    FCGIWrapper „/srv/www/default-ssl/board/php-starter“ .php4

    wer ne idee?

  32. schrieb am :

    Hallo Markus,

    für diesen Fehler kann es leider viele Ursachen geben.
    Lies einmal hier und die Kommentare darunter.

  33. schrieb am :

    Hallo Tobi,

    ja, habe ich in der Tat schon häufiger gemacht (auch PHP 5.6) und es funktioniert ähnlich. Man benötigt allerdings andere Konfigurations-Parameter.

    LIBDIR="lib/x86_64-linux-gnu" ;
    PHPPATH="php55" ;
    ./configure --prefix=/usr/share/${PHPPATH} --datadir=/usr/share/${PHPPATH} --mandir=/usr/share/man --bindir=/usr/bin/${PHPPATH} --with-libdir=${LIBDIR} --includedir=/usr/include/${PHPPATH} --sysconfdir=/etc/${PHPPATH}/apache2 --with-config-file-path=/etc/${PHPPATH}/apache2 --with-config-file-scan-dir=/etc/${PHPPATH}/conf.d --enable-libxml --enable-session --enable-xml --enable-simplexml --enable-filter --disable-debug --enable-inline-optimization --disable-rpath --disable-static --enable-shared --with-pic --with-gnu-ld --with-mysql --with-gd --with-jpeg-dir --with-png-dir --with-xpm-dir --enable-exif --with-zlib --with-bz2 --with-curl --with-ldap --with-mysqli --with-freetype-dir --enable-soap --enable-sockets --enable-calendar --enable-ftp --enable-mbstring --enable-gd-native-ttf --enable-bcmath --enable-zip --with-pear --with-openssl --with-imap --with-imap-ssl --with-kerberos --enable-phar --enable-pdo --with-pdo-mysql --with-mysqli --with-mcrypt --enable-pcntl --enable-sysvsem --enable-sysvshm --with-gettext --with-mhash --with-pcre-regex --with-pdo-pgsql --with-pgsql --with-xmlrpc --with-xsl --with-zlib-dir --enable-opcache

    Damit sollte es eigentlich funktionieren, das Ganze korrekt zu kompilieren (ohne Gewähr).
    Der „configure“ Befehl ist natürlich komplett in einer Zeile.

  34. hannenz
    schrieb am :

    VIelen Dank für die tolle Anleitung.
    Bitte noch – wie »Herr Serker« schon geschrieben hat – mit aufnehmen, dass Options +ExecCGI in die aufgenommen werden muss. Mag trivial sein, hat mich trotzdem fast zur Verzweiflung gebracht 😉
    Jetzt läufts aber super! Danke schön.

  35. Erhard Schulz
    schrieb am :

    Bei mir stürzt der flash player immerab ich habe win 7 ultimate

  36. schrieb am :

    Was hat das bitte mit dem Thema PHP 5.3 und 5.4 unter Debian 7 wheezy parallel installieren zu tun? Stelle deine Frage im Forum camp-firefox.de/forum, Danke.

  37. Bousquet
    schrieb am :

    Vielen Dank für die Anleitung.
    Allerdings brauche ich php53 in einem anderen Verzeichnis (in /opt/rh/php53). Wenn ich die configure Pfade anpasse, bekomme ich jedoch immer nur die Fehlermeldung „no such file or directory“.
    Was mache ich falsch?

  38. schrieb am :

    Hast du einmal versucht, den Pfad /opt/rh vorher anzulegen?

  39. Bousquet
    schrieb am :

    Danke für die schnelle Antwort.
    Ja, das habe ich auch versucht. Das Verzeichnis /opt/rh/php53 wird nicht angelegt.
    Sind vielleicht meine Pfade falsch?

    –prefix=/opt/rh/php53
    –datadir=/opt/rh/php53
    –mandir=/opt/rh/php53/man
    –bindir=/opt/rh/php53/bin
    –with-libdir=lib/x86_64-linux-gnu
    –includedir=/opt/rh/php53/include
    –sysconfdir=/opt/rh/php53/apache2
    –with-config-file-path=/opt/rh/php53/apache2
    –with-config-file-scan-dir=/opt/rh/php53/conf.d

    Oder könnte es daran liegen, dass ich versuche php 5.3.29 zu installieren (und nicht 5.3.25) ?

  40. schrieb am :

    Bitte poste einmal die komplette Fehlermeldung + ein paar Zeilen davor / danach.

  41. Bousquet
    schrieb am :

    Das ist das hier:

    Generating files
    creating ./config.status
    creating php5.spec
    creating main/build-defs.h
    creating scripts/phpize
    creating scripts/man1/phpize.1
    creating scripts/php-config
    creating scripts/man1/php-config.1
    creating sapi/cli/php.1
    creating main/php_config.h
    main/php_config.h is unchanged
    creating main/internal_functions.c
    creating main/internal_functions_cli.c
    +——————————————————————–+
    | License: |
    | This software is subject to the PHP License, available in this |
    | distribution in the file LICENSE. By continuing this installation |
    | process, you are bound by the terms of this license agreement. |
    | If you do not agree with the terms of this license, you must abort |
    | the installation process at this point. |
    +——————————————————————–+

    Thank you for using PHP.

    root@ns3000130:/tmp/php-5.3.29# –datadir=/opt/rh/php53
    -bash: –datadir=/opt/rh/php53: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –mandir=/opt/rh/php53/man
    -bash: –mandir=/opt/rh/php53/man: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –bindir=/opt/rh/php53/bin
    -bash: –bindir=/opt/rh/php53/bin: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –with-libdir=lib/x86_64-linux-gnu
    -bash: –with-libdir=lib/x86_64-linux-gnu: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –includedir=/opt/rh/php53/include
    -bash: –includedir=/opt/rh/php53/include: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –sysconfdir=/opt/rh/php53/apache2
    -bash: –sysconfdir=/opt/rh/php53/apache2: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –with-config-file-path=/opt/rh/php53/apache2
    -bash: –with-config-file-path=/opt/rh/php53/apache2: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –with-config-file-scan-dir=/opt/rh/php53/conf.d
    -bash: –with-config-file-scan-dir=/opt/rh/php53/conf.d: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –enable-libxml
    -bash: –enable-libxml: command not found
    root@ns3000130:/tmp/php-5.3.29# –enable-session
    -bash: –enable-session: command not found
    root@ns3000130:/tmp/php-5.3.29# –with-pcre-regex=/usr
    -bash: –with-pcre-regex=/usr: No such file or directory
    root@ns3000130:/tmp/php-5.3.29# –enable-xml
    -bash: –enable-xml: command not found

    […]
    Ich habe das Ende gekürzt.
    Alle Pfadangaben bekommen die Meldung „no such file or directory“, und die anderen Anweisungen „command not found“.

  42. schrieb am :

    Okay, das Problem ist ein ganz anderes: Du hast aus Versehen die –enable-xxx usw. in neue Zeilen gepackt. Alles nach dem ./configure muss in dieselbe Zeile.

  43. Bousquet
    schrieb am :

    Danke schön für das „an-die-Hand-nehmen“, nun hat es geklappt. Leider wollen die beiden phps nicht korrekt mit Virtualmin zusammenarbeiten (nur noch als mod_php), aber das ist eine andere Baustelle…

    Besten Dank und schönen Abend

Und jetzt du! Deine Meinung?

Erforderliche Felder sind mit einem Asterisk (*) gekennzeichnet. Die E-Mail-Adresse wird nicht veröffentlicht.
  1. Nach Absenden des Kommentar-Formulars erfolgt eine Verarbeitung der von Ihnen eingegebenen personenbezogenen Daten durch den datenschutzrechtlich Verantwortlichen zum Zweck der Bearbeitung Ihrer Anfrage auf Grundlage Ihrer durch das Absenden des Formulars erteilten Einwilligung.
    Weitere Informationen