Это мой первый раз, когда я развертываю Django на недавно приобретенном сервере Linode, и мне любопытно, может ли кто-нибудь просмотреть мое развертывание, помочь мне исправить некоторые проблемы и посоветовать мне, делаю ли я что-то неправильно.
Структура каталогов
home\
-public\
-example.com\
-public\
-.htaccess
-index.html
-log\
-application\
-mysite\
-mysite\
-manage.py
-static\
-myapp\
-logs\
Как это для структуры развертывания для Django?
Неверное название URL
Я разместил приложение Django под названием «myapp» в своем домене «example.com». Следуя инструкциям на веб-сайте Django, я сделал так, что urls.py для приложения должен начинаться с «/myapp». Это привело к тому, что домен для приложения стал «example.com/myapp».
Как я могу настроить его так, чтобы example.com был просто приложением Django, которое я написал? Я хотел бы просто перейти на example.com и загрузить мое приложение вместо example.com/myapp.
Еще более странно то, что я думал, что example.com загрузит мой файл index.html, однако вместо этого он попытается найти сопоставление URL-адреса для Django...
Разрешения на запись файла журнала Django
Всякий раз, когда я подключаюсь к своей машине по SSH с помощью «syncdb» или «collectstatic», модуль ведения журнала создает файл журнала, который я назвал в своем файле 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 [email protected]
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>