HowTo install PHP5

  • Thread starter Thread starter server4downs
  • Start date Start date
Status
Not open for further replies.
S

server4downs

Guest
Neue Version unter https://serversupportforum.de/threads/howto-php5-installieren.10410/

So, hier kommt das versprochene HowTo für den Update von PHP4 auf PHP5.
Bitte keine großen Diskussionen um Vor- und Nachteile dieses Updates hier posten.
Achtung!
Ich übernehme keinerlei Haftung für dieses HowTo und dessen eventueller fehlerhafter Auswirkung!

Vorab: es ist vollkommen egal, ob ihr nun von z.B. PHP4.3.2 auf PHP4.4.2 oder auf PHP5.1.2 updaten wollt. D.h. wer lieber nur innerhalb der 4er-Version updaten will, kann dies mit diesem HowTo auch erzielen.

So, enough of blabbering :p

Zuerst ziehen wir uns die gewünschte Version von PHP.net:
Code:
wget http://de.php.net/get/php-5.1.2.tar.gz/from/this/mirror
unzip:
Code:
tar xfvz php-5.1.2.tar.gz
in das neue Verzeichnis wechseln:
Code:
cd php-5.1.2
So, nun kommen wir zum Hauptteil der gesamten Installation...
...wir müssen ./configure ausführen. Ich poste einfach mal das ./configure, wie ich es bei Suse9.3/Debian3.1 verwendet habe. Am besten ist es, wenn ihr einfach von einer alten PHP4-info die Configure-Anweisungen übernehmt. Jedoch sollten dabei versch. Dinge beachtet werden:
SQLite sollte, wenn man es nicht benutzen will, gleich ausgeschlossen werden. MySQL muss nun aber eingebunden werden bei PHP5!
Okay, hier nun mal meine Conf (ist minimal und nicht gerade sehr genial!):
./configure --program-prefix= --prefix=/usr/local/php5 --datadir=/usr/share/php5 --mandir=/usr/share/man/php5 --bindir=/usr/local/php5/bin --exec-prefix=/usr/local/php5 --includedir=/usr/include/php5 --sysconfdir=/etc/php5 --localstatedir=/var --with-config-file-path=/etc/php5 --with-exec-dir=/usr/lib/php5/bin --disable-debug --enable-inline-optimization --enable-memory-limit --enable-magic-quotes --enable-safe-mode --enable-sigchild --enable-session --with-mysql=/usr --enable-cli --with-pear=/usr/share/pear --with-openssl --without-pgsql --with-config-file=/etc/php5/php.ini --with-apxs2=/usr/sbin/apxs2
Ist nur für Testzwecke gedacht^^.
Hierbei wurde nun mysql mit einkompiliert und pgsql rausgelassen.
--with-apxs2=/usr/sbin/apxs2 Diese Anweisung teilt mit, dass wir die Geschichte als Apache2-Modul kompilieren wollen. Sollte nicht weggelassen werden.
Wenn man vorher eine yast-PHP-Installation hatte sollte man sich genau anschauen, was da steht. Das ist nämlich ein ziemliches Gewurschtel.
Nun kommen wir zum "spannenden" Augenblick:
wir drücken (with excitement) einmal, sehr bestimmt die Enter-Taste ;)
Nun können wir, je nach Geschwindigkeit des Servers chillen, bzw Weihnachtsgans essen gehen, während configure läuft ;)
Okay, da ich hier das alles live schreibe, kann ich euch mit Freude nun mitteilen: configure ist schon durchgerattert. Hierbei kann configure auch stoppen und sich beschweren über verschiedene Sachen, die ihm fehlen.
Man sollte auch beachten, dass ab PHP4.3.9 GIF-Support wieder unterstützt wird. Deshalb muss man hier auch entspr. Pakete updaten. Meist sind diese schon als rpm via google oder rpmseek.com vorhanden.
Nach dem Lösen dieser Konflikte einfach nochmals configure ausführen.
Super, jetzt sind wir schon einiges weiter!
Jetzt müssen wir
Code:
make
in die Console eingeben.
Wieder haben wir Zeit um noch den Nachtisch zu verschlingen ;)
Bei event. Fehlern entweder hier Fragen oder Google fragen (am Besten den gesamten Fehlern so suchen: "Ferhdflkjsdalfkjsdf lkjsf lkjsf ".. also in "")
Super, auch diese Hürde wäre geschafft!
So sollte es aussehen:
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
Jetzt ist fast alles fertig.
Jedoch das Allerwichtigste schein noch zu fehlen:
Code:
make install
Jetzt sind wir mit der Installation fertig.
Jetzt muss nur noch etwas für den Apachen getan werden.
Da der Apache überall anders aufgebaut ist, kann ich nur meine Version schildern (RedHat 9, vServer S4Y):
/etc/httpd/conf.d/php.conf
dort einfach den Eintrag:
Code:
LoadModule php4_module modules/libphp4.so
zu
Code:
LoadModule php5_module modules/libphp5.so
umbenennen.

