mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Update gf-server instructions and configuration.
This commit is contained in:
@@ -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 $^
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user