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

World: r3wp

[!Cheyenne] Discussions about the Cheyenne Web Server

Dockimbel
12-Jul-2007
[1958]
Cheyenne new version 0.9.16 is ready. The new FastCGI multiplexed 
support took me some time to debug, but the resulting PHP interfacing 
is now really stable. I just need to update the RSP API doc and run 
a few tests, so the download link will be published here in a couple 
of hours.
Pekr
12-Jul-2007
[1959]
heh, will try once again on my Vista :-)
Dockimbel
12-Jul-2007
[1960x5]
Cheyenne release v0.9.16 beta. Download at http://softinnov.org/tmp/cheyenne-r0916.zip

Changelog :

v0.9.16 - 12/07/2007
	
	o Localization framework added to RSP. API overview :
	
		- #[text] in static parts of RSP pages will be translated.
		

  - new function: say "data" : translate a string! value in the current
		  language.
		  
		- session's new 'lang variable can set the current language.
		
		- new config file options to control default language and 
		  locales resources folder.
		

 o Decode-cgi rewrote from scratch. Cleaner and 2-3 times faster than 
 before.
	

 o RSP request params decoding rewrote. Now GET and POST parameters 
 are unified
	  in request/content.
	  
	o BugFix for encapping %misc/mime-types file.
	

 o File upload support redesigned. Now big files (user defined threshold) 
 are

   directly written to disk in temporary files, instead of being held 
   in memory.

   The temporary files are deleted once the request is completed. So 
   now

   Cheyenne supports files upload up to 2Gb (R2 port! limitation).
	  

 o CGI execution extended to any scripts (not just REBOL). If found, 
 the

   shebang line (#!) is honored (on all platforms). Several perl scripts
	  added in %www/ folder as demo.
	  

 o Module's 'on-started event now fired only once, when multiple HTTPd 
 instances
	  are listening on more than one port.
	  

 o New module : mod-extapp for launching and managing external applications.

   Only the start and shutdown actions are currently supported. Load 
   balancing
	  will be included in future.
	
	o FastCGI protocol reliability improved and some bugs fixed.
	
	o RSP-API documentation updated.
To enable the PHP support: edit the %httpd.cfg config file, uncomment 
the indicated section and change the path to the php-cgi binary, 
that's all. The new mod-extapp will launch and kill PHP for you.
For RSP users, watch out the new way GET and POST parameters are 
unified, it may break some of your scripts (the ones using POSTed 
form data).
perl demo CGI are in %www/perl/
On windows platforms, you'll get the infamous DOS window flashing 
when executing an external CGI ! It's just a matter of 1 flag to 
correctly set in 'call C source code, if you're really annoyed by 
that, ask RT to fix it asap (for 2.7.6 that would be good)! ;-) I 
may reimplement completely call command in REBOL, but it would be 
a big waste of time and energy...it should be a 10 minutes fix for 
RT. Addind a time limit to 'call would be a good thing too, it would 
also avoid me the reimplementation of 'call to add such feature....
Pekr
12-Jul-2007
[1965]
so cool ...
Dockimbel
12-Jul-2007
[1966]
In theory, Cheyenne should be able to connect and pass requests to 
any FastCGI application, but it was only tested with PHP.
Pekr
12-Jul-2007
[1967]
any chance of getting:

AddHandler rebol-cgi-dispatch .html
Action rebol-cgi-dispatch /cgi-bin/rebol-cgi-dispatch.cgi

to work already? :-)
Dockimbel
12-Jul-2007
[1968]
No yet, I want a better API and config options than Apache which 
is a real mess ! So, I have a prototype of how it should be a AddHandler 
option should be added, I need to mature that a little more before 
implementing in the next release. Maybe I'll write an article on 
Cheyenne's blog about that to have some feedback....
Pekr
12-Jul-2007
[1969]
would be good ...
Dockimbel
12-Jul-2007
[1970x3]
Maybe something like:

process .html by "/cgi-bin/rebol-cgi-dispatch.cgi"
spec in pseudo code: 


