V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
crazybubble
V2EX  ›  问与答

在没有root permission的share hosting上有没有办法部署django?

  •  
  •   crazybubble · 2013-02-20 17:36:31 +08:00 · 3174 次点击
    这是一个创建于 4076 天前的主题,其中的信息可能已经有所发展或是发生改变。
    server是学校的cpanel空间,并且有一个域名绑定在这个空间,现在通过编译源文件已经安装好python 2.7, virtualenv

    server上有apache,但是没有权限更改httpd.conf。我所有的权限只限定在/home/user/下,对于这个directory之外的dir我就没有任何权限。

    我google了相关的很多办法,并尝试了https://docs.djangoproject.com/en/1.4/howto/deployment/fastcgi/#running-django-on-a-shared-hosting-provider-with-apache
    这个方法,按照上面的步骤修改了.htaccess 和 mysite.fcgi

    然后在terminal里尝试 ./mysite.fcgi返回给我了
    WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI!
    WSGIServer: missing FastCGI param SERVER_NAME required by WSGI!
    WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
    WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!
    Status: 200 OK
    Content-Type: text/html; charset=utf-8
    这里status200 我想应该是有响应的吧。可是在浏览器里试的话就404了。。。不知道这是什么原因造成的呢

    希望有类似部署经验的人来给我出出主意,我这是第一次部署,过程中一定也有很多纰漏


    除此之外,我这种情况还有没有其他部署方案?
    6 条回复    1970-01-01 08:00:00 +08:00
    zhangxiao
        1
    zhangxiao  
       2013-02-20 17:50:23 +08:00   ❤️ 1
    /home/user之外没有任何权限的话,你基本上是无法使用系统的apache了。可以自己起一个http然后监听在>1024的端口上。比如编译个nginx装在/home/user/opt/nginx。只不过你的网站无法用默认80或者443访问了...
    crazybubble
        2
    crazybubble  
    OP
       2013-02-20 18:08:20 +08:00
    @zhangxiao 谢谢!这个方法听起来不错,能不能再解释的具体一点?无法用默认的80的话有什么影响和隐患?用户那端在访问网站的时候有没有影响?
    zhangxiao
        3
    zhangxiao  
       2013-02-20 20:17:14 +08:00   ❤️ 1
    @crazybubble 安装部分就是自己编译个nginx,安装目录指定在你有权限的地方。然后更改配置,让它监听比如8080,最后启动。这样你就有一个监听在8080端口的http服务了。

    影响就是大部分用户默认肯定不会考虑端口甚至不知道端口的存在,他们认为输入域名回车就可以打开网站了。如果这个server 80没有http服务,用户会看到无法显示页面,他们也许能反应过来,是不是url输错了,一部分人可以想起来要加端口,一部分人则认为网站挂了。

    如果你的网站不指望用户手动输入url来访问,不指望用户记住url来传播,就没太大影响。你可以把url贴在希望用户看到的地方,他们通过点击进入。
    crazybubble
        4
    crazybubble  
    OP
       2013-02-21 05:26:52 +08:00
    @zhangxiao 好的 谢谢
    est
        5
    est  
       2013-02-21 09:20:13 +08:00
    用 bjoern 吧。屌丝必备神器!不能编译的话就编译好了binary复制到服务器上去。

    这货就是把一个WSGi 接口的东西变现成http 1.1服务器,直接开个本地端口让apache反向代理就行了。不用搞mod_wsgi 这么麻烦的东西。
    crazybubble
        6
    crazybubble  
    OP
       2013-02-21 13:12:17 +08:00
    @est 关键是没有权限设置apache
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1096 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:17 · PVG 07:17 · LAX 16:17 · JFK 19:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.