将Django项目部署到网站子文件夹

时间:2018-11-02 12:16:34

标签: mysql django apache production mode

我有一个网站(例如www.example.com)和一个Web服务器,我的目标是将Django项目(已经在我的家用电脑上完成)上载到示例网站的子文件夹中。也就是说,我希望我的django项目可以在www.example.com/mynewdjango/上运行。 Web服务器运行Apache和MySql。我的项目也使用Mysql。 是否有分步指南来做到这一点? 谢谢!

2 个答案:

答案 0 :(得分:0)

您可以从以下位置开始:

This step by step Guide

Official Django documentation

答案 1 :(得分:0)

为了更加具体,我将提供更多信息:

我的官方网站是www.serres.gr(joomla网站)。我已经将Django项目上传到joomla网站所在的官方Web服务器上。 Python,pip,django和所有依赖项都可以正常工作。

joomla网站位于路径/ var / www / html /中。 Apache配置文件000-default.conf是:

    <VirtualHost *:80>
        ServerName www.serres.gr
        DocumentRoot "/var/www/html"
        <Directory "/var/www/html">
                DirectoryIndex index.php
                AllowOverride All
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.serres.gr
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Django项目位于/ var / www / diplomatiki路径中。

我的第一个选择是使jango项目在url ekloges.mysite.gr上运行。另一个选项是使其在URL www.mysite.gr/ekloges/上运行。 我在站点可用文件夹中创建了django.conf文件,如下所示:

<VirtualHost *:80>
 ServerName ekloges.serres.gr
 DocumentRoot /var/www/diplomatiki
 WSGIScriptAlias /ekloges /var/www/diplomatiki/diplomatiki/wsgi.py

 # adjust the following line to match your Python path
 WSGIDaemonProcess ekloges.serres.gr  processes=2 threads=15 display-name=%{GROUP} python-home=/var/www/diplomatiki/venv/lib/python3.5
 WSGIProcessGroup ekloges.serres.gr

 <directory /var/www/diplomatiki>
   AllowOverride all
   Require all granted
   Options FollowSymlinks
 </directory>

 Alias /static/ /var/www/diplomatiki/static/

 <Directory /var/www/diplomatiki/static>
  Require all granted
 </Directory>
</VirtualHost>

最后,我的wsgi.py文件是:

import os
import time
import traceback
import signal
import sys

from django.core.wsgi import get_wsgi_application

sys.path.append('/var/www/diplomatiki')
sys.path.append('/var/www/diplomatiki/diplomatiki')

# adjust the Python version in the line below as needed
sys.path.append('/var/www/diplomatiki/venv/lib/python3.5/site-packages')

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "diplomatiki.settings")

try:
    application = get_wsgi_application()
except Exception:
    # Error loading applications
    if 'mod_wsgi' in sys.modules:
        traceback.print_exc()

我有2个问题:

1)我应该对上面的文件进行哪些更改,以便django项目可以按照我对选项1的说明进行加载,并且应该对选项2进行哪些更改(目前这两个选项均无效)

2)如果我最终决定在ekloges.serres.gr(第一个选项)加载django项目,我想我应该从我的互联网提供商处请求为ekloges.serres.gr添加dns记录,对吗? / p>