After complete reinstall of apache2, php4 and php4-extensions as of July 22, 2004, PHP does not seem to be able to use new wddx.so. I moved all extension=xxx.so lines from the bottom of php.ini where they were errorneously put by php4-extensions installer to the correct section. Now my /usr/local/etc/php.ini looks like this: extension=ctype.so extension=imap.so extension=openssl.so extension=pgsql.so extension=pcre.so extension=posix.so extension=session.so extension=tokenizer.so extension=zlib.so extension=bcmath.so extension=calendar.so extension=exif.so extension=ftp.so extension=gd.so extension=gettext.so extension=imagick.so extension=ldap.so extension=mcrypt.so extension=mhash.so extension=mysql.so extension=overload.so extension=readline.so extension=shmop.so extension=xmlrpc.so extension=xml.so extension=wddx.so Now after I restart apache all modules work fine except wddx.so. PHP spits this in apache httpd-error.log: PHP Warning: Unknown(): Invalid library (maybe not a PHP library) 'wddx.so' in Unknown on line 0 [Thu Jul 22 19:33:23 2004] [notice] Apache/2.0.50 (FreeBSD) PHP/4.3.8 mod_ssl/2.0.50 OpenSSL/0.9.7d configured -- resuming normal operations WDDX also does not show up in phpinfo output. If I comment out wddx.so in php.ini, I don't see this warning, and phpinfo() confirms that all other PHP modules are loaded ok. Fix: I think compiling in WDDX statically should work, at least it used to work for me just week ago. How-To-Repeat: cvsup ports as of July 22, 2004 on FreeBSD system, install apache2, php4 and php4-wddx ports. Start apache and see httpd-error.log that wddx.so cannot be properly loaded. Any other PHP module works.
Hello! I'm seeing the same problem on my server FreeBSD <hostname> 4.9-RELEASE-p4 FreeBSD 4.9-RELEASE-p4 #1: Thu May 27 14:30:24 EEST 2004 toomas@<hostname>:/usr/obj/usr/src/sys/HEEROLD i386 [Fri Jul 23 10:15:16 2004] [notice] Apache/1.3.31 (Unix) ApacheJServ/1.1.2 mod_ssl/2.8.17 OpenSSL/0.9.7c-p1 PHP/4.3.8 configured -- resuming normal operations Compiling wddx statically seems to work. At least I no longer get the error message from PHP. Note that I also needed to compile xml and xmlrpc extensions (which I am using) statically, otherwise I got the following errors from PHP: [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_parser_create in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_parser_create_ns in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_object in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_element_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_character_data_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_processing_instruction_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_default_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_unparsed_entity_decl_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_notation_decl_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_external_entity_ref_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_start_namespace_decl_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_set_end_namespace_decl_handler in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_parse in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_parse_into_struct in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_get_error_code in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_error_string in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_get_current_line_number in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_get_current_column_number in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_get_current_byte_index in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_parser_free in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_parser_set_option in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - xml_parser_get_option in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - utf8_encode in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: Function registration failed - duplicate name - utf8_decode in Unknown on line 0 [23-Jul-2004 10:02:09] PHP Warning: xml: Unable to register functions, unable to load in Unknown on line 0 To achieve this, I made the following changes to lang/php4/Makefile: --------------------------------------------------------------------- --- Makefile.orig Wed Jul 21 18:58:05 2004 +++ Makefile Fri Jul 23 10:08:40 2004 @@ -30,6 +30,11 @@ CONFIGURE_ARGS= --enable-versioning \ --enable-memory-limit \ --with-layout=GNU \ + --enable-xml \ + --with-expat-dir=${LOCALBASE} \ + --with-iconv-dir=${LOCALBASE} \ + --with-xmlrpc \ + --enable-wddx \ --disable-all .if !defined(WITH_REGEX_TYPE) || ${WITH_REGEX_TYPE} == "php" --------------------------------------------------------------------- -- Toomas Aas | toomas.aas@raad.tartu.ee | http://www.raad.tartu.ee/~toomas/ * Show respect to age. Drink good scotch.
Compiling WDDX statically does indeed fix the problem. Since php_options with list of modules is not supported anymore for php4 port (my understanding that php4-extensions is designed for this purpose), I changed /usr/ports/lang/php4/Makefile by hand and added "--enable-wddx" to CONFIGURE_ARGS. Then I did "make deinstall", "make reinstall" and restarted apache2. phpinfo() now shows that WDDX is enabled. Other PHP modules (xml, openssl, zlib, etc) are still loaded dynamically through extension= in php.ini, and everything works fine. This proves that wddx.so is broken.
Responsible Changed From-To: freebsd-ports-bugs->ale Over to maintainer.
State Changed From-To: open->closed Fixed, rebuild the php4-wddx port.