[Lazarus] EmbWeb: Moving between webapp type caveats

leledumbo leledumbo_cool at yahoo.co.id
Sat Jun 11 18:23:45 CEST 2011


I realize that when I change from embedded server to, for instance, CGI, some
things must be adjusted. For example, I use TRequest.ScriptName to get the
base path of my web. This seems OK for CGI but not for embedded server,
because it's not set there. I even got almost totally different environment
variables set!

CGI:
HTTP_HOST=localhost
HTTP_HOST=localhost
HTTP_CONNECTION=keep-alive
HTTP_REFERER=http://localhost/foj/foj.cgi/problem/browse
HTTP_CACHE_CONTROL=max-age=0
HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like
Gecko) Chrome/12.0.742.91 Safari/534.30
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_ENCODING=gzip,deflate,sdch
HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.8
HTTP_ACCEPT_CHARSET=ISO-8859-1,utf-8;q=0.7,*;q=0.3
PATH=... // cut down for brevity
SystemRoot=C:\WINDOWS
COMSPEC=C:\WINDOWS\system32\cmd.exe
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
WINDIR=C:\WINDOWS
SERVER_SIGNATURE=
SERVER_SOFTWARE=Apache
SERVER_NAME=localhost
SERVER_ADDR=127.0.0.1
SERVER_PORT=80
REMOTE_ADDR=127.0.0.1
DOCUMENT_ROOT=C:/UniServer/www
SERVER_ADMIN=admin at localhost
SCRIPT_FILENAME=C:/UniServer/www/foj/foj.cgi
REMOTE_PORT=2373
GATEWAY_INTERFACE=CGI/1.1
SERVER_PROTOCOL=HTTP/1.1
REQUEST_METHOD=GET
QUERY_STRING=
REQUEST_URI=/foj/foj.cgi/index/home
SCRIPT_NAME=/foj/foj.cgi
PATH_INFO=/index/home

Embedded server:
=::=::\
=::=::\
=C:=C:\UniServer\www\foj
=D:=D:\
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Lele Dumbo\Application Data
CLASSPATH=.
CLIENTNAME=Console
COLUMNS=80
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=LELEDOWS
ComSpec=C:\WINDOWS\system32\cmd.exe
CPLUS_INCLUDE_PATH=C:\gtk+\include;C:\Python26\include;C:\lua\include
C_INCLUDE_PATH=C:\gtk+\include;C:\Python26\include;C:\lua\include;C:\perl\include
EDITOR=C:\SciTE++\SciTE.exe
FP_NO_HOST_CHECK=NO
GOBO=C:\gobo
GRAPHVIZ_DOT=C:\graphviz\bin\dot.exe
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Lele Dumbo
INCLUDE=C:\FASM\INCLUDE
JAVA_HOME=C:\Java
LC_MESSAGES=C
LIBRARY_PATH=C:\gtk+\lib;C:\Python26\libs;C:\lua\lib;C:\perl\lib
LINES=24
LOGONSERVER=\\LELEDOWS
MOSMLLIB=C:\mosml\lib
MOZ_PLUGIN_PATH=C:\Program Files\SumatraPDF\
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=... // cut down for brevity
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 6 Stepping 5, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0605
ProgramFiles=C:\Program Files
QTDIR=C:\qt
RUBYOPT=-rubygems
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\LELEDU~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\LELEDU~1\LOCALS~1\Temp
USERDOMAIN=LELEDOWS
USERNAME=Lele Dumbo
USERPROFILE=C:\Documents and Settings\Lele Dumbo
windir=C:\WINDOWS

The one from embedded server looks like my computer environment, while the
CGI one seems to be set by the underlying web server (Apache in this case).

So, how can I get the base web path (like localhost:12000/executable-name)
in embedded server? I need to do this because links to other parts of the
website must be relative to it.

--
View this message in context: http://free-pascal-lazarus.989080.n3.nabble.com/EmbWeb-Moving-between-webapp-type-caveats-tp3053108p3053108.html
Sent from the Free Pascal - Lazarus mailing list archive at Nabble.com.




More information about the Lazarus mailing list