PHP Load Module Warnung

PHP Load Module Warnung

am 21.07.2005 13:14:14 von Michel Feldheim

Hallo zusammen,

ich habe gerade PHP 5 auf meiner debian kiste aktualisiert.
Nach dem update (mit apt-get dist-upgrade) war komischerweise das pcre modul
deaktiviert, hat aber nach einem Neustart des Apache wieder funktioniert.

Bei der Suche nach der Fehlerursache bin ich auf eine Warnung gestoßen, die
normalerweise durch die Option
"Show startup warnings = 0" deaktivert, und demnach nicht sichtbar ist.

php5 -v
############################
PHP Warning: Module 'openssl' already loaded in Unknown on line 0
PHP Warning: Module 'ftp' already loaded in Unknown on line 0
PHP Warning: Module 'iconv' already loaded in Unknown on line 0
PHP Warning: Module 'mbstring' already loaded in Unknown on line 0
PHP Warning: Module 'pcre' already loaded in Unknown on line 0
PHP 5.0.4-1.dotdeb.1 (cli) (built: Apr 14 2005 10:23:01)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies
with eAccelerator v0.9.2, Copyright (c) 2004-2004 eAccelerator, by
eAccelerator
############################

Am Ende der php.ini gibt es den automatisch generierten LoadModule Anhang..

php.ini
############################
....
....
;;; BEGIN AUTOMAGIC EXTENSIONS LIST
; Autogenerated extensions list - do not edit!
; This file is maintained by the php5-apache2 package.
; To update it, run the command:
; /usr/sbin/php5-modconf apache2

extension=openssl.so
extension=ftp.so
extension=iconv.so
extension=mbstring.so
extension=mnogosearch.so
extension=pcre.so

;;; END AUTOMAGIC EXTENSIONS LIST
############################

Die extensions werden in der php.ini aber an keiner weiteren Stelle geladen.

############################
.../configure' '--disable-cli' '--disable-cgi' '--with-apxs2=/usr/bin/apxs2'
'--with-config-file-path=/etc/php5/apache2' '--cache-file=../config.cache'
'--prefix=/usr' '--disable-rpath' '--disable-debug' '--enable-gd-native-ttf'
'--enable-gd-jis-conv' '--enable-sysvsem' '--enable-sysvshm'
'--enable-sysvmsg' '--enable-memory-limit' '--with-layout=GNU'
'--with-exec-dir=/usr/lib/php5/libexec' '--with-libxml-dir=/usr'
'--with-kerberos=/usr' '--with-expat-dir=/usr' '--without-mm'
'--without-zlib' '--without-zlib-dir' '--disable-bcmath' '--disable-ctype'
'--disable-dbx' '--disable-dom' '--disable-exif' '--without-gettext'
'--disable-simplexml' '--disable-spl' '--disable-ftp' '--disable-posix'
'--disable-session' '--disable-shmop' '--disable-sockets'
'--disable-sysvmsg' '--disable-sysvsem' '--disable-sysvshm'
'--disable-tokenizer' '--without-iconv' '--without-sqlite'
'--with-regex=php' '--without-mime-magic' '--without-mysql'
'--without-sybase-ct' '--enable-xml' '--without-gdbm' '--without-db4'
'--without-cdb' '--without-inifile' '--without-flatfile' '--disable-static'
'--disable-libxml' '--without-pcre-regex' '--disable-pear'
############################

An welcher Stelle könnten die extensions denn ausserdem geladen werden?
Ich gehe davon aus, dass die Einträge aus der autoextention list den Fehler
verursachen weil bereits vorher geladen wurde.

Wie kann ich das beheben? Ich würde diese Liste gerne so lassen und die
nicht automatisch generierten Einträge entfernen.. aber wo suchen?
Bringt das große Performanceeinbußen?

Danke für eure Hilfe

MFG
MF

Re: PHP Load Module Warnung