process [any [extension | URL | folder | filename]] by [handler | 
URL-with-target]
BTW, I didn't have time to test this new release on linux, especially 
the external application launcher...Will test that tomorrow.
Pekr
12-Jul-2007
[1973x2]
Doc - does app need to be encapped to hide in Systray?
Doc - above could be sufficient ....
Dockimbel
12-Jul-2007
[1975x2]
To hide REBOL consoles, just start REBOL with -w option.
or encap Cheyenne ;-)
Pekr
12-Jul-2007
[1977x5]
Doc - maybe we can fix that black dos window? I do remember some 
fix which hacked rebol exe, but dunno what it was related to ....
Doc - from config - is php supposed to be in ..\php dir?
Can I have more extern apps? E.g. more php versions?
Firefox offers me download of test.php, instead of executing it? 
Maybe a mime-type incorrectly set?
it should not offer me to download the script, or it is security 
issue imo :-)
Dockimbel
12-Jul-2007
[1982x4]
Check if your php-cgi.exe process exists
PHP can be anywhere you want, just set the correct (relative or absolute) 
path in the 'command directive
You can have more than one php-cgi process, but the pooling support 
is not yet implemented. For PHP, to control the number of threads 
(Windows) or processes (UNIX), just set the PHP_FCGI_CHILDREN parameter 
to the number you want. If you don't know what this is about, just 
leave the default value (1). Even with that value, it can supports 
dozens of concurrent requests (thanks to the fastcgi multiplexing 
support).
Hacking REBOL exe : that's prohibited by the REBOL license. ;-)
Terry
13-Jul-2007
[1986x4]
I recall fixing the DOS box by using a winapi libary call instead.. 
I'll see if I can dig it up.
shell32b: load/library %shell32.dll
  shell32c: "ShellExecuteA"
 
shell32R: make routine! [
hwnd [integer!]
    lpOperation [string!]
    lpFile [string!]
    lParameters [string!]
	lpDirectory [string!]
	nShowCmd [integer!]
] shell32b shell32c

Opener: func [inpu] [shell32R 0 "open" inpu "" "" 1];
Opens full path, url etc. without DOS box


Opener "docs/notes.txt"   or   Opener "http://kommonwealth.com/tb"
  ; cheap plug
Opener as a function name? What was I thinking?
Dockimbel
13-Jul-2007
[1990x2]
For executing external applications as CGI, you need to handle stdin, 
stdout and stderr, that's something that can't be done with ShellExecute(), 
you need to use CreateProcess() for that. I've partially done it 
in my async-call library, but it lacks a few features and it only 
support Windows.
Btw, REBOL provides a native wrapper to ShellExecute, see the 'run 
function.
ICarii
13-Jul-2007
[1992x2]
** Script Error: Feature not available in this REBOL - not in REBOL/View 
2.7.5.3.1 18-Mar-2007
although it does list the run command
Dockimbel
13-Jul-2007
[1994]
You need a license key to unlock that feature.
ICarii
13-Jul-2007
[1995x2]
command only?
because with the sdk key it was giving me that error
Dockimbel
13-Jul-2007
[1997]
It can't make it work with any binary from the SDK, it looks like 
a bug to me.
ICarii
13-Jul-2007
[1998]
;-)
Dockimbel
13-Jul-2007
[1999]
Or it might be unlocked for IOS /link binaries.
Graham
13-Jul-2007
[2000x2]
it's been rambo'd ages ago
only works on IOS
Dockimbel
13-Jul-2007
[2002]
There are some days when I envy developers using open-sourced programming 
languages...
Graham
13-Jul-2007
[2003]
http://www.rebol.net/cgi-bin/rambo.r?id=3447&
I mentioned this in 2004
Dockimbel
13-Jul-2007
[2004x2]
I've summarized the new way to configure the PHP interface in Cheyenne 
here : http://softinnov.org/cheyenne/blog.cgi?view=0011
Pekr, the new PHP interface can now work with relative paths, so 
you can now put Cheyenne and PHP in your USB stick and spread it 
everywhere ;-). Did you solve your issue regarding php process not 
responding on Vista ?
Gabriele
14-Jul-2007
[2006]
Doc: remember the Detective version of async-call also works on linux, 
freebsd, solaris, and mac os x. :) i guess we should make a sync 
version of that for normal human beings to use ;)
Dockimbel
14-Jul-2007
[2007]
Right Gabriele, I forgot that one !