Suse 9.2/9.3 wenn der Apache2 über yast installiert worden ist:
Einfach mal ins Verzeichnis /etc/sysconfig wechseln. Dort die Datei apache2 aufsuchen. In diesem File befindet sich die Zeile für die Module:
Code:
APACHE_MODULES="access....... [B]php4[/B]
Dieses php4 einfach mit einem php5 auswechseln.

Nun kommt noch der Apache-restart und die Sektkorken können knallen ;)
(/etc/init.d/apache2 restart z.B.)
Ich weise darauf hin, dass ich für die Installation von PHP5 immer andere Verzeichnisse als die (noch existierende PHP4-Version) verwendet habe. Dies ist bei configure festlegbar. Jeder muss/sollte seine configure Angaben nach seinen Interessen und der Configuration des eigenen Servers richten.
Dies ist wohlgemerkt ein HowTo für PHP als Apache-Modul.
Da kann nur eine PHP-Version eingebunden werden!!!
Eine andere Lösung ist CGI, die wird in den nächsten Tagen hier als HowTo erscheinen.
Für CGI-Lösung bitte hier klicken:


Ich hoffe, dass ich hiermit ein bisschen weiterhelfen konnte.
Falls Fragen sich ergeben sollten: immer her damit.
Nobody is perfect ;)

Good luck!


Server4Downs


P.S.:
i almost forgot:
Natürlich sollte auch die neue php.ini ins entspr. dir kopiert und angepasst werden. Entweder php.ini-dist oder php.ini-recommended oder wie es heißt rüberkopieren. Im Normalfall sollte es nach /etc gehen. In diesem Fall (bei mir) nach /etc/php5/php.ini

LAST UPDATED: 13th of March 8:24pm
 
Last edited by a moderator:
society said:
Jetzt fehlt nur noch ein HowTo wie man PHP4 und PHP5 parallell laufen lassen kann *g*
Hatte ich schon drauf gewartet ;)
Ich würde PHP5 vorerst einfach als CGI installieren und PHP4 als Modul laufen lassen.
Wenn auch hier noch Interesse bestehen sollte... :P
lol
 
und Confixx?

Ich bin in diesem Gebiet völlig neu und wollte auch auf PHP5 umrüsten. Allerdings habe ich irgendwo mal gelesen, das Confixx dann nicht mehr laufen würde. Hat das schon mal jemand ausprobiert?
 
Z-80 said:
Ich bin in diesem Gebiet völlig neu und wollte auch auf PHP5 umrüsten. Allerdings habe ich irgendwo mal gelesen, das Confixx dann nicht mehr laufen würde. Hat das schon mal jemand ausprobiert?
Das funktioniert afaik - Shellmaster hat PHP5 und Confixx :)
 
Jungs und Models,

besteht noch Interesse an der Weiterführung dieses "genialen" HowTos in Richtung "PHP4 als Modul und PHP5 als CGI"?
Shut up, society, für dich brauch ich mir hier keinen Stress zu geben, du weißt es eh schon. ;)
 
