Sorry mods if this is a repost of something already resolved. I've been having much trouble getting WS02 installed on my IIS/PHP dev machine. I have followed the instructions here: http://wso2.org/library/3465
When I run php -m I get wsf in the list of modules. However, phpinfo() insists that the module isn't loaded (see below).
I have gone through all the dependencies I am aware of to ensure they are current, but it is very possible I have missed something.
The WS02 *appears* to be loading as I am finding logs in the log file location.
Here are my php.ini, ws02 server log, and results of phpinfo(). Thanks so much!
ws_php_server.log:
[Sat Oct 25 12:11:46 2008] [debug] wsf.c(236) wsf version - 2.0.0
[Sat Oct 25 12:11:46 2008] [debug] wsf.c(237) php version - 5.2.6
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\engine\phase.c(121) axis2_handler_t *request_uri_based_dispatcher added to the index 0 of the phase Transport
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\engine\phase.c(121) axis2_handler_t *addressing_based_dispatcher added to the index 1 of the phase Transport
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\engine\phase.c(121) axis2_handler_t *rest_dispatcher added to the index 0 of the phase Dispatch
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\engine\phase.c(121) axis2_handler_t *soap_message_body_based_dispatcher added to the index 1 of the phase Dispatch
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\engine\phase.c(121) axis2_handler_t *soap_action_based_dispatcher added to the index 2 of the phase Dispatch
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\engine\phase.c(121) axis2_handler_t *dispatch_post_conditions_evaluator added to the index 0 of the phase PostDispatch
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\engine\phase.c(121) axis2_handler_t *context_handler added to the index 1 of the phase PostDispatch
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\conf_builder.c(233) No custom dispatching order found. Continue with the default dispatching order
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\conf_builder.c(378) Module addressing found in axis2.xml
[Sat Oct 25 12:11:46 2008] [debug] ..\..\util\src\class_loader.c(140) C:\Program Files\PHP\wsf_c/lib/axis2_http_sender.dll shared lib loaded successfully
[Sat Oct 25 12:11:46 2008] [debug] ..\..\util\src\class_loader.c(140) C:\Program Files\PHP\wsf_c/lib/axis2_http_sender.dll shared lib loaded successfully
[Sat Oct 25 12:11:46 2008] [debug] ..\..\util\src\class_loader.c(140) C:\Program Files\PHP\wsf_c/lib/axis2_http_receiver.dll shared lib loaded successfully
[Sat Oct 25 12:11:46 2008] [debug] ..\..\util\src\class_loader.c(140) C:\Program Files\PHP\wsf_c/lib/axis2_http_receiver.dll shared lib loaded successfully
[Sat Oct 25 12:11:46 2008] [info] No files in the path C:\Program Files\PHP\wsf_c/services.
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : C:\Program Files\PHP\wsf_c/modules/addressing/axis2_mod_addr.dll
[Sat Oct 25 12:11:46 2008] [debug] ..\..\util\src\class_loader.c(140) C:\Program Files\PHP\wsf_c/modules/addressing/axis2_mod_addr.dll shared lib loaded successfully
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/SCT
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : C:\Program Files\PHP\wsf_c/modules/rahas/mod_rahas.dll
[Sat Oct 25 12:11:46 2008] [debug] ..\..\util\src\class_loader.c(140) C:\Program Files\PHP\wsf_c/modules/rahas/mod_rahas.dll shared lib loaded successfully
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : C:\Program Files\PHP\wsf_c/modules/rampart/mod_rampart.dll
[Sat Oct 25 12:11:46 2008] [debug] ..\..\util\src\class_loader.c(140) C:\Program Files\PHP\wsf_c/modules/rampart/mod_rampart.dll shared lib loaded successfully
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\module_builder.c(447) mep_url:http://www.w3.org/2004/08/wsdl/in-only
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://schemas.xmlsoap.org/ws/2005/02/rm/TerminateSequence
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://schemas.xmlsoap.org/ws/2005/02/rm/SequenceAcknowledgement
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://schemas.xmlsoap.org/ws/2005/02/rm/AckRequested
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsrm/200702/SequenceAcknowledgement
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsrm/200702/CreateSequenceResponse
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsrm/200702/AckRequested
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\module_builder.c(447) mep_url:http://www.w3.org/2004/08/wsdl/in-out
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsrm/200702/CreateSequence
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsrm/200702/TerminateSequence
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsrm/200702/CloseSequence
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsrm/200702/CloseSequenceResponse
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsrm/200702/TerminateSequenceResponse
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\desc_builder.c(777) Input action mapping found http://docs.oasis-open.org/ws-rx/wsmc/200702/MakeConnection
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\deployment\dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : C:\Program Files\PHP\wsf_c/modules/sandesha2/sandesha2.dll
[Sat Oct 25 12:11:46 2008] [debug] ..\..\util\src\class_loader.c(140) C:\Program Files\PHP\wsf_c/modules/sandesha2/sandesha2.dll shared lib loaded successfully
[Sat Oct 25 12:11:46 2008] [debug] ..\..\src\core\phaseresolver\phase_holder.c(139) Add handler AddressingInHandler to phase Transport
[Sat Oct 25 12:11:46 2008] [info] [rampart][rampart_mod] rampart_mod initialized
[Sat Oct 25 12:11:46 2008] [info] [rahas]Rahas module initialized
[Sat Oct 25 12:11:46 2008] [debug] wsf_worker.c(161) [WSF/PHP] rm_db_dir C:\Windows\temp/sandesha2_db
php.ini:
[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
; This file controls many aspects of PHP's behavior. In order for PHP to
; read it, it must be named 'php.ini'. PHP looks for it in the current
; working directory, in the path designated by the environment variable
; PHPRC, and in the path that was defined in compile time (in that order).
; Under Windows, the compile-time path is the Windows directory. The
; path in which the php.ini file is looked for can be overridden using
; the -c argument in command line mode.
;
; The syntax of the file is extremely simple. Whitespace and Lines
; beginning with a semicolon are silently ignored (as you probably guessed).
; Section headers (e.g. [Foo]) are also silently ignored, even though
; they might mean something in the future.
;
; Directives are specified using the following syntax:
; directive = value
; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
;
; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo").
;
; Expressions in the INI file are limited to bitwise operators and parentheses:
; | bitwise OR
; & bitwise AND
; ~ bitwise NOT
; ! boolean NOT
;
; Boolean flags can be turned on using the values 1, On, True or Yes.
; They can be turned off using the values 0, Off, False or No.
;
; An empty string can be denoted by simply not writing anything after the equal
; sign, or by using the None keyword:
;
; foo = ; sets foo to an empty string
; foo = none ; sets foo to an empty string
; foo = "none" ; sets foo to the string 'none'
;
; If you use constants in your value, and these constants belong to a
; dynamically loaded extension (either a PHP extension or a Zend extension),
; you may only use these constants *after* the line that loads the extension.
;
;
;;;;;;;;;;;;;;;;;;;
; About this file ;
;;;;;;;;;;;;;;;;;;;
; This is the recommended, PHP 5-style version of the php.ini-dist file. It
; sets some non standard settings, that make PHP more efficient, more secure,
; and encourage cleaner coding.
;
; The price is that with these settings, PHP may be incompatible with some
; applications, and sometimes, more difficult to develop with. Using this
; file is warmly recommended for production sites. As all of the changes from
; the standard settings are thoroughly documented, you can go over each one,
; and decide whether you want to use it or not.
;
; For general information about the php.ini file, please consult the php.ini-dist
; file, included in your PHP distribution.
;
; This file is different from the php.ini-dist file in the fact that it features
; different values for several directives, in order to improve performance, while
; possibly breaking compatibility with the standard out-of-the-box behavior of
; PHP. Please make sure you read what's different, and modify your scripts
; accordingly, if you decide to use this file instead.
;
; - register_long_arrays = Off [Performance]
; Disables registration of the older (and deprecated) long predefined array
; variables ($HTTP_*_VARS). Instead, use the superglobals that were
; introduced in PHP 4.1.0
; - display_errors = Off [Security]
; With this directive set to off, errors that occur during the execution of
; scripts will no longer be displayed as a part of the script output, and thus,
; will no longer be exposed to remote users. With some errors, the error message
; content may expose information about your script, web server, or database
; server that may be exploitable for hacking. Production sites should have this
; directive set to off.
; - log_errors = On [Security]
; This directive complements the above one. Any errors that occur during the
; execution of your script will be logged (typically, to your server's error log,
; but can be configured in several ways). Along with setting display_errors to off,
; this setup gives you the ability to fully understand what may have gone wrong,
; without exposing any sensitive information to remote users.
; - output_buffering = 4096 [Performance]
; Set a 4KB output buffer. Enabling output buffering typically results in less
; writes, and sometimes less packets sent on the wire, which can often lead to
; better performance. The gain this directive actually yields greatly depends
; on which Web server you're working with, and what kind of scripts you're using.
; - register_argc_argv = Off [Performance]
; Disables registration of the somewhat redundant $argv and $argc global
; variables.
; - magic_quotes_gpc = Off [Performance]
; Input data is no longer escaped with slashes so that it can be sent into
; SQL databases without further manipulation. Instead, you should use the
; function addslashes() on each input element you wish to send to a database.
; - variables_order = "GPCS" [Performance]
; The environment variables are not hashed into the $_ENV. To access
; environment variables, you can use getenv() instead.
; - error_reporting = E_ALL [Code Cleanliness, Security(?)]
; By default, PHP suppresses errors of type E_NOTICE. These error messages
; are emitted for non-critical errors, but that could be a symptom of a bigger
; problem. Most notably, this will cause error messages about the use
; of uninitialized variables to be displayed.
; - allow_call_time_pass_reference = Off [Code cleanliness]
; It's not possible to decide to force a variable to be passed by reference
; when calling a function. The PHP 4 style to do this is by making the
; function require the relevant argument by reference.
; - short_open_tag = Off [Portability]
; Using short tags is discouraged when developing code meant for redistribution
; since short tags may not be supported on the target server.
;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
; Enable the PHP scripting language engine under Apache.
engine = On
; Enable compatibility mode with Zend Engine 1 (PHP 4.x)
zend.ze1_compatibility_mode = Off
; Allow the <? tag. Otherwise, only <?php and
Bookmark/Search this post with:
Re: IIS installation
Have you added wsf_c/lib directory and other depencencies like libxml to path System variable ?
If it is there in the user path variable, it wont get loaded. Also have a look the php error log file. That can give you an indication of what is going wrong.
-- Nandika
Thanks - more info
Thanks for the speedy response!
I've added the wsf_c/lib and libxml directories to the path as per the instructions. They are in the system path, not the user path.
I have found this, however. I can run the echo_client.php example from the php command-line and I get this response:
Message = Error , NO Response Received
When I run it from a website I get this error:
Fatal error: Class 'WSClient' not found in C:\Inetpub\wwwroot\phpwebservices\echo_client.php on line 27
I have several other browser-based php apps that run on this machine just fine.
Any help is greatly appreciated!!
Alright, kids, I've fixed
Alright, kids, I've fixed it, yeahoo!
Here are some things I found:
- Using dependency walker I found that dwmapi.dll was missing. I downloaded it and put it in my PHP directory.
- Again, using dependency walker I found that an old version of libxml2.dll was being loaded from my windows directory. It didn't have some of the interfaces required by the wsf. I replaced this file with the version I had previously downloaded.
After a reboot everything is hunky dory. Cheers!