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>