World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
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 ! |
older newer | first last |