From: <ca...@gm...> - 2006-11-08 04:16:20
|
How do you guys normally handle the equivalent of ScriptAlias directives in Apache? Can this be done with appmods and call_cgi perhaps? --=20 Cheers, L=E1szl=F3 |
From: <ca...@gm...> - 2006-11-08 20:51:53
|
Okay, I'll try a more specific question. Has anyone gotten GNU Mailman (list manager) to run under Yaws? On my Debian system, MM installed the cgi progs in /usr/lib/cgi-bin/mailman/. In this directory are a number of compiled C executables, with names like 'listinfo', 'subscribe', 'admin', etc. They don't have suffixes like ".cgi" and never will because the code expects them to be named as they are. How do I tell Yaws that these files are to be executed as cgi? On 11/7/06, Count L=E1szl=F3 de Alm=E1sy <ca...@gm...> wrote: > How do you guys normally handle the equivalent of ScriptAlias > directives in Apache? Can this be done with appmods and call_cgi > perhaps? --=20 Cheers, L=E1szl=F3 |
From: Carsten S. <ca...@co...> - 2006-11-08 22:50:28
|
Count L=C3=A1szl=C3=B3 de Alm=C3=A1sy schrieb: > Okay, I'll try a more specific question. Has anyone gotten GNU > Mailman (list manager) to run under Yaws? On my Debian system, MM > installed the cgi progs in /usr/lib/cgi-bin/mailman/. In this > directory are a number of compiled C executables, with names like > 'listinfo', 'subscribe', 'admin', etc. They don't have suffixes like > ".cgi" and never will because the code expects them to be named as > they are. There is a configuration option for Mailman to have extensions on these files. Works for me. > How do I tell Yaws that these files are to be executed as > cgi? >=20 > On 11/7/06, Count L=C3=A1szl=C3=B3 de Alm=C3=A1sy <ca...@gm...> w= rote: >> How do you guys normally handle the equivalent of ScriptAlias >> directives in Apache? Can this be done with appmods and call_cgi >> perhaps? Something like that could also be cooked up. I even have a situation in which I call cgis that live at a completely differnent place and I postprocess their output. hth Carsten --=20 Carsten Schultz (2:38, 33:47) http://carsten.codimi.de/ PGP/GPG key on the pgp.net key servers, fingerprint on my home page. |
From: <ca...@gm...> - 2006-11-09 04:15:53
|
On 11/8/06, Carsten Schultz <ca...@co...> wrote: > There is a configuration option for Mailman to have extensions on these > files. Works for me. Yes, except that users expect the URLs to not have extensions on them. They have subscription notices saved with paths that I'd rather not break. Of course I could do extensions and then rewrites from the old URLs, but why should I have to? > Something like that could also be cooked up. I even have a situation in > which I call cgis that live at a completely differnent place and I > postprocess their output. Keep in mind that I'm still very new to Yaws, but it seems like there should be an appmods solution to mimic what ScriptAlias does. Like in my case, I might have in my yaws.conf: appmods =3D </lists , scriptalias> And then scriptalias.erl would possibly be able to mark the files in /usr/lib/cgi-bin/mailman/* as cgi programs. Then when a users requests http://site.com/lists/listinfo, things are handled correctly. I do see mention of a "call_cgi" in the yaws_api man page: call_cgi(Arg, Scriptfilename) Calls an executable CGI script, given by its full path. Used= to make `.yaws' wrappers for CGI programs. This function usua= lly returns streamcontent. Though it's not clear to me how exactly this can/should be used. --=20 Cheers, L=E1szl=F3 |
From: Carsten S. <ca...@co...> - 2006-11-09 06:48:20
Attachments:
cgi-bin.erl
|
Count L=C3=A1szl=C3=B3 de Alm=C3=A1sy schrieb: > On 11/8/06, Carsten Schultz <ca...@co...> wrote: >=20 >> There is a configuration option for Mailman to have extensions on thes= e >> files. Works for me. >=20 > Yes, except that users expect the URLs to not have extensions on them. > They have subscription notices saved with paths that I'd rather not > break. Of course I could do extensions and then rewrites from the old > URLs, but why should I have to? Everyone has their own priorities :-) >> Something like that could also be cooked up. I even have a situation = in >> which I call cgis that live at a completely differnent place and I >> postprocess their output. >=20 > Keep in mind that I'm still very new to Yaws, but it seems like there > should be an appmods solution to mimic what ScriptAlias does. I attach an old appmod that I have found on my hard drive. Iirc, I used = it even before cgi support was fully integrated into yaws. I do not=20 know if it works with a current version of yaws, you will have to use it = as an example. It implements a directory in which everything with a certain extension=20 (which can be empty) is called as a cgi script. It is configured via=20 variables in yaws.conf, these are `cgidir' and `cgiext'. > Like in > my case, I might have in my yaws.conf: >=20 > appmods =3D </lists , scriptalias> >=20 > And then scriptalias.erl would possibly be able to mark the files in > /usr/lib/cgi-bin/mailman/* as cgi programs. Then when a users > requests http://site.com/lists/listinfo, things are handled correctly. > I do see mention of a "call_cgi" in the yaws_api man page: >=20 > call_cgi(Arg, Scriptfilename) > Calls an executable CGI script, given by its full path. = Used to > make `.yaws' wrappers for CGI programs. This function = usually > returns streamcontent. >=20 > Though it's not clear to me how exactly this can/should be used. Is the example sufficiently clear? Carsten --=20 Carsten Schultz (2:38, 33:47) http://carsten.codimi.de/ PGP/GPG key on the pgp.net key servers, fingerprint on my home page. |
From: <ca...@gm...> - 2006-11-11 06:30:39
|
On 11/8/06, Carsten Schultz <ca...@co...> wrote: > I attach an old appmod that I have found on my hard drive. Iirc, I used > it even before cgi support was fully integrated into yaws. I do not > know if it works with a current version of yaws, you will have to use it > as an example. > > It implements a directory in which everything with a certain extension > (which can be empty) is called as a cgi script. It is configured via > variables in yaws.conf, these are `cgidir' and `cgiext'. [...] > Is the example sufficiently clear? Not completely no, but that's only becauase I'm stilll learning Erlang. Before I saw this message I had written a simple module to attempt to handle Mailman's cgi-bin programs. In yaws.conf: appmods =3D </lists, mailman> Which I expect to handle URLs like: http://site.com/lists/listinfo http://site.com/lists/listinfo/foobar-dev http://site.com/lists/options/foobar-dev/calmasy%40gmail.com etc.. Only the first part of the path after 'lists' is the cgi-bin executable. In the above cases, 'listinfo' is /usr/lib/cgi-bin/mailman/listinfo and 'options' is /usr/lib/cgi-bin/mailman/options. The parts of the URL following those are just arguments to the CGI I guess (sorry, not that familiar with how CGI works). So I wrote a simple mailman.erl: -module(mailman). -include("../include/yaws_api.hrl"). -compile(export_all). out(Arg) -> Req =3D Arg#arg.req, {abs_path, Path} =3D Req#http_request.path, Script =3D Arg#arg.appmoddata, yaws_cgi:call_cgi(Arg, "/usr/lib/cgi-bin/mailman/" ++ Script). This correctly handles the first example URL above (lists/listinfo) but not the others. I guess I'm not understanding how to pass arguments to the CGI ('foobar-dev' and 'foobar-dev/calmasy%40gmail.com' in the above examples), because doesn't call_cgi just accept Arg and the full path to the executable? How do I pass on the remainer of the URL? --=20 Cheers, L=E1szl=F3 |
From: Carsten S. <ca...@co...> - 2006-11-11 07:49:08
|
Hi! Count L=C3=A1szl=C3=B3 de Alm=C3=A1sy schrieb: > On 11/8/06, Carsten Schultz <ca...@co...> wrote: >> I attach an old appmod that I have found on my hard drive. Iirc, I us= ed >> it even before cgi support was fully integrated into yaws. I do not >> know if it works with a current version of yaws, you will have to use = it >> as an example. >> >> It implements a directory in which everything with a certain extension= >> (which can be empty) is called as a cgi script. It is configured via >> variables in yaws.conf, these are `cgidir' and `cgiext'. >=20 > [...] >=20 >> Is the example sufficiently clear? >=20 > Not completely no, but that's only becauase I'm stilll learning > Erlang. Before I saw this message I had written a simple module to > attempt to handle Mailman's cgi-bin programs. >=20 > In yaws.conf: >=20 > appmods =3D </lists, mailman> >=20 > Which I expect to handle URLs like: >=20 > http://site.com/lists/listinfo > http://site.com/lists/listinfo/foobar-dev > http://site.com/lists/options/foobar-dev/calmasy%40gmail.com > etc.. >=20 > Only the first part of the path after 'lists' is the cgi-bin > executable. In the above cases, 'listinfo' is > /usr/lib/cgi-bin/mailman/listinfo and 'options' is > /usr/lib/cgi-bin/mailman/options. The parts of the URL following > those are just arguments to the CGI I guess (sorry, not that familiar > with how CGI works). Ah, I know the feeling of learning several things at once :-) The term for this argument is `pathinfo'. > So I wrote a simple mailman.erl: >=20 > -module(mailman). > -include("../include/yaws_api.hrl"). > -compile(export_all). >=20 > out(Arg) -> > Req =3D Arg#arg.req, > {abs_path, Path} =3D Req#http_request.path, > Script =3D Arg#arg.appmoddata, > yaws_cgi:call_cgi(Arg, "/usr/lib/cgi-bin/mailman/" ++ Script). >=20 > This correctly handles the first example URL above (lists/listinfo) > but not the others. I guess I'm not understanding how to pass > arguments to the CGI ('foobar-dev' and > 'foobar-dev/calmasy%40gmail.com' in the above examples), because > doesn't call_cgi just accept Arg and the full path to the executable? > How do I pass on the remainer of the URL? >=20 If I am reading the source correctly, you want to call eg yaws_cgi:call_cgi(Arg, undefined, "/usr/lib/cgi-bin/mailman/listinfo", "/foobar-dev") Since the easy example worked, this will hopefully also work, although I am not sure if all variables will be set correctly. Best, Carsten --=20 Carsten Schultz (2:38, 33:47) http://carsten.codimi.de/ PGP/GPG key on the pgp.net key servers, fingerprint on my home page. |
From: <ca...@gm...> - 2006-11-11 21:29:50
|
On 11/11/06, Carsten Schultz <ca...@co...> wrote: > If I am reading the source correctly, you want to call eg > > yaws_cgi:call_cgi(Arg, > undefined, > "/usr/lib/cgi-bin/mailman/listinfo", > "/foobar-dev") > > Since the easy example worked, this will hopefully also work, although I > am not sure if all variables will be set correctly. Thanks for your help. I rewrote mailman.erl as follows and it seems to work! What does 'undefined' mean btw? -include("../include/yaws_api.hrl"). -compile(export_all). out(Arg) -> Req =3D Arg#arg.req, {abs_path, Path} =3D Req#http_request.path, {Cgi, Cgiarg} =3D splitpath(Path), case {Cgi, Cgiarg} of {nocgi, nocgiarg} -> {redirect_local, "/lists/listinfo"}; {Cgi, nocgiarg} -> yaws_cgi:call_cgi(Arg, undefined, "/usr/lib/cgi-bin/mailman/" ++ Cgi); {Cgi, Cgiarg} -> yaws_cgi:call_cgi(Arg, undefined, "/usr/lib/cgi-bin/mailman/" ++ Cgi, "/" ++ Cgiarg) end. splitpath(Path) -> match(regexp:split(Path, "\/")). match({ok, [[], _]}) -> {nocgi, nocgiarg}; match({ok, [[], _, []]}) -> {nocgi, nocgiarg}; match({ok, [[], _, Cgi]}) -> {Cgi, nocgiarg}; match({ok, [[], _, Cgi, []]}) -> {Cgi, nocgiarg}; match({ok, [[], _, Cgi, Cgiarg]}) -> {Cgi, Cgiarg}; match({ok, [[], _, Cgi, Cgiarg, []]}) -> {Cgi, Cgiarg}; match({ok, [[], _, Cgi|Cgiarg]}) -> {Cgi, filename:join(Cgiarg)}. --=20 Cheers, L=E1szl=F3 |
From: Michael M. <ya...@au...> - 2006-11-08 22:12:04
|
Have you tried symlinks ? ~M On Wed, Nov 08, 2006 at 01:50:45PM -0700, Count L=E1szl=F3 de Alm=E1sy wr= ote: > Okay, I'll try a more specific question. Has anyone gotten GNU > Mailman (list manager) to run under Yaws? On my Debian system, MM > installed the cgi progs in /usr/lib/cgi-bin/mailman/. In this > directory are a number of compiled C executables, with names like > 'listinfo', 'subscribe', 'admin', etc. They don't have suffixes like > ".cgi" and never will because the code expects them to be named as > they are. How do I tell Yaws that these files are to be executed as > cgi? >=20 > On 11/7/06, Count L=E1szl=F3 de Alm=E1sy <ca...@gm...> wrote: > > How do you guys normally handle the equivalent of ScriptAlias > > directives in Apache? Can this be done with appmods and call_cgi > > perhaps? >=20 > --=20 > Cheers, L=E1szl=F3 >=20 > -----------------------------------------------------------------------= -- > Using Tomcat but need to do more? Need to support web services, securit= y? > Get stuff done quickly with pre-integrated technology to make your job = easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geron= imo > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat= =3D121642 > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list >=20 > !DSPAM:48,455243a8251561383717970! >=20 >=20 |
From: <ca...@gm...> - 2006-11-08 22:33:40
|
What kind of symlinks? I did try ln -s /usr/lib/cgi-bin/mailman /www/root/lists, so that I could access http://site.com/lists/foo, but still foo is not processed as a cgi. Is there no way in Yaws to say "this file is a CGI, so execute it", even if it doesn't end in .cgi, ,php, or .yaws? On 11/8/06, Michael McDaniel <ya...@au...> wrote: > Have you tried symlinks ? > > ~M > > On Wed, Nov 08, 2006 at 01:50:45PM -0700, Count L=E1szl=F3 de Alm=E1sy wr= ote: > > Okay, I'll try a more specific question. Has anyone gotten GNU > > Mailman (list manager) to run under Yaws? On my Debian system, MM > > installed the cgi progs in /usr/lib/cgi-bin/mailman/. In this > > directory are a number of compiled C executables, with names like > > 'listinfo', 'subscribe', 'admin', etc. They don't have suffixes like > > ".cgi" and never will because the code expects them to be named as > > they are. How do I tell Yaws that these files are to be executed as > > cgi? > > > > On 11/7/06, Count L=E1szl=F3 de Alm=E1sy <ca...@gm...> wrote: > > > How do you guys normally handle the equivalent of ScriptAlias > > > directives in Apache? Can this be done with appmods and call_cgi > > > perhaps? > > > > -- > > Cheers, L=E1szl=F3 > > > > -----------------------------------------------------------------------= -- > > Using Tomcat but need to do more? Need to support web services, securit= y? > > Get stuff done quickly with pre-integrated technology to make your job = easier > > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geron= imo > > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat= =3D121642 > > _______________________________________________ > > Erlyaws-list mailing list > > Erl...@li... > > https://lists.sourceforge.net/lists/listinfo/erlyaws-list > > > > !DSPAM:48,455243a8251561383717970! > > > > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job ea= sier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronim= o > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat= =3D121642 > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list > --=20 Cheers, L=E1szl=F3 |
From: Michael M. <er...@au...> - 2006-11-08 23:02:22
|
On Wed, Nov 08, 2006 at 03:32:32PM -0700, Count L=E1szl=F3 de Alm=E1sy wr= ote: > What kind of symlinks? I did try ln -s /usr/lib/cgi-bin/mailman > /www/root/lists, so that I could access http://site.com/lists/foo, but > still foo is not processed as a cgi. >=20 > Is there no way in Yaws to say "this file is a CGI, so execute it", > even if it doesn't end in .cgi, ,php, or .yaws? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This I do not know. Apologies for my lack of clarity before. Have you tried making a symlink with the the target name ending in .cgi ? Perhaps yaws will then treat it as an executable cgi. For example: /bin/ln -s /path/to/some_exec /path/to/yaws/cgi-bin/some_exec.cgi ^^^^^^^^^^^ or whatever the cgi directory is ~M >=20 > On 11/8/06, Michael McDaniel <ya...@au...> wrote: > > Have you tried symlinks ? > > > > ~M > > > > On Wed, Nov 08, 2006 at 01:50:45PM -0700, Count L=E1szl=F3 de Alm=E1s= y wrote: > > > Okay, I'll try a more specific question. Has anyone gotten GNU > > > Mailman (list manager) to run under Yaws? On my Debian system, MM > > > installed the cgi progs in /usr/lib/cgi-bin/mailman/. In this > > > directory are a number of compiled C executables, with names like > > > 'listinfo', 'subscribe', 'admin', etc. They don't have suffixes li= ke > > > ".cgi" and never will because the code expects them to be named as > > > they are. How do I tell Yaws that these files are to be executed a= s > > > cgi? > > > > > > On 11/7/06, Count L=E1szl=F3 de Alm=E1sy <ca...@gm...> wrote: > > > > How do you guys normally handle the equivalent of ScriptAlias > > > > directives in Apache? Can this be done with appmods and call_cgi > > > > perhaps? > > > > > > -- > > > Cheers, L=E1szl=F3 > > > > > > -------------------------------------------------------------------= ------ > > > Using Tomcat but need to do more? Need to support web services, sec= urity? > > > Get stuff done quickly with pre-integrated technology to make your = job easier > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache G= eronimo > > > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057= &dat=3D121642 > > > _______________________________________________ > > > Erlyaws-list mailing list > > > Erl...@li... > > > https://lists.sourceforge.net/lists/listinfo/erlyaws-list > > > > > >=20 > > > > > > > > > > ---------------------------------------------------------------------= ---- > > Using Tomcat but need to do more? Need to support web services, secur= ity? > > Get stuff done quickly with pre-integrated technology to make your jo= b easier > > Download IBM WebSphere Application Server v.1.0.1 based on Apache Ger= onimo > > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&d= at=3D121642 > > _______________________________________________ > > Erlyaws-list mailing list > > Erl...@li... > > https://lists.sourceforge.net/lists/listinfo/erlyaws-list > > >=20 >=20 > --=20 > Cheers, L=E1szl=F3 >=20 > -----------------------------------------------------------------------= -- > Using Tomcat but need to do more? Need to support web services, securit= y? > Get stuff done quickly with pre-integrated technology to make your job = easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geron= imo > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat= =3D121642 > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list >=20 > !DSPAM:48,45525b4a251562086818778! >=20 >=20 --=20 Michael McDaniel Portland, Oregon, USA http://autosys.us +1 503 283 5284 |
From: <ca...@gm...> - 2006-11-09 04:07:35
|
On 11/8/06, Michael McDaniel <er...@au...> wrote: > Have you tried making a symlink with the the target name ending > in .cgi ? Perhaps yaws will then treat it as an executable cgi. That's sort of a kludgey hack though, isn't it? I'd rather not resort to that unless it's a last option. --=20 Cheers, L=E1szl=F3 |
From: <ca...@gm...> - 2006-11-09 21:17:49
|
Veddy interesting -- http://www.erlang.org/doc/doc-5.5.2/lib/inets-4.7.6/doc/html/mod_alias.html --=20 Cheers, L=E1szl=F3 |
From: Christian S <ch...@gm...> - 2006-11-09 21:34:33
|
Tm90aWNlIHRoYXQgaXQgaXMgbm90IHlhd3MuIEl0IGlzIGFub3RoZXIgd2ViIHNlcnZlciB0aGF0 IGNvbWVzIHdpdGggZXJsYW5nL290cC4KCk9uIDExLzkvMDYsIENvdW50IEzDoXN6bMOzIGRlIEFs bcOhc3kgPGNhbG1hc3lAZ21haWwuY29tPiB3cm90ZToKPiBWZWRkeSBpbnRlcmVzdGluZyAtLQo+ Cj4gaHR0cDovL3d3dy5lcmxhbmcub3JnL2RvYy9kb2MtNS41LjIvbGliL2luZXRzLTQuNy42L2Rv Yy9odG1sL21vZF9hbGlhcy5odG1sCg== |
From: <ca...@gm...> - 2006-11-10 08:02:35
|
Yeah, I see that, but perhaps Yaws could borrow this idea/code in order to support alias/scriptalias. On 11/9/06, Christian S <ch...@gm...> wrote: > Notice that it is not yaws. It is another web server that comes with erla= ng/otp. > > On 11/9/06, Count L=E1szl=F3 de Alm=E1sy <ca...@gm...> wrote: > > Veddy interesting -- > > > > http://www.erlang.org/doc/doc-5.5.2/lib/inets-4.7.6/doc/html/mod_alias.= html > --=20 Cheers, L=E1szl=F3 |
From: Claes W. <kl...@ta...> - 2006-11-12 01:12:02
|
Count L=E1szl=F3 de Alm=E1sy wrote: > On 11/11/06, Carsten Schultz <ca...@co...> wrote: >> If I am reading the source correctly, you want to call eg >> >> yaws_cgi:call_cgi(Arg, >> undefined, >> "/usr/lib/cgi-bin/mailman/listinfo", >> "/foobar-dev") >> We (not me ...) should compile a wiki page at e.g http://yaws.hyber.org/wiki/showPage.yaws?node=3Dhome which describes how to best run various php/cgi kits under yaws I know I posted (a while ago) tricks to run trac under yaws /klacke |
From: Claes W. <kl...@ta...> - 2006-11-12 01:48:03
|
Claes Wikstrom wrote: > Count L=E1szl=F3 de Alm=E1sy wrote: >> On 11/11/06, Carsten Schultz <ca...@co...> wrote: >>> If I am reading the source correctly, you want to call eg >>> >>> yaws_cgi:call_cgi(Arg, >>> undefined, >>> "/usr/lib/cgi-bin/mailman/listinfo", >>> "/foobar-dev") >>> >=20 > We (not me ...) should compile a wiki page at e.g I added what I wrote about trac to http://yaws.hyber.org/wiki/showPage.yaws?node=3DYawsAndTrac So once you have mailman running, please add a page to the wiki /klacke |
From: <ca...@gm...> - 2006-11-12 08:17:43
|
On 11/11/06, Claes Wikstrom <kl...@ta...> wrote: > We (not me ...) should compile a wiki page at e.g > > http://yaws.hyber.org/wiki/showPage.yaws?node=3Dhome > > which describes how to best run various php/cgi kits under yaws > I know I posted (a while ago) tricks to run trac under yaws I still think that ScriptAlias and Alias should be added as features to Yaws. The one commonality with almost all cgi kits is that they require one or more Alias/ScriptAlias directives. Case in point, the next package I need to tackle after Mailman is MoinMoin, which also assumes several ScriptAlias and Alias directives. Instead of having to write new appmods and/or arg_rewrite_mods for every package, it would be much easier to just be able to specify scriptalias and alias paths inside <server> blocks of yaws.conf. --=20 Cheers, L=E1szl=F3 |