summaryrefslogtreecommitdiff
path: root/sapi/nsapi/nsapi-readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sapi/nsapi/nsapi-readme.txt')
-rw-r--r--sapi/nsapi/nsapi-readme.txt154
1 files changed, 154 insertions, 0 deletions
diff --git a/sapi/nsapi/nsapi-readme.txt b/sapi/nsapi/nsapi-readme.txt
new file mode 100644
index 0000000..54980bf
--- /dev/null
+++ b/sapi/nsapi/nsapi-readme.txt
@@ -0,0 +1,154 @@
+Configuration of your Netscape/iPlanet/Sun Webserver for PHP5
+-----------------------------------------------------------------
+
+These instructions are targetted at Netscape Enterprise Web Server and
+SUN/Netscape Alliance iPlanet Web Server and the new Sun Java System Webserver.
+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/iPlanet/Sun config files are located in:
+
+ <path-to-server>/https-servername/config
+
+
+Add the following line to mime.types (you can do that by the administration server):
+
+ type=magnus-internal/x-httpd-php exts=php
+
+
+Place the following two lines after mime.types init in
+<path-to-server>/https-servername/config/obj.conf (for servers < 6) or
+for iPlanet/Sun Webserver 6.0 and above however at the end of the
+<path-to-server>/https-servername/config/magnus.conf file:
+
+ Init fn="load-modules" funcs="php5_init,php5_execute,php5_auth_trans" shlib="/path/to/phplibrary"
+ Init fn=php5_init errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
+
+The "shlib" will vary depending on your OS:
+
+ Unix: "<path-to-server>/bin/libphp5.so".
+ Windows: "c:/path/to/php5/php5nsapi.dll"
+
+
+In obj.conf (for virtual server classes [Sun 6.0+] in their vserver.obj.conf):
+
+ <Object name="default">
+ .
+ .
+ .
+ # NOTE this next line should happen after all 'ObjectType' and before
+ # all 'AddLog' lines
+ # You can modify some entries in php.ini request specific by adding it to the Service
+ # directive, e.g. doc_root="/path"
+ # For boolean ini-keys please use 0/1 as value, NOT "On","Off",... (this will not work
+ # correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"
+
+ Service fn="php5_execute" type="magnus-internal/x-httpd-php" [inikey=value ...]
+ .
+ .
+ .
+ </Object>
+
+This is only needed if you want to configure a directory that only consists of
+PHP scripts (same like a cgi-bin directory):
+
+ <Object name="x-httpd-php">
+ ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
+ Service fn="php5_execute" [inikey=value ...]
+ </Object>
+
+After that you can configure a directory in the Administration server and assign it
+the style "x-httpd-php". All files in it will get executed as PHP. This is nice to
+hide PHP usage by renaming files to .html
+
+Note: The stacksize that PHP uses depends on the configuration of the webserver. If you get
+crashes with very large PHP scripts, it is recommended to raise it with the Admin Server
+(in the section "MAGNUS EDITOR").
+
+
+Authentication configuration
+----------------------------
+
+PHP authentication cannot be used with any other authentication. ALL
+AUTHENTICATION IS PASSED TO YOUR PHP SCRIPT. To configure PHP
+Authentication for the entire server, add the following line:
+
+ <Object name="default">
+ AuthTrans fn=php5_auth_trans
+ .
+ .
+ .
+ .
+ </Object>
+
+
+To use PHP Authentication on a single directory, add the following:
+
+ <Object ppath="d:\path\to\authenticated\dir\*">
+ AuthTrans fn=php5_auth_trans
+ </Object>
+
+
+Special use for error pages or self-made directory listings
+-----------------------------------------------------------
+
+You can use PHP to generate the error pages for "404 Not Found"
+or similar. Add the following line to the object in obj.conf for
+every error page you want to overwrite:
+
+ Error fn="php5_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
+
+where XXX ist the HTTP error code. Please delete any other Error
+directives which could interfere with yours.
+If you want to place a page for all errors that could exist, leave
+the "code" parameter out. Your script can get the HTTP status code
+with $_SERVER['ERROR_TYPE'].
+
+Another posibility is to generate self-made directory listings.
+Just generate a PHP script which displays a directory listing and
+replace the corresponding default Service line for
+type="magnus-internal/directory" in obj.conf with the following:
+
+ Service fn="php5_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
+
+For both error and directory listing pages the original URI and
+translated URI are in the variables $_SERVER['PATH_INFO'] and
+$_SERVER['PATH_TRANSLATED'].
+
+
+Note about nsapi_virtual() and subrequests
+------------------------------------------
+
+The NSAPI module now supports the nsapi_virtual() function (alias: virtual())
+to make subrequests on the webserver and insert the result in the webpage.
+The problem is, that this function uses some undocumented features from
+the NSAPI library.
+
+Under Unix this is not a problem, because the module automatically looks
+for the needed functions and uses them if available. If not, nsapi_virtual()
+is disabled.
+
+Under Windows limitations in the DLL handling need the use of a automatic
+detection of the most recent ns-httpdXX.dll file. This is tested for servers
+till version 6.1. If a newer version of the Sun server is used, the detection
+fails and nsapi_virtual() is disabled.
+
+If this is the case, try the following:
+Add the following parameter to php5_init in magnus.conf:
+
+ Init fn=php5_init ... server_lib="ns-httpdXX.dll"
+
+where XX is the correct DLL version number. To get it, look in the server-root
+for the correct DLL name. The DLL with the biggest filesize is the right one.
+
+But be warned: SUPPORT FOR nsapi_virtual() IS EXPERIMENTAL !!!
+
+
+$Id$