Re: [PHP4BETA] cvs: php4 /sapi/nsapi/ config.m4 nsapi-readme.txt nsapi.c

[email protected] ("Mark Faine") Thu, 1 Jun 2000 10:38:11 -0500
Newsgroups php.version4
Message-ID <[email protected]>
Is the following line a mistake:
#note place following two lines after mime types init!
>  Init fn="load-modules"
funcs="php4_init,php4_close,php4_execute,php4_auth_trans"
shlib="/php4/nsapiPHP4.dll"

This looks like windows?  What do you put here for unix.

I have done all of this, but I am still getting the following error:

dlopen of /home/web_server/netscape/suitespot/bin/libphp4.so failed
(ld.so.1: ns-httpd: fatal: libstdc++.so.2.10.0: open failed:  No such file
or directory)

My configuration information follows:
PHP4.0 cvs build from 5-31-00
Solaris 2.6
Netscape Enterprise Server 3.6

I used the following flags in the configure:

--enable-sigchild
--enable-libgcc
--enable-discard-path
--enable-magic-quotes
--enable-track-vars
--with-openssl
--with-oracle
--enable-trans-sid
--enable-memory-limit
--enable-versioning
--enable-sysvshm
--with-nsapi=path/to/my/netscape/server/root




""Anthony Whitehead"" <[email protected]> wrote in message
news:cvsantw959692818@cvsserver...
> antw Tue May 30 06:20:18 2000 EDT
>
>   Modified files:
>     /php4/sapi/nsapi config.m4 nsapi-readme.txt nsapi.c
>   Log:
>   Altered NSAPI autoconf to check for location of include files
automatically, tested for Netscape 3.x and iPlanet 4.x.
>   Added very basic variable support for usefull things such as PHP_SELF.
I'll extend this to supply this rest of the variables soon.
>   Commited a patch to activate ZTS in the NSAPI module, this patch comes
from
>   Jayakumar Muthukumarasamy.
>
>
> Index: php4/sapi/nsapi/config.m4
> diff -u php4/sapi/nsapi/config.m4:1.4 php4/sapi/nsapi/config.m4:1.5
> --- php4/sapi/nsapi/config.m4:1.4 Sun Apr 30 10:28:24 2000
> +++ php4/sapi/nsapi/config.m4 Tue May 30 06:20:18 2000
> @@ -1,4 +1,4 @@
> -dnl ## $Id: config.m4,v 1.4 2000/04/30 17:28:24 rasmus Exp $ -*- sh -*-
> +dnl ## $Id: config.m4,v 1.5 2000/05/30 13:20:18 antw Exp $ -*- sh -*-
>
>  AC_MSG_CHECKING(for NSAPI support)
>  AC_ARG_WITH(nsapi,
> @@ -13,13 +13,26 @@
>    if test ! -d $PHP_NSAPI/bin ; then
>      AC_MSG_ERROR(Please specify the path to the root of your Netscape
server using --with-nsapi=DIR)
>    fi
> +  AC_MSG_CHECKING(for NSAPI include files)
> +  NSAPI_INCLUDE=""
> +  if test -d $PHP_NSAPI/include ; then
> +    NSAPI_INCLUDE=$PHP_NSAPI/include
> +    AC_MSG_RESULT(Netscape-Enterprise/3.x style)
> +  elif test -d $PHP_NSAPI/plugins/include ; then
> +    NSAPI_INCLUDE=$PHP_NSAPI/plugins/include
> +    AC_MSG_RESULT(iPlanet/4.x style)
> +  else
> +    AC_MSG_ERROR(Please check you have nsapi.h in either DIR/include or
DIR/plugins/include)
> +  fi
> +  AC_ADD_INCLUDE($NSAPI_INCLUDE)
>    PHP_BUILD_THREAD_SAFE
> -  AC_ADD_INCLUDE($PHP_NSAPI/include)
>    AC_DEFINE(HAVE_NSAPI,1,[Whether you have a Netscape Server])
>    PHP_SAPI=nsapi
>    PHP_BUILD_SHARED
>    INSTALL_IT="\$(INSTALL) -m 0755 $SAPI_SHARED $PHP_NSAPI/bin/"
>  fi
> +
> +INCLUDES="$INCLUDES -I$NSAPI_INCLUDE"
>
>  dnl ## Local Variables:
>  dnl ## tab-width: 4
> Index: php4/sapi/nsapi/nsapi-readme.txt
> diff -u php4/sapi/nsapi/nsapi-readme.txt:1.1
php4/sapi/nsapi/nsapi-readme.txt:1.2
> --- php4/sapi/nsapi/nsapi-readme.txt:1.1 Sat May  6 16:05:29 2000
> +++ php4/sapi/nsapi/nsapi-readme.txt Tue May 30 06:20:18 2000
> @@ -1,14 +1,27 @@
> -nsapi configuration file information
> +Configuration of your Netscape or iPlanet Web Server for PHP4
> +-------------------------------------------------------------
>
> +These instructions are targetted at Netscape Enterprise Web Server
> +and SUN/Netscape Alliance iPlanet Web Server. On other web servers
> +your milage may vary.
> +
> +Firstly you may need to add some paths to the LD_LIBRARY_PATH
> +environment for netscape to find all the shared libs. This is
> +best done in the start script for your netscape server.
> +Windows users can probably skip this step. The start
> +script is located in:
> +<path-to-netscape-server>/https-servername/start
> +
>  netscape config files are located in:
> -/netscape/suitespot/httpd-servername/config
> +<path-to-netscape-server>/https-servername/config
>
>  add the following line to mime.types
>
>  type=magnus-internal/x-httpd-php exts=php
>
>
> -Add the following to obj.conf
> +Add the following to obj.conf, shlib will vary depending on your OS, for
unix it
> +will be something like "<path-to-netscape-server>/bin/libphp4.so".
>
>  #note place following two lines after mime types init!
>  Init fn="load-modules"
funcs="php4_init,php4_close,php4_execute,php4_auth_trans"
shlib="/php4/nsapiPHP4.dll"
> Index: php4/sapi/nsapi/nsapi.c
> diff -u php4/sapi/nsapi/nsapi.c:1.3 php4/sapi/nsapi/nsapi.c:1.4
> --- php4/sapi/nsapi/nsapi.c:1.3 Thu May 18 08:34:42 2000
> +++ php4/sapi/nsapi/nsapi.c Tue May 30 06:20:18 2000
> @@ -20,16 +20,30 @@
>   * PHP includes
>   */
>  #define NSAPI 1
> +#define XP_UNIX
>
>  #include "php.h"
> -
> +#include "php_variables.h"
>  #include "ext/standard/info.h"
> -
>  #include "php_ini.h"
>  #include "php_globals.h"
>  #include "SAPI.h"
>  #include "main.h"
>  #include "php_version.h"
> +#include "TSRM.h"
> +#include "ext/standard/php_standard.h"
> +
> +/*
> + * If neither XP_UNIX not XP_WIN32 is defined, try to guess which one.
> + * Ideally, this should be done by the configure script.
> + */
> +#if !defined(XP_UNIX) && !defined(XP_WIN32)
> + #if defined(WIN32)
> + #define XP_WIN32
> + #else
> + #define XP_UNIX
> + #endif
> +#endif
>
>  /*
>   * NSAPI includes
> @@ -44,7 +58,7 @@
>
>  /* for unix */
>  #ifndef WINAPI
> -#define WINAPI
> + #define WINAPI
>  #endif
>
>  /*
> @@ -59,15 +73,10 @@
>  #define NSG(v) (request_context->v)
>
>  /*
> - * Currently, this doesn't work with ZTS.
> + * ZTS needs to be defined for NSAPI to work
>   */
> -#if defined(ZTS)
> - #define IF_ZTS(a) a
> - #define IF_NOT_ZTS(a)
> -#else
> - #define IF_ZTS(a)
> - #define IF_NOT_ZTS(a) a
> - static CRITICAL php_mutex;
> +#if !defined(ZTS)
> + #error "NSAPI module needs ZTS to be defined"
>  #endif
>
>  /*
> @@ -259,6 +268,31 @@
>   return cookie_string;
>  }
>
> +static void
> +sapi_nsapi_register_server_variables(zval *track_vars_array ELS_DC SLS_DC
PLS_DC)
> +{
> + nsapi_request_context *rc = (nsapi_request_context *)SG(server_context);
> + size_t i;
> + char *value = NULL;
> + char buf[128];
> +
> + *buf = 0;
> + for (i = 0; i < nsapi_reqpb_size; i++) {
> + if ((value = pblock_findval(nsapi_reqpb[i].nsapi_eq, rc->rq->reqpb)) ==
NULL) {
> + value = buf;
> + }
> + php_register_variable( (char *)nsapi_reqpb[i].env_var, value,
track_vars_array ELS_CC PLS_CC );
> + }
> +
> + /*
> + * Special PHP_SELF variable.
> + */
> + value = pblock_findval( "uri", rc->rq->reqpb );
> + if( value != NULL ) {
> + php_register_variable( "PHP_SELF", value, track_vars_array ELS_CC
PLS_CC );
> + }
> +}
> +
>  static sapi_module_struct sapi_module = {
>   "NSAPI", /* name */
>
> @@ -282,7 +316,7 @@
>   sapi_nsapi_read_post, /* read POST data */
>   sapi_nsapi_read_cookies, /* read Cookies */
>
> - NULL, /* register server variables */
> + sapi_nsapi_register_server_variables, /* register server variables */
>   NULL, /* Log message */
>
>   NULL, /* Block interruptions */
> @@ -391,7 +425,7 @@
>   if (uri != NULL)
>   path_translated = request_translate_uri(uri, NSG(sn));
>
> -#if 0
> +#if defined(NSAPI_DEBUG)
>   log_error(LOG_INFORM, "nsapi_request_ctor", NSG(sn), NSG(rq),
>   "query_string = %s, "
>   "uri = %s, "
> @@ -445,7 +479,7 @@
>   file_handle.filename = SG(request_info).path_translated;
>   file_handle.free_filename = 0;
>
> -#if 0
> +#if defined(NSAPI_DEBUG)
>   log_error(LOG_INFORM, "nsapi_module_main", NSG(sn), NSG(rq),
>   "Parsing [%s]", SG(request_info).path_translated);
>  #endif
> @@ -468,32 +502,20 @@
>   if (sapi_module.shutdown) {
>   sapi_module.shutdown(&sapi_module);
>   }
> - IF_ZTS(
> - tsrm_shutdown();
> - )
> + tsrm_shutdown();
>  }
>
>  int WINAPI
>  php4_init(pblock *pb, Session *sn, Request *rq)
>  {
> - PLS_FETCH();
> + php_core_globals *core_globals;
>
> - /*
> - * TSRM has not been tested.
> - */
> - IF_ZTS(
> - tsrm_startup(1, 1, 0);
> - )
> + tsrm_startup(1, 1, 0);
> + core_globals = ts_resource(core_globals_id);
>
>   sapi_startup(&sapi_module);
>   sapi_module.startup(&sapi_module);
>
> - PG(expose_php) = 0;
> -
> - IF_NOT_ZTS(
> - php_mutex = crit_init();
> - )
> -
>   log_error(LOG_INFORM, "php4_init", sn, rq, "Initialized PHP Module\n");
>   return REQ_PROCEED;
>  }
> @@ -511,28 +533,11 @@
>   request_context->sn = sn;
>   request_context->rq = rq;
>
> - /*
> - * Single thread the execution, if ZTS is not enabled. Need to
> - * understand the behavior of Netscape server when the client
> - * cancels a request when it is in progress. This could cause
> - * a deadlock if the thread handling the specific client is not
> - * cancelled because the php_mutex will likely remain locked
> - * until the request that was cancelled completes. The behavior
> - * is also going to be platform specific.
> - */
> - IF_NOT_ZTS(
> - crit_enter(php_mutex);
> - )
> -
>   SG(server_context) = request_context;
>
>   nsapi_request_ctor(NSLS_C SLS_CC);
>   retval = nsapi_module_main(NSLS_C SLS_CC);
>   nsapi_request_dtor(NSLS_C SLS_CC);
> -
> - IF_NOT_ZTS(
> - crit_exit(php_mutex);
> - )
>
>   free(request_context);
>
>
>
>
> --
> PHP 4.0 Beta Mailing List <http://www.php.net/version4/>
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> To contact the list administrators, e-mail: [email protected]
>