Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于django的项目结构和DIR所有者来说,有什么好办法?_Django_Apache_Ubuntu - Fatal编程技术网

对于django的项目结构和DIR所有者来说,有什么好办法?

对于django的项目结构和DIR所有者来说,有什么好办法?,django,apache,ubuntu,Django,Apache,Ubuntu,想象一下,我的django项目包含的应用程序很少。在服务器上,它位于/var/www/ProjectName目录。我的用户名是Foo,有时我想编辑服务器的文件。下一个问题的最佳解决方案是什么 /var/www的所有者是谁 /var/www/ProjectName的所有者是谁 什么是apache进程所有者 静态文件(css、js)在哪里?它是来自同一目录中的所有应用程序,还是来自不同应用程序的不同目录?这个目录的所有者是谁 媒体文件(与上载用户一起)的位置?它是来自同一目录中的所有应用程序,还是来

想象一下,我的django项目包含的应用程序很少。在服务器上,它位于
/var/www/ProjectName
目录。我的用户名是Foo,有时我想编辑服务器的文件。下一个问题的最佳解决方案是什么

  • /var/www
    的所有者是谁
  • /var/www/ProjectName
    的所有者是谁
  • 什么是apache进程所有者
  • 静态文件(css、js)在哪里?它是来自同一目录中的所有应用程序,还是来自不同应用程序的不同目录?这个目录的所有者是谁
  • 媒体文件(与上载用户一起)的位置?它是来自同一目录中的所有应用程序,还是来自不同应用程序的不同目录?这个目录的所有者是谁
  • py和pyc文件的所有者是什么,应用程序的目录是什么
  • 另外,项目可能位于我的主目录中

    对此我有一些建议,但我想听听更有经验的人

  • 在ubuntu 12.04上
    root
    drwxr-xr-x 3根根目录4096 11月8日11:59 www

  • cd/var/www&&ls-la
    要查看所有者,可能是root

  • www-data
    ,在12.04
    www-data
    homes目录是
    /var/www
    www-data:x:33:33:www-data:/var/www

  • 您可以
    collectstatic
    到项目中所需的任何目录。我经常在
    manage.py
    旁边有一个名为
    static
    的目录。所有者可能与django项目的所有者相同。对于apache,您只需要允许对此文件夹进行读取访问

  • >P>你可能想考虑一个集中式的<代码>媒体< /代码>文件夹,而不是为每个应用程序提供媒体。对于静态和媒体,您可以使用
    django存储相当轻松地将所有内容上载到s3

  • 所有者可以是你想要的任何人,我不能说所有者,因为它是你的机器。但是,我认为Web服务器将需要执行
    py
    文件,因此您可以更改您的权限以允许这样做


  • 你可以在任何你想要的地方找到这个项目。在apache虚拟主机中,您提供了
    wsgi
    文件的位置。您的项目没有理由必须位于
    /var/www

    以下是我正在使用的结构

    django/
    ├── project_virtualenv                       (virtualenv folder)
    └── versioned                                (folder for things that are versioned)
        ├── devdoc                               (documentation)
        └── py                                   (code)
            └── project                          (django project)
                ├── django_app                   (django app)
                │   
                ├── project                      (project folder)                  
                    ├── files                    
                    │   ├── media                (media, user uploads, etc)
                    │   ├── production_static    (statics for production)
                    │   └── static               (statics for development)
                    └── templates
                        
    
    目录django位于生产服务器上的主目录中,只有
    wsgi.py
    位于公共可用文件夹中(在我的例子中是
    /home/user/public\u html/wsgi


    我已经
    chmod
    将Django文件夹中的所有内容都添加到777,只是为了让所有内容在测试生产服务器上正常工作。不确定有什么安全风险,即使文件不是直接提供的。

    2.有什么好的praktik吗?有人建议使用www数据作为该目录的所有者,但我认为这是个坏主意。6.创建了ww的pyc文件w-数据可能会改变。这正常吗?我有妄想症