[NANOWEB DOCUMENTATION]

NANOWEB, the aEGiS PHP web server

Common Problems
(Occasionally Asked Questions)

Bugs in Nanoweb are often resolved only minutes (!!) after they get reported. There are however not only bugs in Nanoweb, most problems result from misconfiguration or bugs of the PHP scripting language interpreter.
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 php.ini with:
cgi.force_redirect=0
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 or AllowPathInfo 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.



NANOWEB, the aEGiS PHP web server