r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[CGI] web server issues

eFishAnt
5-Jun-2005
[198]
I would like to be able to look at exactly what the browser submits, 
so I can compare that to what I read in.  There must be some way 
to catch what the browser is sending (or maybe I just have to look 
with ethereal at the packets)
Sunanda
5-Jun-2005
[199]
Stick a proxy in the middle and check the data stream?
eFishAnt
5-Jun-2005
[200]
aha, that is interesting...one more level of program to run simultaneously, 
but I hadn't thought of doing that.
Sunanda
5-Jun-2005
[201]
To see what REBOL receives, just:
   read-io system/ports/input buffer  
Though that may already have been too massaged for your purposes.
MikeL
5-Jun-2005
[202]
Steve, If it is a small number of fields, you can change the html 
submit action from a 'Post to a 'Get then you will see the fields 
in the URL when submitted.   Just take a copy of the HTML page if 
it is not yours and look for the Action word in the Form to change 
then run it yourself.
Volker
5-Jun-2005
[203x4]
(AFAIK:) The browser submits what read-cgi reads. Post means: give 
script all data in stdin (system/ports/input). Thats for lots of 
data, when you post something. Get means, give data in url. Thats 
for getting data, the query is only short (and typable in urlbar). 
So read-cgi write that in a file and read it in an editor.
Andreas script does the same (thanks for link sunanda ;) 

