• django 部署到 apache


    安装完django之后,每次都需要通过命令来启动启动开发服务器。虽然调试和测试方便,但只能在本地运行,并且不能承受许多用户同时使用的负载。所以需要将Django部署到生产级的服务器,这里选择apache。

    参考链接

      http://www.cnblogs.com/fengzheng/p/3619406.html

      http://www.jianshu.com/p/b40a4a12fff1

      http://www.ziqiangxuetang.com/django/django-deploy.html

      http://blog.chinaunix.net/uid-20940095-id-4408225.html

    1. ubuntu安装apache

      sudo apt-get install apache2

    2. 测试apache

    打开浏览器输入,127.0.0.1

    3. 建立Python与Apache的链接
    sudo apt-get install libapache2-mod-wsgi      #Python2
    
    sudo apt-get install libapache2-mod-wsgi-py3  #Python3
    
    4. 创建django工程

    cd /var/www/

    sudo django-admin.py startproject mysite

    5. 测试django工程

    cd mysite

    采用8000端口

    sudo python manage.py runserver 8000

    浏览器测试

    6. 更改端口

    sudo vi /etc/apache2/ports.conf

    添加:

    NamevirtualHost *:8888
    Listen 8888
    

    表示VirtualHost *:8888的虚拟主机监听8888端口

    7. 添加网站配置文件

    sudo vi /etc/apache2/sites-available/mysite.conf

    <VirtualHost *:8888>      
        DocumentRoot /var/www/mysite/mysite      
        <Directory /var/www/mysite/mysite>          
            Order allow,deny          
            Allow from all      
        </Directory>      
      
    WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
    </VirtualHost>  
    

    8. 更改django工程

    sudo vi /var/www/mysite/mysite/wsgi.py

    添加

    import sys
    sys.path.append("/var/www/mysite/")
    

    9. 配置生效

    9.1

      sudo a2ensite mysite.conf

    有时候需要不使能配置。

      sudo a2dissite mysite.conf

    9.2 apache服务重启

      sudo service apache2 restart

      sudo service apache2 reload

    出现错误;

    restarting web server apache2                                         [fail] 
     * The apache2 configtest failed.
    Output of config test was:
    AH00526: Syntax error on line 8 of /etc/apache2/sites-enabled/mysite.conf:
    Invalid command 'WSGIScriptAlias', perhaps misspelled or defined by a module not included in the server configuration
    Action 'configtest' failed.
    The Apache error log may have more information.
    tony@T:/etc/apache2/sites-available$ sudo a2enmod wsgi
    ERROR: Module wsgi does not exist!
    

    解决方法:

    sudo apt-get purge libapache2-mod-wsgi
    
    sudo apt-get install libapache2-mod-wsgi
    
    10. 登录测试

    127.0.0.1:8888

    11. 创建app测试

    cd /var/www/mysite/

    python manage.py startapp blog

    sudo vi blog/views

    from django.shortcuts import render
    
    from django.http import HttpResponse
    
    # Create your views here.
    def index(request):
        return HttpResponse("hello world")
    

    sudo vi mysite/urls.py

    from django.conf.urls import url
    from django.contrib import admin 
    
    from blog import views
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^$', views.index),
    ]
    

    访问结果。

    Tony Liu

    2016-10-19, Shenzhen

  • 相关阅读:
    OSX 10.8+下开启Web 共享 的方法
    OSX 10.8+下开启Web 共享 的方法
    OSX 10.8+下开启Web 共享 的方法
    ★如何解释特修斯之船问题?
    ★如何解释特修斯之船问题?
    ★如何解释特修斯之船问题?
    JS中event.keyCode用法及keyCode对照表
    JS中event.keyCode用法及keyCode对照表
    JS中event.keyCode用法及keyCode对照表
    用webgl打造自己的3D迷宫游戏
  • 原文地址:https://www.cnblogs.com/helloworldtoyou/p/5978977.html
Copyright © 2020-2023  润新知