1

私の django プロジェクトにいくつかのアプリが含まれていると想像してください。サーバー上では、/var/www/ProjectNamedir にあります。私のユーザー名はFooで、サーバーのファイルを編集したいことがあります。次の質問に最適なソリューションはどれですか?

  1. の所有者は/var/www?
  2. の所有者は/var/www/ProjectName?
  3. Apache プロセスの所有者は?
  4. 静的ファイル (css、js) はどこにありますか? 1 つのディレクトリ内のすべてのアプリからのものですか、それとも異なるアプリの異なるディレクトリからのものですか? このディレクトリの所有者は?
  5. メディア ファイル (アップロード ユーザーを含む) はどこにありますか? 1 つのディレクトリ内のすべてのアプリからのものですか、それとも異なるアプリの異なるディレクトリからのものですか? このディレクトリの所有者は?
  6. py および pyc ファイル、アプリのディレクトリの所有者は?

PS。多分プロジェクトは私のホームディレクトリにありますか?

それについていくつかの提案がありますが、もっと経験豊富な人に聞きたいです。

4

2 に答える 2

2
  1. Ubuntu12.04でroot drwxr-xr-x 3 root root 4096 Nov 8 11:59 www

  2. cd /var/www && ls -la所有者に会うために、おそらくルート?

  3. www-data、12.04www-dataのhomesディレクトリは/var/wwwwww-data:x:33:33:www-data:/var/www

  4. プロジェクト内の任意のディレクトリに移動できcollectstaticます。staticの隣にというディレクトリがよくありますmanage.py。所有者はおそらくあなたのdjangoプロジェクトの所有者と同じです。あなたはapacheのためにこのフォルダへの読み取りアクセスを許可する必要があるだけです

  5. mediaアプリごとにメディアを用意するのではなく、一元化されたフォルダーを検討することをお勧めします。静的メディアとメディアの両方で、を使用してすべてをs3にかなり簡単にアップロードできますdjango-storages

  6. 所有者はあなたが望む誰でもかまいません、それはあなたのマシンなので、私は所有者を言うことはできません。ただし、Webサーバーはファイルを実行する必要があると思いpyます。そのため、これを許可するようにアクセス許可を変更できます。

プロジェクトはどこにでも配置できます。Apache仮想ホストでは、wsgiファイルの場所を指定します。あなたのプロジェクトが住まなければならない理由はありません/var/www

于 2013-03-15T14:44:48.137 に答える
1

これが私が使用している構造です。

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_html/wsgi.

chmodテスト運用サーバーですべてが機能するようにするためだけに、Django フォルダー内のすべてを 777 に編集しました。ファイルが直接提供されていなくても、セキュリティリスクが何であるかはわかりません。

于 2013-03-15T15:13:53.400 に答える