当我运行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
警告。我不认为这是我应该运行它的方式。有些事情不对。
答案 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)