最近買収したLinodeサーバーにDjangoをデプロイするのはこれが初めてです。誰かが私のデプロイメントを調べて、厄介な問題を修正し、間違っているかどうかをアドバイスしてくれるかどうか知りたいです。
ディレクトリ構造
home\
-public\
-example.com\
-public\
-.htaccess
-index.html
-log\
-application\
-mysite\
-mysite\
-manage.py
-static\
-myapp\
-logs\
Djangoのデプロイメント構造はどうですか?
間違ったURLの命名
ドメイン「example.com」で「myapp」というDjangoアプリケーションをホストしました。Django Webサイトの指示に従って、アプリのurls.pyが「/myapp」で始まるようにしました。これにより、アプリのドメインが「example.com/myapp」になりました。
example.comが私が書いたDjangoアプリになるように設定するにはどうすればよいですか?example.comに移動すると、example.com/myappではなくアプリが読み込まれます。
さらに奇妙なのは、example.comが私のindex.htmlファイルをロードすると思っていたのに、代わりにDjangoのURLマッピングを見つけようとすることです...
Djangoログファイルの書き込み権限
マシンに「syncdb」または「collectstatic」のいずれかにSSHで接続するたびに、ロギングモジュールはsettings.pyファイルに名前を付けたログファイルを作成します。私はファイルの所有者であり、apache2(www-data)はファイルに書き込めないため、これは私にとって問題を引き起こします。Apacheサーバーを再起動する前に、コマンドごとにログファイルを手動で削除しなければならないのは面倒です。
これが私の/etc/apache2/sites-available/example.comファイルです:
# domain: example.com
# public: /home/setheron/public/example.com/
WSGIPythonPath /home/setheron/public/example.com/applications/mysite:/home/setheron/env/lib/python2.7/site-packages
<VirtualHost *:80>
# Admin email, Server Name (domain name), and any aliases
ServerAdmin setheron@setheron.com
ServerName www.example.example.com
ServerAlias example.com
WSGIScriptAlias / /home/setheron/public/example.com/applications/mysite/mysite/wsgi.py
Alias /static/ /home/setheron/public/example.com/applications/mysite/static/
<Directory /home/setheron/public/example.com/applications/mysite/static/>
Order deny,allow
Allow from all
</Directory>
<Directory /home/setheron/public/example.com/applications/mysite/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php
DocumentRoot /home/setheron/public/example.com/public
# Log file locations
LogLevel warn
ErrorLog /home/setheron/public/example.com/log/error.log
CustomLog /home/setheron/public/example.com/log/access.log combined
</VirtualHost>