Hehe, ich bin ehrlich ich bin echt daran gescheitert :(
Mich würde es auch interessieren was ich falsch gemacht habe.
 
Um ganz ehrlich zu sein, gerade klappts auch nicht so ganz, da jeder Server anders ist und ich einen meiner lieben vServer nicht mehr habe.
Also, man muss sich noch gedulden :D
Aber dafür gibts dann gleich die Edition mit FastCGI ;)
 
Hallo,

ich schaffe es nicht für Apache das libphp5.so zu erstellen.

Mein configure ist wie folgt:
Code:
./configure
--prefix=/usr/local/php5
--datadir=/usr/share/php5
--bindir=/usr/local/php5/bin
--libdir=/usr/share
--includedir=/usr/include
--sysconfdir=/etc/php5
--with-_lib=lib
--with-config-file-path=/etc
--with-exec-dir=/usr/lib/php5/bin
--disable-debug
--enable-bcmath
--enable-calendar
--enable-ctype
--enable-dbase
--enable-discard-path
--enable-exif
--enable-filepro
--enable-force-cgi-redirect
--enable-ftp
--enable-gd-imgstrttf
--enable-gd-native-ttf
--enable-inline-optimization
--enable-magic-quotes
--enable-mbstr-enc-trans
--enable-mbstring
--enable-mbregex
--enable-memory-limit
--enable-safe-mode
--enable-shmop
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-track-vars
--enable-trans-sid
--enable-versioning
--enable-wddx
--with-bz2
--with-dom=/usr/include/libxml2
--with-ftp
--with-gdbm
--with-gettext
--with-gmp
--with-iodbc
--with-jpeg-dir=/usr
--with-mcal=/usr
--with-mcrypt
--with-mhash
--with-mysql=/usr
--with-ndbm
--with-png-dir=/usr
--with-tiff-dir=/usr
--with-ttf
--with-freetype-dir=yes
--with-xml
--with-xpm-dir=/usr/X11R6
--with-zlib=yes
--with-qtdom=/usr/lib/qt3
--with-gd
--with-openssl
--with-curl=/usr/bin/curl
--with-swf=/usr/src/packages/BUILD/swf/dist/
--enable-xslt
--with-xslt-sablot
--with-apxs2=/usr/sbin/apxs2-prefork
--with-iconv
i586-suse-linux

Die Ausgabe nach # make install

Code:
Installing PHP CLI binary:        /usr/local/php5/bin/
Installing PHP CLI man page:      /usr/local/php5/man/man1/
Installing PEAR environment:      /usr/share/php/
[PEAR] Archive_Tar    - already installed: 1.1
[PEAR] Console_Getopt - already installed: 1.2
[PEAR] PEAR           - already installed: 1.3.3
Wrote PEAR system config file at: /etc/php5/pear.conf
You may want to add: /usr/share/php to your php.ini include_path
[PEAR] XML_RPC        - already installed: 1.1.0
Installing build environment:     /usr/local/php5/lib/php/build/
Installing header files:          /usr/include/php/
Installing helper programs:       /usr/local/php5/bin/
  program: phpize
  program: php-config
  program: phpextdist

Normalerweise müsste jetzt doch im /usr/lib/apache-prefork die libphp5.so sein. Ist sie aber nicht.
 
Last edited by a moderator:
Ich habe jetzt mal die ganze Festplatte nach dem File durchsucht und konnte es nicht finden.

An was könnte es liegen, dass die libphp5.so nicht erstellt wird?
 
Sandmann said:
Hallo,

ich schaffe es nicht für Apache das libphp5.so zu erstellen.

