2016-12-26 125 views
2

当我运行make run.byte时,出现此错误ocsigenserver: ocsigen:main: Fatal - You are not allowed to use port 80.。我试过sudo make run.byte,但sudo不知道opam或ocsigenserver。我试图在Makefile.options中使用wwwuser,但我无法使其工作。 酒厂生成的自述文件没有提供太多信息,也找不到任何网上信息。ocsigenserver:您不允许使用端口80

make test.byte工作得很好。

有什么想法吗?

编辑: 看起来它与eliom/ocaml没有任何关系,非root用户无法在Ubuntu上低于1024的端口上运行任何操作。但我仍然不明白为什么酿酒厂建议我可以做到这一点,如果我的用户是我的,我不认为这是有史以来的任何工作方式。 我也不明白我该如何运行sudo make run.byte,opam安装在我的目录下,sudo找不到ocsigenserver。 我可以通过以root身份运行所有东西来实现它,但是我每次运行一个opam命令作为根,我会得到you shouldn't use opam as root警告。我不认为这是我应该运行它的方式。有些事不对。

+1

通常人们不会在特权端口上运行其应用程序,但相反,他们在端口80或443上运行'nginx'(或其他一些web服务器),并相应地代理到应用程序端口。 – 599644

+0

为什么不只是'sudo ./run.byte'? – Stargateur

回答

3

随着eliom的早期版本(eliom.5.0.0) - 我还没有使用新鲜的6.0.0版本 - 你必须先安装eliom应用:

须藤使安装

然后,你必须杀死侦听80/tcp端口的进程(例如:sudo netstat -tulpn 80 | grep :80将有助于识别侦听该端口的进程 - 很可能是apache2或lighthttpd)。

然后,运行可执行文件:

须藤PATH = $ PATH OCAMLPATH = $ OCAMLPATH LD_LIBRARY_PATH = $ LD_LIBRARY_PATH 使run.byte

这是写在创建README eliom-distillery - 但请注意在之前设置您的env变量:

OCAMLPATH is the location of ocaml used in your env (in my env :~/.opam/4.02.3/bin). 
LD_LIBRARY_PATH : .opam/4.02.3/lib/stublibs (otherwise dllssl_threads_stubs is not found) 
+0

我试过了,它不起作用,因为我不知道我必须先为自己设置这两个变量。梅西皮埃尔。 –