Update gf-server instructions and configuration.

This commit is contained in:
bjorn
2008-10-20 12:56:08 +00:00
parent cec2b61af0
commit 9b8f50534c
5 changed files with 33 additions and 26 deletions

View File

@@ -3,15 +3,14 @@ GFCFLAGS = +RTS -K100M -RTS --cpu
.PHONY: pgf.fcgi run
pgf.fcgi:
cabal configure
cabal build
cabal install
cp dist/build/pgf.fcgi/pgf.fcgi .
gwt:
gwt-client/Translate-compile
food.pgf:
gfc --make --name=grammar ../../examples/tutorial/food/Food{Eng,Ita}.gf
gfc --make --name=food ../../examples/tutorial/food/Food{Eng,Ita}.gf
Demo%-parse.pgf: ../../lib/resource/demo/Demo%.gf
gfc $(GFCFLAGS) --make --erasing=on --name=Demo$*-parse $^

View File

@@ -1,49 +1,55 @@
== Requirements ==
- cabal
- cabal-install
* See quick installation instructions at the bottom of
http://hackage.haskell.org/trac/hackage/wiki/CabalInstall
- FastCGI development kit
* MacPorts: sudo port install fcgi
- Haskell packages: fastcgi, json, utf8-string
* cabal install fastcgi json utf8-string
(MacPorts) $ sudo port install fcgi
- GF installed as a Cabal package
* (cd ../.. && cabal install)
* Maybe need to remove "-beta" from the Version field in ../../GF.cabal
$ (cd ../.. && cabal install)
== Building ==
- Build gf.fcgi
$ make
- Build pgf.fcgi. This will use cabal to install the dependencies (cgi, fastcgi, json, utf8-string).
$ make
- Build small example grammar:
$ make food
$ make food.pgf
$ cp food.pgf grammar.pgf
== Running (lighttpd) ==
- Install lighttpd
- MacPorts:
$ sudo port install lighttpd
(MacPorts) $ sudo port install lighttpd
- Run lighttpd:
$ lighttpd -f lighttpd.conf -D
$ make run
== Testing ==
- First test from the command-line, since debugging is harder from the AJAX UI:
$ curl 'http://localhost:41296/gf/translate?input=this+fish&cat=Item&from=FoodEng'
$ curl 'http://localhost:41296/pgf/grammar.pgf/translate?input=this+fish&cat=Item&from=FoodEng'
- Non-GWT AJAX UI:
See http://localhost:41296/simple-client.html
- GWT AJAX UI:
See http://localhost:41296/gwt-client/www/se.chalmers.cs.gf.gwt_translate.Translate/Translate.html
- Go to http://localhost:41296/simple-client.html in your web browser.
== Running (Apache) ==
Note: This is more complicated, and the instructions may not be up to date.
- Make sure that your web server supports FastCGI. For Apache on OS X,
do this:

View File

@@ -1,5 +1,6 @@
var gf = new Object();
var pgf_base_url = "pgf"
var pgf_base_url = "pgf";
var pgf_grammar = "grammar.pgf";
gf.translate = function (input,from,to,cat,callback) {
var args = [];
@@ -28,7 +29,7 @@ gf.callFunction = function (fun, args, callback) {
query += (query == "") ? "?" : "&";
query += i + "=" + encodeURIComponent(args[i]);
}
var url = pgf_base_url + "/" + fun + query;
var url = pgf_base_url + "/" + pgf_grammar +"/" + fun + query;
// FIXME: if same domain, use gf.httpGetText
gf.httpGetJSONP(url, callback);

View File

@@ -43,8 +43,9 @@ fastcgi.server = ( "/pgf" =>
((
"socket" => "/tmp/lighttpd-pgf.socket",
"bin-path" => basedir + "/pgf.fcgi",
"bin-environment" => ("GHCRTS" => "-N2",
"PGF_FILE" => "grammar.pgf"),
# Use 2 OS threads (to be able to use 2 cores).
# Limit heap size to 512 MB.
"bin-environment" => ("GHCRTS" => "-N2 -M512M"),
"min-procs" => 1,
"max-procs" => 1,
"broken-scriptfilename" => "disable",

View File

@@ -73,7 +73,7 @@
<div id="translator">
<form onsubmit="update(); return false;">
<p>
<input type="text" id="inputText" value="determine the sine of 1 ." size="50" />
<input type="text" id="inputText" value="" size="50" />
</p>
<p>
<label>From: <select id="fromLang" onchange="update()"><option value="" selected="selected">Any language</option></select></label>