Mein configure ist wie folgt:
Code:
./configure
--prefix=/usr/local/php5
--datadir=/usr/share/php5
--bindir=/usr/local/php5/bin
--libdir=/usr/share
--includedir=/usr/include
--sysconfdir=/etc/php5
--with-_lib=lib
--with-config-file-path=/etc
--with-exec-dir=/usr/lib/php5/bin
--disable-debug
--enable-bcmath
--enable-calendar
--enable-ctype
--enable-dbase
--enable-discard-path
--enable-exif
--enable-filepro
--enable-force-cgi-redirect
--enable-ftp
--enable-gd-imgstrttf
--enable-gd-native-ttf
--enable-inline-optimization
--enable-magic-quotes
--enable-mbstr-enc-trans
--enable-mbstring
--enable-mbregex
--enable-memory-limit
--enable-safe-mode
--enable-shmop
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-track-vars
--enable-trans-sid
--enable-versioning
--enable-wddx
--with-bz2
--with-dom=/usr/include/libxml2
--with-ftp
--with-gdbm
--with-gettext
--with-gmp
--with-iodbc
--with-jpeg-dir=/usr
--with-mcal=/usr
--with-mcrypt
--with-mhash
--with-mysql=/usr
--with-ndbm
--with-png-dir=/usr
--with-tiff-dir=/usr
--with-ttf
--with-freetype-dir=yes
--with-xml
--with-xpm-dir=/usr/X11R6
--with-zlib=yes
--with-qtdom=/usr/lib/qt3
--with-gd
--with-openssl
--with-curl=/usr/bin/curl
--with-swf=/usr/src/packages/BUILD/swf/dist/
--enable-xslt
--with-xslt-sablot
--with-apxs2=/usr/sbin/apxs2-prefork
--with-iconv
i586-suse-linux

Normalerweise müsste jetzt doch im /usr/lib/apache-prefork die libphp5.so sein. Ist sie aber nicht.
Hatte ich auch anscheinen machen diese befehle was aus --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --target=i586-suse-linux leider funktioniert confixx net zumindest kommt da zugriff verweigert vieleicht kann mir ja jemand weiterhelfen
 
Ich hab auch nen Problem. Was muss ich angeben, dass er mir php5 nicht als cgi erstellt, also nach dem config will er mir ein php5 so ertsellen, dass ich es als cgi einbinden muss. Ich will aber ein Apache Modul haben. Liegt es daran, dass php4 noch läuft?

MfG BenArt
 
RTFM
[...]
Apache 2.0 on Unix systems
[...]
9. cd ../php-NN

10. Now, configure your PHP. This is where you customize your PHP
with various options, like which extensions will be enabled. Do a
./configure --help for a list of available options. In our example
we'll do a simple configure with Apache 2 and MySQL support. Your
path to apxs may differ, in fact, the binary may even be named apxs2 on
your system.

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make
12. make install

If you decide to change your configure options after installation,
you only need to repeat the last three steps. You only need to
restart apache for the new module to take effect. A recompile of
Apache is not needed.

Note that unless told otherwise, 'make install' will also install PEAR,
various PHP tools such as phpize, install the PHP CLI, and more.

Der Text, den Sie eingegeben haben, ist zu kurz. Bitte erweitern Sie den Text auf die minimale Länge von 10 Zeichen
Find ich unnötig, IMHO kann man in diesem Forum viele Fragen komplett mit Zitaten beantworten...
 
Moin, Moin,

da wollte ich meinem vserver (S4Y) mit RH9 auch mal PHP4.3.11 gönnen, komme aber über eine abschließende Fehlermeldung bei make nicht hinaus.

Apache ist der letzte als rpm (für intergenia) bereitgestellte (2.0.51) mit PHP4.3.9 als cgi.
Aktuelles Zend 2.5.10 ist drauf, die php.ini liegt als nicht unter /etc, dort ist der von Zend angelegte ln -s.

