ocsigenserver:不允许使用端口80

时间:2016-12-26 07:09:03

标签: ocaml ocsigen

当我运行from django.contrib.auth.models import User def update_db_data(request): try: user_obj = User.objects.get( id = 2 ) user_obj.user_name = "test" user_obj.save() print("sucess") html = "<html><body>sucess</body></html>" except: print("fail") html = "<html><body>fail</body></html>" return HttpResponse(html) 时,我收到此错误make run.byte。我试过了ocsigenserver: ocsigen:main: Fatal - You are not allowed to use port 80.,但是sudo并不了解opam或ocsigenserver。我尝试在Makefile.options中使用sudo make run.byte,但我无法使其正常工作。 酿酒厂生成的自述文件并没有提供太多信息,我也无法在网上找到任何信息。

wwwuser效果很好。

请问好吗?

编辑: 看起来它与eliom / ocaml无关,非root用户只能在Ubuntu上的低于1024的端口上运行任何东西。但我仍然不明白为什么酿酒厂建议我能做到这一点,如果我的用户是我,我不会认为这有任何方式可行。 我也不明白我应该如何运行make test.byte,opam安装在我的〜目录中,sudo找不到sudo make run.byte。 我可以通过以root身份运行所有内容来使其工作,但无论何时我以root身份运行ocsigenserver命令,我都会收到opam警告。我不认为这是我应该运行它的方式。有些事情不对。

1 个答案:

答案 0 :(得分:3)

以前发布的eliom(eliom.5.0.0) - 我还没有使用新的6.0.0版本 - 你必须首先安装你的eliom应用程序:

  

sudo make install

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

然后,运行您的可执行文件:

  

sudo PATH = $ PATH OCAMLPATH = $ OCAMLPATH LD_LIBRARY_PATH = $ LD_LIBRARY_PATH   make run.byte

这是使用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)