[HowTo] PHP5 installieren

  • Thread starter Thread starter server4downs
  • Start date Start date
Dann mach mal deinen PC aus und entspann dich.
Schau es dir morgen nochmal in Ruhe an. Wenn man sich bei solchen Sachen zu sehr stresst editiert man schnell die falschen Dateien und macht alles kaputt.
 
Danke nochmals für deine Hilfe server4downs.
Hat endlich funktioniert so wie du es geschrieben hast. Hab mein ganzes System nochmal neu aufgesetzt und nochmals von vorne begonnen und dann hat es hingehauen. Muss sich also irgendwo der Fehlerteufel eingeschlichen gehabt haben.
 
Ich hätte da auch noch ein Prob:

Erst mal die wichtigsten Daten:
vServer bei 1und1 mit deinstalliertem Plesk
Suse 9.3
Apache 2.0.53
Mysql 5.0.27

Der Versuch war folgender:
Ich habe php4 mit Yast komplett deinstalliert und danach php5.2 neu kompiliert. Ausser der üblichen Fehlermeldungen bei ./configure und dem Nachinstallieren der einzelnen tools hat alles funktioniert. Apache neu gestartet und ne phpinfo() erstellt. Es waren alle Module geladen, er hat die php.ini perfekt angezeigt und auch mysql wurde richtig angezeigt. Danach habe ich dann in die error_log von Apache gesehen und folgendes stand dann da:

Code:
 line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/curl.so' - /usr/lib/php/extensions/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/calendar.so' - /usr/lib/php/extensions/calendar.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/bz2.so' - /usr/lib/php/extensions/bz2.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/bcmath.so' - /usr/lib/php/extensions/bcmath.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/sockets.so' - /usr/lib/php/extensions/sockets.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/session.so' - /usr/lib/php/extensions/session.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/mysql.so' - /usr/lib/php/extensions/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/mcrypt.so' - /usr/lib/php/extensions/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/mbstring.so' - /usr/lib/php/extensions/mbstring.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/iconv.so' - /usr/lib/php/extensions/iconv.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/gettext.so' - /usr/lib/php/extensions/gettext.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/ctype.so' - /usr/lib/php/extensions/ctype.so: cannot open shared object file: No such file or directory in Unknown on line 0
Was das heißt ist mir relativ klar, er findet die einzelnen Module nicht. Das Problem ist, dass der ordner php im Verzeichnis lib garnicht existiert.

Wie gehe ich da am besten vor?
Ich hab über find nach den einzelnen Dateien gesucht, aber nicht alle gefunden. Die die ich gefunden hab, sind im python Verzeichnis.
Wie bekomme ich also mein php soweit, dass der Apache ohne Fehlermeldung startet, und php einwandfrei funktioniert

Gruß
Mordor
 
Hallo!

Einfach die php.ini editieren und die Einträge, die auf ".so" enden auskommentieren (mit ";" funktioniert das Auskommentieren hier).

Good luck!
 
Ist es dann aber nicht so, dass die Module nicht aktiv sind? Wie mache ich es dann, wenn sie aber brauche?

Danke schon mal

Gruß Mordor
 
Entweder in PHP5 eincompelieren oder eine Version fuer PHP5 besorgen.

Sinn des Auskommentierens ist, dass die Sachen fuer PHP4 nicht mit PHP5 laufen. Die muss man halt neu machen.
 
Also muss ich mir die ganzen .so Dateien zusammensuchen und sie in das dementsprechende Verzeichniss ablegen. Danach müsste es dann ja eigentlich problemlos gehen, oder nicht?
In PHP sind die Extensions ja einkompiliert, sonst würde der Apache ja auch nicht die Fehlermeldung schreiben.
 
Wenn die Module wirklich eincompiliert sind, brauchst du keine externen .so Dateien.

In PHP sind die Extensions ja einkompiliert, sonst würde der Apache ja auch nicht die Fehlermeldung schreiben.
Wenn du diese Fehlermeldung meinst:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/ ...
dann wurde versucht das DSO Modul in der php.ini zu laden. (wie server4downs schon geschrieben hat)
Damit das so funktioniert musst du nun die DSO (dynamic shared Objects) fuer php5 compelieren (oder sonst wie eine passende Version fuer Dich besorgen).
Die alten Module werden nicht funktionieren.
 
Ich glaub jetzt kapier ich das schön langsam, nach einigem suchen und lsen:

Generell sind die Pakte in PHP einkompiliert, nur wenn ich ein externes oder eine aktuellere Version haben will, kann ich das in der PHP.ini über den Include Pass der Extensions machen. bin ich da jetzt richtig?
 