mein ./configure (habe da mal per phpinfo.php die vorhande abgefragt und das Ergebnis dazu genutzt:

Code:
./configure --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --target=i386-redhat-linux --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --cache-file=../config.cache --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-force-cgi-redirect --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-bz2 --with-db4=/usr --with-curl --with-exec-dir=/usr/bin --with-freetype-dir=/usr --with-png-dir=/usr --with-gd --enable-gd-native-ttf --with-gdbm --with-gettext --with-ncurses --with-gmp --with-iconv --with-jpeg-dir=/usr --with-openssl --with-png --with-pspell --with-regex=system --with-xml --with-expat-dir=/usr --with-dom=shared,/usr --with-dom-xslt=/usr --with-dom-exslt=/usr --with-xmlrpc=shared --with-pcre=/usr --with-zlib --with-layout=GNU --enable-bcmath --enable-exif --enable-ftp --enable-magic-quotes --enable-safe-mode --enable-sockets --enable-sysvsem --enable-sysvshm --enable-discard-path --enable-track-vars --enable-trans-sid --enable-yp --enable-wddx --without-oci8 --with-pear=/usr/share/pear --with-imap=shared --with-imap-ssl --with-kerberos --with-mysql=shared,/usr --with-snmp=shared,/usr --with-snmp=shared --enable-ucd-snmp-hack --enable-memory-limit --enable-bcmath --enable-shmop --enable-calendar --enable-dbx --enable-dio --enable-mcal --enable-mbstring --enable-mbstr-enc-trans --enable-mbregex --with-apxs2=/usr/sbin/apxs

Läuft ohne Murren durch, keine Auffälligkeiten.

Das nachfolgende make werkelt durch, mit der letzten Zeile:

Code:
make: *** [sapi/cli/php] Error 1

Scrolle ich durch den Absatz VOR dieser abschliessenden Fehlermeldung, sehe ich in Zusammenhang mit Zend eine ganze Reihe Meldungen die allesamt etwas von "undefined" aussagen.

Habe dann auch mal den symbolic link zur von Zend erzeugten php.ini entfernt, die vorherige php.ini unter /etc reaktiviert, also den Apache restarted.
Selbige Verhaltensweise bei make, Fehlermeldung wie vor beschrieben.

Habe auch schon ein ./configure mit der Option:

--without-cli

oder alternativ mit

--without-cgi

und nachfolgendem make versucht.

Klappt nicht. Das Verzeichnis sapi/cli ist unter dem Ordner mit den PHP4.3.11 sourcen vorhanden, nirgendwo sonst.

Hat dazu evtl. jemand noch einen Tip (ausser google; zu "sapi/cli/php" bin ich nicht fündig geworden).

Danke und Gruss,
Laury
 
Last edited by a moderator:
Die Fehlermeldungen davor wären interessant, der von dir gepostete Ausschnitt besagt nur, dass es einen Fehler gab und wo dieser ungefähr auftrat. Aber mehr is da nich...
 
Hallo hoffie,

ich poste mal ein paar Zeile der besagten "undefinded reference" Zeilen, die VOR dieser letzten ERROR-Mitteilung erscheinen:
Code:
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libpspell.a(string_list_impl.o)(.text+0x21e): In function `PspellStringListImpl::elements() const':
: undefined reference to `operator new(unsigned)'

Solcherlei erscheinen etliche, alle haben Bezug "libpspell.a".

Habe mich mal auf dem mirror umgesehen und in den rpm's für RH9 Pakete für aspell gesehen. Diese stehen dort zusammen mit PHP 4.3.9.

Kann es evtl. sein, dass unter RH9 für PHP 4.3.11 neuere Bibliotheken erforderlich sind?

Nachtrag:

Habe mir jetzt einmal von http://snaps.php.net/ die latest STABLE zu PHP4.3.X geladen und dann ./configure mit nachfolgendem make so laufen lassen wie zuvor:

Nun meckert er nach durchgelaufenem make an etwas anderem herum:
Code:
/php4-STABLE-200505281234/ext/pcre/pcrelib/ucptypetable.c:90: (near initialization for `utt[36].value')
/php4-STABLE-200505281234/ext/pcre/pcrelib/ucptypetable.c:90: initializer element is not constant
/php4-STABLE-200505281234/ext/pcre/pcrelib/ucptypetable.c:90: (near initialization for `utt[36]')
make: *** [ext/pcre/pcrelib/ucptypetable.lo] Error 1
Das fängt bei utt[0] an.
 
Last edited by a moderator:
Status
Not open for further replies.
Back
Top