remoting framework problem with 2.2.14

Discussion in 'Installation/Configuration' started by mumbly, Jun 21, 2007.

  1. mumbly

    mumbly New Member

    hi !
    I try to use the remoting framework with the 2.2.14 ISPConfig version.
    But i 've got an error :
    "Fatal error: Cannot redeclare class soapclient in /var/www/web3/web/site/soap.lib.php on line 4101"
    I have followed the tutos here, recompile ispconfig with xml, curl and put the new ioncube loader.
    Please help ! thanx !!!
     
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    Either you included the soap library twice or the PHP version that you use in your websites ahs a soep extension installed that conflicts with the soap library that comes with the example files.
     
  3. jnsc

    jnsc rotaredoM Moderator

    And the ioncube loader is not necessary anymore
     
  4. mumbly

    mumbly New Member

    so i should get rid of "soap" stuff in the php.ini ?

    ok ... so I've got 3 files php.ini on my system :
    /root/ispconfig/php/php.ini -----> no soap extension
    /etc/php5/cli/php.ini ------> soap lines are now commented with a ;
    /etc/php5/apache2/php.ini ----> soap lines are now commented with a ;

    I've done : /etc/init.d/apache2 restart

    ... but same error ! :(

    (I run a Ubuntu 7.04 server ...)
     
  5. till

    till Super Moderator Staff Member ISPConfig Developer

    The rekevant php-ini file is: /etc/php5/apache2/php.ini

    If you can not remove it by commenting it out, you can try to uninstall the soap package or you use this soap package instead of the library used in the remoting examples.
     
  6. mumbly

    mumbly New Member

    ok ... but
    i've done like this :

    [soap]
    ; Enables or disables WSDL caching feature.
    ; soap.wsdl_cache_enabled=1
    ; Sets the directory name where SOAP extension will put cache files.
    ; soap.wsdl_cache_dir="/tmp"
    ; (time to live) Sets the number of second while cached file will be used
    ; instead of original one.
    ; soap.wsdl_cache_ttl=86400

    I've restarted apache but i've got the same error !!!
     
  7. till

    till Super Moderator Staff Member ISPConfig Developer

    The above does configure soap, it does not enable or disable it.
     
  8. mumbly

    mumbly New Member

    All right !
    So : the one billion dollars question :
    How to disable soap ? :rolleyes:
    Thanx !

    (i must say that i have NOT any extension line like extension=soap.so or something like that in my php.ini ...)
     
  9. mlz

    mlz New Member

    create a test file containing:

    Code:
    <?php
    phpinfo();
    and load it in the browser, Find out if it's compiled as a module or part of PHP.
     
  10. mumbly

    mumbly New Member

    Ok : here is the output of the phpinfo(); :

    soap
    Soap Client enabled
    Soap Server enabled

    Directive Local Value Master Value
    soap.wsdl_cache 1 1
    soap.wsdl_cache_dir /tmp /tmp
    soap.wsdl_cache_enabled 1 1
    soap.wsdl_cache_limit 5 5
    soap.wsdl_cache_ttl 86400 86400

    You can see it "live" here -----> http://www.francofolibre.org/phpinfo.php

    I think soap is part of the php5-cli package under ubuntu/debian, right ?

    So what should i do ?
     
  11. mlz

    mlz New Member

    It sure looks like a module, what happens when you do a php -m on the command line? I'm not a deb user, so I'm not sure how that distro packages things.
     
  12. mumbly

    mumbly New Member

    With a php -m, i can see "soap" among the modules list ...

    ~$ php -m

    [PHP Modules]

    ...
    soap
    ...

    [Zend Modules]
     
  13. falko

    falko Super Moderator ISPConfig Developer

    What's the output of
    Code:
    grep extension /etc/php5/apache2/php.ini
    ?

    What's the output of
    Code:
    ls -la /etc/php5/apache2/conf.d
    ?
     
  14. mumbly

    mumbly New Member

    :~$ grep extension /etc/php5/apache2/php.ini
    ; dynamically loaded extension (either a PHP extension or a Zend extension),
    ; you may only use these constants *after* the line that loads the extension.
    ; leading '/'. You must also specify the file extension being used including
    ; Directory in which the loadable extensions (modules) reside.
    ; extension_dir = "./"
    ; If you wish to have an extension loaded automatically, use the following
    ; extension=modulename.extension
    ; extension=msql.dll
    ; extension=msql.so
    ; needs to go here. Specify the location of the extension with the
    ; extension_dir directive above.
    ; Sets the directory name where SOAP extension will put cache files.
    extension=imagick.so
    extension=imap.so
    extension=json.so
    extension=mcrypt.so
    extension=memcache.so
    extension=php_soap.so


    :~$ ls -la /etc/php5/apache2/conf.d
    lrwxrwxrwx 1 root root 9 2007-06-17 09:58 /etc/php5/apache2/conf.d -> ../conf.d
     
  15. mlz

    mlz New Member

    And there it is, php_soap.so
     
  16. mumbly

    mumbly New Member

    I've deleted the line with "php_soap.so" and restarted apache.
    and ... same error :
    "Fatal error: Cannot redeclare class soapclient in /var/www/web3/web/site/soap.lib.php on line 4101"

    :mad: :eek: :confused:

    Now i 've got :

    ~# grep extension /etc/php5/apache2/php.ini
    ; dynamically loaded extension (either a PHP extension or a Zend extension),
    ; you may only use these constants *after* the line that loads the extension.
    ; leading '/'. You must also specify the file extension being used including
    ; Directory in which the loadable extensions (modules) reside.
    ; extension_dir = "./"
    ; If you wish to have an extension loaded automatically, use the following
    ; extension=modulename.extension
    ; extension=msql.dll
    ; extension=msql.so
    ; needs to go here. Specify the location of the extension with the
    ; extension_dir directive above.
    ; Sets the directory name where SOAP extension will put cache files.
    extension=imagick.so
    extension=imap.so
    extension=json.so
    extension=mcrypt.so
    extension=memcache.so

    and in /etc/php5/apache2/conf.d, there is NO soap.ini
    curl.ini mhash.ini mysqli.ini pdo.ini pdo_sqlite.ini pspell.ini snmp.ini tidy.ini xsl.ini
    gd.ini ming.ini mysql.ini pdo_mysql.ini ps.ini recode.ini sqlite.ini xmlrpc.ini
     
    Last edited: Jun 24, 2007
  17. falko

    falko Super Moderator ISPConfig Developer

    This error is an error in your PHP script, meaning that you try to declare the class soapclient twice. It's not in any way related to your removing the SOAP extension from PHP.
     
  18. mlz

    mlz New Member

    You might make sure your not double loading the soap.lib.php Been there, done that a few million times. Aggravating isn't it?
     
  19. mumbly

    mumbly New Member

    Yes, you're right BUT ...

    The question is : how can i do to verify that i'm not double loading the soap.lib.php ?

    I've tried to look for the soap thing ... but i can not find where it is. It seems to be included in the php5-cli package ... right ?

    If i comment the include("soap.lib.php"); in test.php, i get a new type of error (nothing weird here ... as it's expected !):
    Warning: SoapClient::SoapClient(https://192.168.0.1:81/remote/index.php) [function.SoapClient-SoapClient]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in /var/www/web3/web/site/test.php on line 18

    So : i know i might double loading soap thing ... but How can i avoid this ? :D

    Thanx
     
  20. mlz

    mlz New Member

    Try this in both your /etc/httpd/conf and /etc/httpd/conf.d and run the following:

    Code:
    # grep soap.lib.php *
    and see if you get some hits.
     

Share This Page