PHP 5.3 howto? Anfänger braucht Hilfe

ptn

New Member
Hallo,

Ich habe mir vor einigen Tagen einen vServer geholt. Das ist mein erster Server mit SSH Zugriff. Vorher habe ich mich immer mit Webhosting Paketen über Wasser gehalten, aber beim anstehenden Projekt musste es etwas mehr sein.

Größter Vorteil an einem vServer ist natürlich, dass ich freie Wahl bei den Paketen und auf dem Server laufenden Services habe. Dementsprechend war die Enttäuschung groß, dass die "aktuellste" PHP-Version in der Administratorensoftware "Plesk 9.2" nur das fast 3 Jahre alte PHP 5.1.6 ist.

Über den Support wurde mir gesagt, dass ich PHP 5.3 selbstverständlich selbst bauen könnte. Hierfür stehe mir der SSH-Zugriff zur verfügung.

Jetzt weiß ich zwar was SSH ist, ist habe außer einmal die php.ini anzupassen noch nie damit gearbeitet. Daher meine Frage hier im Forum:

Würde sich jemand erbarmen und mir bei der Installation von PHP 5.3 unterstützend zur Seite stehen?

Hier kurz eine Übersicht über den Server:
Apache 2.2
PHP 5.1.6
Admininterface: Parallels Power Panel / Plesk 9.2.1

Grüße!
 
Ah, das hätte ich natürlich noch dazuschreiben sollen:

Es läuft CentOS 5.3 Linux 2.6.18-028stab062.3

Grüße
 
Die aktuellste Version im CentOS5.3-Repo ist PHP 5.2.9.

Ich weiß jetzt aus dem stehgreif nicht, ob Plesk da noch irgendwie reinfingert, aber ich würde an deiner Stelle mal ein 'yum upgrade' versuchen.
Achte dabei vor allem darauf, ob er dir evtl. irgendwas deinstallieren will. Dann solltest Du den Vorgang natürlich erstmal nicht bestätigen.
 
Hallo,

Danke schonmal für den Hinweis. Das Update hat nur eine neue Version für perl-TimeDate gebracht. Das eigentliche Problem ist aber, dass ich unbedingt PHP 5.3 brauche 5.2.X nützt mir leider nix.

In dem Projekt, dass ich hier auf meinem lokalen Wohnzimmerserver mit 5.3 entwickle verwende ich einige PHP 5.3 spezifische Techniken. zB. namespaces und die neuen Path-Konstanten.

Grüße!
 
PHP 5.3 als alleinige Version halte ich noch für etwas zu optimistisch.
Aber prinzipiell kannst du auch verschiedenen Versionen gleichzeitig fahren.

Es gibt ettliche Tutorials, wie man mehrere PHP Versionen betreibt.

Grundsätzlich:
1. Quellcode saugen
2. kompilieren
3. installieren

PHP: Installation auf Unix-Systemen - Manual
 
Ich habe heute viel gegoogelt und es gibt wohl noch keine repo mit php5.3

Es bleibt mir also nichts anderes übrig, als php 5.3selbst zu bauen. Nur da brauche ich etwas Unterstützung.

Ich habe die php5.3 binaries schon heruntergeladen und entpackt. Was jetzt ansteht ist ./configure und da traue ich mich momentan nicht ran.

Wie sind denn die default einstellungen? Kann ich einfach den ./configure-command, den mir phpinfo() von PHP 5.2.9 auswirft auch für 5.3 verwenden?

Grüße

Ja, ich weiß, viele Fragen. Aber wie gesagt, ich möchte das alles richtig machen. Also frage ich lieber mal nach.
 
Kann ich einfach den ./configure-command, den mir phpinfo() von PHP 5.2.9 auswirft auch für 5.3 verwenden?
Meiner Erfahrung nach: ja!
Aber es wird dir dann beim install deine 5.2.9 überschreiben.
Wenn du das willst, dann OK....

Ich mags ja lieber nebeneinander, z.B. über suPHP. Dann kann die Version für jeden Ordner individuell per .htaccess festgelegt werden.
 
Ich mags ja lieber nebeneinander, z.B. über suPHP. Dann kann die Version für jeden Ordner individuell per .htaccess festgelegt werden.

Das geht bei CGI/FCGI genauso.
Im extremfall kann man sogar über die Dateiendung (.php/.php53 oder so) festlegen, welches Executable genommen wird.

Und sogar bei einem PHP-Modul kann man das alte Binary aufheben (ich benenne es immer um und mod_php.so ist nur ein Link auf das gerade gültige) und so im Ernstfall schnell wechseln.
 
Okay. Werde mich da jetzt ranmachen und nehme einfach den ./configure Befehl aus meiner phpinfo() von 5.2.9 und hoffe dann, dass alles klappt.

Wenn alles so läuft, wie ich das hoffe, dann werde ich hier mal eben schreiben, wie es lief.

Grüße
 
Na, eine Frage habe ich noch:

Hier ist der Configure-Befehl aus phpinfo() 5.2.9:

Code:
./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu
 --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin
 --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share
 --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec
 --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man
 --infodir=/usr/share/info --cache-file=../config.cache --with-libdir=lib64
 --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
 --disable-debug --with-pic --disable-rpath --without-pear --with-bz2
 --with-curl --with-exec-dir=/usr/bin --with-freetype-dir=/usr --with-png-dir=/usr
 --with-xpm-dir=/usr --enable-gd-native-ttf --with-t1lib=/usr --without-gdbm
 --with-gettext --with-gmp --with-iconv --with-jpeg-dir=/usr --with-openssl
 --with-png --with-expat-dir=/usr --with-pcre-regex=/usr --with-zlib --with-layout=GNU
 --enable-exif --enable-ftp --enable-magic-quotes --enable-sockets --enable-sysvsem
 --enable-sysvshm --enable-sysvmsg --enable-track-vars --enable-trans-sid --enable-yp
 --enable-wddx --with-kerberos --enable-ucd-snmp-hack --with-unixODBC=shared,/usr
 --enable-memory-limit --enable-shmop --enable-calendar --enable-dbx --enable-dio
 --without-mime-magic --without-sqlite --with-libxml-dir=/usr --with-xml
 --with-system-tzdata --with-apxs2=/usr/sbin/apxs --without-mysql --without-gd
 --without-odbc --disable-dom --disable-dba --without-unixODBC --disable-pdo
 --disable-xmlreader --disable-xmlwriter --disable-json --without-pspell

Jetzt sehe ich, dass da zB. steht: --without-mysql, ich aber trotzdem über die mysql Funktionen verfügen kann. In der phpinfo() sind sowohl mysql wie auch mysqli (brauche ich unbedingt) zu finden.

Kann mir das jemand erklären?

die phpinfo() ist übrigens für eine genauere Betrachtung hier einsehbar: phpinfo()
 
Last edited by a moderator:
Das geht bei CGI/FCGI genauso.
Im extremfall kann man sogar über die Dateiendung (.php/.php53 oder so) festlegen, welches Executable genommen wird.
Genau das meinte ich... CGI
Ob über suPHP oder suEXEC ist dabei recht irrelevant und die Unterschiede ein anderes Thema.

@ptn
Niemand kann dich davon abhalten die configure Parameter sinnvoll anzupassen. Und ein bisschen üben schadet auch nicht. Vermutlich fehlen dir sowieso noch ein Dutzend Quellcode Pakete bis der make anstandslos durchläuft.

PS:
Ich habe mir eine configure_php_as_cgi.sh gebastelt, kann ich dir auf Wunsch gerne zukommen lassen. Wirst du aber an deine Verhältnisse anpassen müssen.
 
Back
Top