|problem||why and where?|
|"Security Alert! The PHP CGI cannot be accessed directly."||
Your PHP interpreter was probably compiled using
--enable-force-cgi-redirect. This option is recommended for
the Apache webserver for security reasons.
Nanoweb installations are however less vulnerable to such attacks
and therefor you should disable this paranoia setting in the
or better in the nanoweb.conf using:
AddServerVar = REDIRECT_STATUS 200
|Nanoweb is that slow under Windows!! (Only one person can connect at a time)||
This is because nanoweb must run in the SingleProcessMode
because current PHP.exe versions do not provide a wrapper to the
POSIX fork() system call (which exists as a variant at least for NT).
If you know how to do, you could compile PHP yourself using the
Cygwin GCC to get a fully working version.
Another solution is to run Nanoweb in inetd mode using a binary ineternet superserver. Such a inetd.exe can be retrieved at Cygwin, some Shareware and Commercial implementations are also available and newer NT versions reportedly supply some sort of inetd. The next release of the Winstaller will probably contain a preconfigured one.
|PATH_INFO is empty / not passed to my scripts if the referenced file exists||
This is a PHP bug introduced with 4.3.0. Someone "enhanced" the
CGI-version of the PHP interpreter to "correct" this CGI environment
var. Stupidly Nanoweb handles and sets the PATH_INFO correctly (if
it wasn't disabled with CGIFilterPathInfo
which were necessary for older PHP versions with much more heavy
PATH_INFO related bugs). Btw, Nanoweb is not vulnerable to the
attack that misleaded the PHP authors to damage the CGI version that way.
To prevent PHP from garbaging the CGI environment variables, you must add the directive cgi.fix_pathinfo=0 to your php.ini.
|nanoweb.php does not respond to commandline parameters||See your php.ini and activate "register_argc_argv" as this is defaultly disabled (because commonly not used in PHP webscripts).|
|"FATAL: function 'socket_create' not available, aborting"||Your PHP interpreter does not support all the socket_* functions, which are necessary for nanoweb to operate as server daemon. If you use a distributed (precompiled in a win or linux install package) PHP your lucky: just activate the extension module in the php.ini ("extension=php_sockets.dll). Otherwise you must recompile your interpreter using the --enable-sockets switch to the configure script.|
|Output of .php (.cgi) scripts are empty pages||This usually happens if the CGI interpreter cannot be found, and thus the script won't be "executed" correctly. Check the ParseExt directive in your config files, and change the path name of your script interpreter.|