am 21.07.2005 14:01:52 von dev-null-use-reply-adress

Michel Feldheim schrieb:
> php5 -v
> ############################
> PHP Warning: Module 'openssl' already loaded in Unknown on line 0
> PHP Warning: Module 'ftp' already loaded in Unknown on line 0
> PHP Warning: Module 'iconv' already loaded in Unknown on line 0
> PHP Warning: Module 'mbstring' already loaded in Unknown on line 0
> PHP Warning: Module 'pcre' already loaded in Unknown on line 0
> PHP 5.0.4-1.dotdeb.1 (cli) (built: Apr 14 2005 10:23:01)
> ############################
>
> Am Ende der php.ini gibt es den automatisch generierten LoadModule Anhang..
>
> php.ini
> ############################
> extension=openssl.so
> extension=ftp.so
> extension=iconv.so
> extension=mbstring.so
> extension=mnogosearch.so
> extension=pcre.so
> ############################
>
> Die extensions werden in der php.ini aber an keiner weiteren Stelle geladen.

Wenn Du wie oben "php5 -v" eingibst, rufst Du das CLI binary auf.
Auch dieses nutzt aber die vorhandene php.ini und hat scheinbar diese
Extension schon fest einkompiliert, sodaß sie nicht mehr dynamisch
nachgeladen werden könnnen.

Die php.ini ist also wohl ausgelegt für das Apache Modul.
Du bräuchtest jetzt also ein neues, passendes binary.

> ############################
> ../configure' '--disable-cli' '--disable-cgi' '--with-apxs2=/usr/bin/apxs2'
> '--with-config-file-path=/etc/php5/apache2' '--cache-file=../config.cache'
> '--prefix=/usr' '--disable-rpath' '--disable-debug' '--enable-gd-native-ttf'
> '--enable-gd-jis-conv' '--enable-sysvsem' '--enable-sysvshm'
> '--enable-sysvmsg' '--enable-memory-limit' '--with-layout=GNU'
> '--with-exec-dir=/usr/lib/php5/libexec' '--with-libxml-dir=/usr'
> '--with-kerberos=/usr' '--with-expat-dir=/usr' '--without-mm'
> '--without-zlib' '--without-zlib-dir' '--disable-bcmath' '--disable-ctype'
> '--disable-dbx' '--disable-dom' '--disable-exif' '--without-gettext'
> '--disable-simplexml' '--disable-spl' '--disable-ftp' '--disable-posix'
> '--disable-session' '--disable-shmop' '--disable-sockets'
> '--disable-sysvmsg' '--disable-sysvsem' '--disable-sysvshm'
> '--disable-tokenizer' '--without-iconv' '--without-sqlite'
> '--with-regex=php' '--without-mime-magic' '--without-mysql'
> '--without-sybase-ct' '--enable-xml' '--without-gdbm' '--without-db4'
> '--without-cdb' '--without-inifile' '--without-flatfile' '--disable-static'
> '--disable-libxml' '--without-pcre-regex' '--disable-pear'
> ############################

Interessant finde ich diese ganzen disables und withouts. Ich dachte
immer man müsse die Extensions mit shared angeben, wenn man sie später
perl dl() oder php.ini nachladen möchte.


Gruß, JPM

Re: PHP Load Module Warnung

am 22.07.2005 00:35:40 von Helmut Schmuckermair

>> ich habe gerade PHP 5 auf meiner debian kiste aktualisiert.
> Wenn Du wie oben "php5 -v" eingibst, rufst Du das CLI binary auf.
> Auch dieses nutzt aber die vorhandene php.ini ...
> ...
> Die php.ini ist also wohl ausgelegt für das Apache Modul.

PHP4 auf Debian Sarge:

# find /etc -name php.ini
/etc/php4/apache/php.ini
/etc/php4/cli/php.ini
/etc/php4/cgi/php.ini

Gibts bei PHP5 tatsächlich nur mehr ein einziges php.ini?