PHP kompilieren - Module/Extensions werden nicht erstellt?
Moin,
nach einiger Zeit des Mitlesens wird es jetzt Zeit für meinen ersten Hilferuf...
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!!!