Annotation of embedaddon/php/sapi/nsapi/nsapi-readme.txt, revision 1.1.1.2

1.1       misho       1: Configuration of your Netscape/iPlanet/Sun Webserver for PHP5
                      2: -----------------------------------------------------------------
                      3: 
                      4: These instructions are targetted at Netscape Enterprise Web Server and
                      5: SUN/Netscape Alliance iPlanet Web Server and the new Sun Java System Webserver.
                      6: On other web servers your milage may vary.
                      7: 
                      8: Firstly you may need to add some paths to the LD_LIBRARY_PATH
                      9: environment for Netscape to find all the shared libs. This is best done
                     10: in the start script for your Netscape server.  Windows users can
                     11: probably skip this step. The start script is located in:
                     12: 
                     13:     <path-to-netscape-server>/https-servername/start
                     14: 
                     15: 
                     16: Netscape/iPlanet/Sun config files are located in:
                     17: 
                     18:     <path-to-server>/https-servername/config
                     19: 
                     20: 
                     21: Add the following line to mime.types (you can do that by the administration server):
                     22: 
                     23:     type=magnus-internal/x-httpd-php   exts=php
                     24: 
                     25: 
                     26: Place the following two lines after mime.types init in
                     27: <path-to-server>/https-servername/config/obj.conf (for servers < 6) or
                     28: for iPlanet/Sun Webserver 6.0 and above however at the end of the
                     29: <path-to-server>/https-servername/config/magnus.conf file:
                     30: 
                     31:     Init fn="load-modules" funcs="php5_init,php5_execute,php5_auth_trans" shlib="/path/to/phplibrary"
                     32:     Init fn=php5_init errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
                     33: 
                     34: The "shlib" will vary depending on your OS:
                     35: 
                     36:        Unix: "<path-to-server>/bin/libphp5.so".
                     37:        Windows: "c:/path/to/php5/php5nsapi.dll"
                     38: 
                     39: 
                     40: In obj.conf (for virtual server classes [Sun 6.0+] in their vserver.obj.conf):
                     41: 
                     42:     <Object name="default">
                     43:     .
                     44:     .
                     45:     .
                     46:     # NOTE this next line should happen after all 'ObjectType' and before
                     47:     # all 'AddLog' lines
                     48:     # You can modify some entries in php.ini request specific by adding it to the Service
                     49:     # directive, e.g. doc_root="/path"
                     50:     # For boolean ini-keys please use 0/1 as value, NOT "On","Off",... (this will not work
                     51:     # correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"
                     52: 
                     53:     Service fn="php5_execute" type="magnus-internal/x-httpd-php" [inikey=value ...]
                     54:     .
                     55:     .
                     56:     .
                     57:     </Object>
                     58: 
                     59: This is only needed if you want to configure a directory that only consists of
                     60: PHP scripts (same like a cgi-bin directory):
                     61: 
                     62:     <Object name="x-httpd-php">
                     63:     ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
                     64:     Service fn="php5_execute" [inikey=value ...]
                     65:     </Object>
                     66: 
                     67: After that you can configure a directory in the Administration server and assign it
                     68: the style "x-httpd-php". All files in it will get executed as PHP. This is nice to
                     69: hide PHP usage by renaming files to .html
                     70: 
                     71: Note: The stacksize that PHP uses depends on the configuration of the webserver. If you get
                     72: crashes with very large PHP scripts, it is recommended to raise it with the Admin Server
                     73: (in the section "MAGNUS EDITOR").
                     74: 
                     75: 
                     76: Authentication configuration
                     77: ----------------------------
                     78: 
                     79: PHP authentication cannot be used with any other authentication. ALL
                     80: AUTHENTICATION IS PASSED TO YOUR PHP SCRIPT.  To configure PHP
                     81: Authentication for the entire server, add the following line:
                     82: 
                     83:     <Object name="default">
                     84:     AuthTrans fn=php5_auth_trans
                     85:     .
                     86:     .
                     87:     .
                     88:     .
                     89:     </Object>
                     90: 
                     91: 
                     92: To use PHP Authentication on a single directory, add the following:
                     93: 
                     94:     <Object ppath="d:\path\to\authenticated\dir\*">
                     95:     AuthTrans fn=php5_auth_trans
                     96:     </Object>
                     97: 
                     98: 
                     99: Special use for error pages or self-made directory listings
                    100: -----------------------------------------------------------
                    101: 
                    102: You can use PHP to generate the error pages for "404 Not Found"
                    103: or similar. Add the following line to the object in obj.conf for
                    104: every error page you want to overwrite:
                    105: 
                    106:     Error fn="php5_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
                    107: 
                    108: where XXX ist the HTTP error code. Please delete any other Error
                    109: directives which could interfere with yours.
                    110: If you want to place a page for all errors that could exist, leave
                    111: the "code" parameter out. Your script can get the HTTP status code
                    112: with $_SERVER['ERROR_TYPE'].
                    113: 
                    114: Another posibility is to generate self-made directory listings.
                    115: Just generate a PHP script which displays a directory listing and
                    116: replace the corresponding default Service line for
                    117: type="magnus-internal/directory" in obj.conf with the following:
                    118: 
                    119:     Service fn="php5_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
                    120: 
                    121: For both error and directory listing pages the original URI and
                    122: translated URI are in the variables $_SERVER['PATH_INFO'] and
                    123: $_SERVER['PATH_TRANSLATED'].
                    124: 
                    125: 
                    126: Note about nsapi_virtual() and subrequests
                    127: ------------------------------------------
                    128: 
                    129: The NSAPI module now supports the nsapi_virtual() function (alias: virtual())
                    130: to make subrequests on the webserver and insert the result in the webpage.
                    131: The problem is, that this function uses some undocumented features from
                    132: the NSAPI library.
                    133: 
                    134: Under Unix this is not a problem, because the module automatically looks
                    135: for the needed functions and uses them if available. If not, nsapi_virtual()
                    136: is disabled.
                    137: 
                    138: Under Windows limitations in the DLL handling need the use of a automatic
                    139: detection of the most recent ns-httpdXX.dll file. This is tested for servers
                    140: till version 6.1. If a newer version of the Sun server is used, the detection
                    141: fails and nsapi_virtual() is disabled.
                    142: 
                    143: If this is the case, try the following:
                    144: Add the following parameter to php5_init in magnus.conf:
                    145: 
                    146:     Init fn=php5_init ... server_lib="ns-httpdXX.dll"
                    147:     
                    148: where XX is the correct DLL version number. To get it, look in the server-root
                    149: for the correct DLL name. The DLL with the biggest filesize is the right one.
                    150: 
                    151: But be warned: SUPPORT FOR nsapi_virtual() IS EXPERIMENTAL !!!
                    152: 
                    153: 
1.1.1.2 ! misho     154: $Id$

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>