Generell sind die Pakte in PHP einkompiliert
Nur wenn du das beim configure angegeben hast.
Einige sind schon im PHP Paket dabei und muessen nur angegeben werden. Bei anderen Modulen muss man erst noch weitere Sotwaere runterladen und ins Quellverzeichnis packen.
Als Beispiel:
Man kann Suhosin als DSO laden oder fest einkompilieren.
DSO ist ein wenig langsamer. Dafuer hat man es einfacher, wenn man ein Update durchfuehern will.
Wenn es fest einkompiiert ist, dann muss man das ganze PHP neu kompilieren, wenn man ein Suhosin Update durchfuehren will.


wenn ich ein externes oder eine aktuellere Version haben will, kann ich das in der PHP.ini über den Include Pass der Extensions machen.
Ja, dann bindet man das Modul als DSO (.so) in der php.ini ein. Dann darf man das aber nicht mit configure einkompiliert haben.
 
kann ich gdlib irgendwie noch nachträglich aktivieren unter php5 ?
wenn ich jetzt in meinen php5 ordner gehe und ./configure ausführe, konfigurire ich doch php5 wieder neu oder sehe ich das jetzt falsch?

wie wäre den der befehl für gdlib unter ./configure bzw wie könnte ich das nachträglich noch starten ?
Ich hab zwar php5-gd und gd_dev eingespielt mit rpm, aber irgend scheint es net zu funzen ?!?

Danke für eure hilfe schonmal im voraus.
 
Last edited by a moderator:
PHP kompilieren - Module/Extensions werden nicht erstellt?

Moin,
nach einiger Zeit des Mitlesens wird es jetzt Zeit für meinen ersten Hilferuf... :cool:


Ich möchte mein PHP von 5.1.6 auf 5.2.0 aktualisieren. Das klappt, sofern ich die benötigten Module einkompiliere, auch wunderbar.

mein System: vServer mit Virtuozzo/Plesk8.1, Fedora Core 5, 320MB RAM
1. Frage:
Wo ist genau der Unterschied zwischen einkompilieren und dynamisch laden?
Klar, ich bin flexibler und kann nicht-benötigte Module mal schnell deaktivieren ohne gleich alles neu zu kompilieren... Vermutlich steigt beim Einkompilieren auch der Speicherbedarf... aber werden die dynamischen Module auch alle gleich in den Speicher geladen oder nur bei Bedarf? Gibt es Performance-Unterschiede?
Ich möchte natürlich angesichts des kleinen vServers ein möglichst schlankes PHP haben ;)


Und wieso aber werden beim Kompilieren die Extensions nicht neu gebaut?
./configure, make und make install laufen ohne Fehler durch...
'--enable-shared' ist ja eigentlich Default, hat aber auch nichts gebracht, ebenso ein testweise verwendetes '--enable-versioning'.

Unter /usr/lib/php/modules liegen die alten Module, sobald diese aber über die ini-Einträge in /etc/php.d geladen werden, gibt's die übliche Fehlermeldung (PHP Warning: PHP Startup: Unable to load dynamic library) im Apache error_log... ist ja logisch...
Aktuelle *.so werden aber nirgends gebaut.

Code:
'./configure' '--build=i686-redhat-linux-gnu' '--host=i686-redhat-linux-gnu' 
'--target=i386-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/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var'
'--sharedstatedir=/usr/com' '--mandir=/usr/share/man' 
'--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib' 
'--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d'
'--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' 
'--with-jpeg-dir=/usr' '--with-expat-dir=/usr' '--with-libxml-dir=/usr' 
'--with-pic' '--with-pear=/usr/bin' '--with-bz2' '--with-curl' 
'--with-gettext' '--with-iconv' '--with-openssl' '--with-png' '--with-pspell'
'--with-zlib' '--with-xml' '--without-gd' '--with-kerberos' '--with-pdflib'
'--with-pcre-regex=/usr' '--with-layout=GNU' 
'--with-mime-magic=/etc/httpd/conf/magic' '--with-apxs2=/usr/sbin/apxs' 
'--without-mysql' '--with-mcrypt=usr/bin/mcrypt' 
'--with-mhash=usr/bin/mhash' '--enable-gd-native-ttf' '--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' 
'--enable-ucd-snmp-hack' '--enable-memory-limit' '--enable-shmop'
'--enable-calendar' '--enable-dbx' '--enable-inline-optimization' 
'--enable-safe-mode' '--enable-zip' '--disable-dom' '--disable-dba' 
'--disable-rpath' '--disable-debug' '--disable-pdo' '--disable-xmlreader' 
'--disable-xmlwriter' '--without-gdbm' '--without-sqlite' '--without-odbc'
'--without-unixODBC' '--without-pgsql' '--without-pdo-sqlite' 
'--without-pdo-pgsql' '--without-gmp'