You find there a 'read-post-data, thats read-cgi with another name. 
and that is used in 'decode-multipart-form-data.
A second source of information are the environment-vars passed by 
the server. They are in system/options/cgi.  'decode-multipart-form 
needs system/options/cgi/content-type. There youself can look what 
the datas are too. if it is "multipart/form-data", use 'decode-multipart-form. 
i don't know the other types, just send a script a form and dump 
it.
Steve, now i read your question again, you are writing a complete 
web-server? Why not looking at one available? Patch %webserv.r to 
probe a bit. It also splits the stuff into system/options/cgi, so 
you can study how to do that. Only problem is with post-data, its 
system/ports/input works a bit different to a real webserver. You 
need to look in /content-length and use a copy/part instead of carls 
loop. and sometimes to set the right port-modes by hand IIRC.
eFishAnt
5-Jun-2005
[207x3]
you mean Cal's loop, right, Volker?
I have looked through that some, and I had read the comments in here 
earlier.
I was able to see some packets in ethereal (as a comms guy, I always 
dig through the communications messages to understand what happens, 
so starting to narrow that down.
Chris
1-Jul-2005
[210]
Anyone know a good resource on CHMOD and web folder permissions? 
 Covering eg. what world-executable rights on a folder allows?
Tomc
1-Jul-2005
[211x2]
it allows the directory to be entered/traversed by people who are 
not the owner  of the dir or in the group the directory belongs in
that is a directory may be "readable" but you still need to be able 
to open it to read it
Gabriele
1-Jul-2005
[213x3]
if a dir is readable but not "executable", you can list its contents 
but not access files in it.
if x but not r you can access files in it but not list its contents
if both, you can access files in it and list its contents.
eFishAnt
3-Jul-2005
[216]
any good imagemap examples  in REBOL?
Anton
4-Jul-2005
[217x2]
for what purpose ?
view layout [b: box 200x100 navy image help.gif feel [engage: func 
[face action event][if find [over down] action [b/text: mold pick 
face/image event/offset show b]]]]
eFishAnt
4-Jul-2005
[219]
aha, I meant CGI/HTML imagemap, rather than native View
Anton
4-Jul-2005
[220]
ah ok.. sorry
Carlos
4-Jul-2005
[221]
I ´d like to have a CGI script to filter my emails at server. My 
ISP uses Cpanel that gives the possibility of use this to send emails 
to file:  |/home/user/cgi-bin/myfilter.cgi. The thing all I get is 
the whole content of each email appended to the CGI script. Anyone 
could help me?
François
10-Jul-2005
[222]
I found a critical bug: when rebol is configured to work as cgi engine 
with SELinux (Security Enhanced Linux), it generates a Segmentation 
Fault. I uses Fedora Core 3 with SELinux to secure the httpd daemon. 
For now, if you want to use rebol as a cgi engine, you must disable 
SELinux. See RAMBO Ticket #-376
François
22-Jul-2005
[223x3]
Hi, I have some trouble to configure apache to use fastcgi with Rebol/Cmd.
The documentation on rebol.com is really not clear and/or complete. 
Has anyone been successfull withj fastcgi?
I am using apache 2 with module fastcgi
François
24-Jul-2005
[226x2]
Hello, I finally get FastCGI with rebol/cmd with Lite Speed Web Server, 
but not with Apache.
Anyway, it works, but I still have a problem: in system/options/cgi, 
both 'path-info and 'path-translated are set to none, which prevents 
Magic! to wrks properly as it can not find the requested file (usually 
a *.rhtml) file. In normal CGI, it works well. Is this a bug? In 
that case, I will put it into rambo. Note that I have configure FastCGI 
in compatibility mode.
François
25-Jul-2005
[228x3]
It looks like the problem does not come from the past-translated, 
but from the 'request-method: with CGI, the values are "GET" or "POST", 
but with FastCGI, the values are "GET^@^@^@^@" or "POST^@^@^@". But 
with lighttpd, no problem. So to make FastCGI rebol scripts work 
with LiteSpeed, we have to update the exemple http://www.rebol.com/docs/words/wread-io.html
as:
read-cgi: func [
        "Read CGI form data from GET or POST."
        /local data buf
    ][

        if found? find/any system/options/cgi/request-method "POST*" [
            data: make string! 1020
            buffer: make string! 16380

            while [positive? read-io system/ports/input buffer 16380][
                append data buffer
                clear buffer
            ]
            return data
        ]

        if found? find/any system/options/cgi/request-method "GET*" [
            return system/options/cgi/query-string
        ]
        test-data ; if in test mode
    ]
LiteSpeed and lighttpd are both amazingly easy to install and configure 
and works fine with Rebol/Cmd in FastCGI (both in compatibility and 
external modes). Furthermore, those web servers are much faster and 
reponsive than Apache 2.0 (2 to 6 times faster!!)
Sunanda
25-Jul-2005
[231]
Nice research and summary -- It'd be a good idea to drop that change 
request to RAMBO. That way, it won't get lost
http://www.rebol.net/cgi-bin/rambo.r
François
25-Jul-2005
[232x9]
Done. I put this as a new issue : http://www.rebol.net/cgi-bin/rambo.r?id=-392&
Reviewed RAMBO Ticket #3862
Well, looks like there is a problem with system/options/cgi
With Apache 2.x (normal CGI), we have: make object! [ 
	server-software: "Apache/2.0.54 (Fedora)" 
	server-name: "localhost" 
	gateway-interface: "CGI/1.1" 
	server-protocol: "HTTP/1.1" 
	server-port: "80" 
	request-method: "GET" 
	path-info: "/sample01.rhtml" 
	path-translated: "/var/www/html/sample01.rhtml" 
	script-name: "/cgi-bin/magic.cgi" 
	query-string: "" 
	remote-host: none 
	remote-addr: "127.0.0.1" 
	auth-type: none 
	remote-user: none 
	remote-ident: none 
	Content-Type: none 
	content-length: none 
	other-headers: [
		"HTTP_HOST" "localhost" 

  "HTTP_USER_AGENT" {Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) 
  Gecko/20050720 Fedora/1.0.6-1.1.fc4 Firefox/1.0.6} 

  "HTTP_ACCEPT" {text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5} 
		"HTTP_ACCEPT_LANGUAGE" "en-us,en;q=0.5" 
		"HTTP_ACCEPT_ENCODING" "gzip,deflate" 
		"HTTP_ACCEPT_CHARSET" "ISO-8859-1,utf-8;q=0.7,*;q=0.7" 
		"HTTP_KEEP_ALIVE" "300" 
		"HTTP_CONNECTION" "keep-alive" 
		"HTTP_COOKIE" "PHPSESSID=7f84fd7766f23e1462fed550ecbbfda4"
	] 
]
With LiteServer and lighttpd (normal CCI and FastCGI) i have: 
make object! [
	...
	path-info: "" 
	path-translated: none 
	script-name: "/sample01.rhtml"
	...
]
And with lighttpd: 
make object! [
	...
	path-info: none 
	path-translated: none 
	script-name: "/sample01.rhtml"
	...
]
With lighttpd and LiteServer, both path-info and path-translated 
are missing, while 'script-name is the name of the originator html 
file instead of the name of the cgi script (magic.cgi).
So, the question is: is that a bug with rebol?
Rambo ticket submitted
François
6-Aug-2005
[241]
Can anyone help me to configure apache 2.0.x and rebol for FastCGI 
under Windows XP?
Pekr
6-Aug-2005
[242x3]
yes, although I did it long time ago ....
You should note, that Rebol fastCGI is incomplete (=crippled!), and 
so you can run FastCGI in External mode only, and I regard it being 
a BIG limitation. Pity DocKimbel did not release his FastCGI for 
Uniserve yet ....
I will try to find my config .conf and send it to you by email ...
François
6-Aug-2005
[245]
Hi Pekr, Rebol/Cmd works fine with lighttpd and LiteSpeed Web Servers. 
I configure succesfully those web servers to work with rebol/cmd 
as static server (i did not try as external server but this sould 
work too). But I did not succeed with Apache!
Pekr
6-Aug-2005
[246x2]
Static is not good, I want dynamic ones ...
I do not remember, what "static" means, but imo only External mode 
works with Windows ...