Bug 69464 - php4-wddx broken - php4 cannot load wddx.so
Summary: php4-wddx broken - php4 cannot load wddx.so
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Alex Dupre
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-23 06:30 UTC by Vadim Mikhailov
Modified: 2004-07-26 08:17 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vadim Mikhailov 2004-07-23 06:30:19 UTC
      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.
Comment 1 toomas.aas 2004-07-23 08:28:54 UTC
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.
Comment 2 Vadim Mikhailov 2004-07-23 08:41:12 UTC
   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.
Comment 3 Pav Lucistnik freebsd_committer freebsd_triage 2004-07-24 12:21:32 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ale

Over to maintainer.
Comment 4 Alex Dupre freebsd_committer freebsd_triage 2004-07-26 08:17:01 UTC
State Changed
From-To: open->closed

Fixed, rebuild the php4-wddx port.