mit --with-mysql und --with-gd hab ich auch herumexperimentiert (dann werden sie einkompiliert)... oder brauchen die alle ein "shared"? Oder ist an den libtool-Schaltern noch irgendwas zu drehen? Die meisten Schalter aus ./configure --help habe ich mittlerweile durch...

Dank Euch!!!
 
Problem bei make - PHP 5.2.1

Hallo,

wenn ich auf meinem VRS (Redhat) PHP 5.2.1 mit der Option --enable-cli baue, bricht make ab. Es tritt beim linken der sapi/cli/php auf.

Mit --disable-cli läuft make durch.

Die genaue Fehlermeldung lautet:
ext/mysql/.libs/php_mysql.o(.text+0x21b2): In function `zif_mysql_create_db':
/usr/local/php-5.1.6/ext/mysql/php_mysql.c:1176: undefined reference to `mysql_create_db'
ext/mysql/.libs/php_mysql.o(.text+0x23cd): In function `zif_mysql_drop_db':
/usr/local/php-5.1.6/ext/mysql/php_mysql.c:1218: undefined reference to `mysql_drop_db'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

Mein configure:
./configure --prefix=/usr/local/php521/php-5.2.1 --bindir=/usr/local/php521/php-5.2.1/bin --exec-prefix=/usr/local/php521/php-5.2.1/bin --includedir=/usr/include --sysconfdir=/etc/httpd --with-config-file-path=/usr/local/Zend/etc --enable-inline-optimization --enable-memory-limit --enable-magic-quotes --enable-safe-mode --enable-sigchild --enable-session --with-mysql --enable-cli --with-pear=/usr/local/bin --without-pgsql --with-apxs2=/usr/sbin/apxs --disable-short-tags --enable-sysvsem --enable-shmop --enable-sysvshm --enable-bcmath --enable-mbstring --enable-ftp --disable-cgi --enable-calendar --with-zlib --with-zlib-dir=/usr/lib --enable-sockets --enable-exif --with-_lib=lib

Vielen Dank schon mal im Voraus!
 
Und wieso aber werden beim Kompilieren die Extensions nicht neu gebaut?
Weil du die, wenn du es so machen wolltest, alle einzeln Basteln müssen.
Es ist in deinem Falle besser die einfach einzukompilieren.
Die .so-Files, die noch rumliegen sind nicht mehr brauchbar. Kannst du einfach löschen oder liegenlassen. Egal. Hauptsache die inkludierst sie nicht über die php.ini.
 
Hallo

I have updated PHP to 5 and apache restart
But my php is not working, my php forums is not opening.
Please help me

Apache version 2.0.53
Suse Linux 9.3

I get this error when i restart apache :
Code:
 # /etc/init.d/apache2 restart
httpd2-prefork: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Tue Mar 20 00:30:37 2007] [warn] NameVirtualHost 85.25.134.42:80 has no VirtualHosts
[Tue Mar 20 00:30:37 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
Syntax OK
Shutting down httpd2 (waiting for all children to terminate)          done
Starting httpd2 (prefork) httpd2-prefork: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Tue Mar 20 00:30:37 2007] [warn] NameVirtualHost 85.25.134.42:80 has no VirtualHosts
[Tue Mar 20 00:30:37 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
                                                                      failed
 
Last edited by a moderator:
Hello Arto,

just enter Yast
Code:
yast
and go to Software Management (aka "Install/Remove Software").
Search for "PHP" and afterwards for "apache2" and reinstall both of them.

Are you running Confixx on your server?
Reinstalling Apache webserver will most likely not help a lot, since there seems to be something wrong with the configuration of Apache.

Either try to fix it yourself (using v40's link: huschi.net - Apache: [warn] NameVirtualHost *:80 has no VirtualHosts) or you might go to http://en.php-installation.com. This website will be available in English in a couple of hours. Please note that I do not want to force you to do the latter, since this service ain't free of charge.

Do you understand any German? Do you have trouble understanding huschi.net - Apache: [warn] NameVirtualHost *:80 has no VirtualHosts ?
 
Last edited by a moderator:
Back
Top