• apache2.4 +django1.9+python3+ubuntu15.10


    这是我这几天学习部署django的总结,中间出现了不少的问题。特此记录下来,用来复习巩固,同时也希望给想学习的同学一些参考。

    第一步:我在ubuntu上装的是python3。sudo apt-get install python3,这种方法不用设置环境变量。如果机器上python2和python3都有,为了方便可以修改python的默认版本 ,具体命令如下:

    #先备份

    sudo cp /usr/bin/python /usr/bin/python_bak、

    #删除
    sudo rm /usr/bin/python

    #默认设置成python3.4
    sudo ln -s /usr/bin/python3.4 /usr/bin/python.

    在终端输入python,进入python3的

    第二步:2.1下载django1.9 (https://www.djangoproject.com/download/)

    然后解压(tar zxvf 下载的压缩文件名)
    2.2 下载setuptools(https://pypi.python.org/pypi/setuptools),选择ez_setup.py,然后执行该文件,

    chmod +x ez_setup.py,sudo ./ez_setup.py
    4.进入解压之后产生的Django文件夹,安装。

    Django.sudo python setup.py install
    5.检查是否安装完成。

    python

    import django

    django.VERSION

    能够看到版本号即为安装成功。
    此方式为下载源码安装

    安装wsgi 。 sudo apt-get install libapache2-mod-wsgi-py3

    第三步:写一个django测试项目,这个项目很简单,没有用到各种复杂的东西。本人是在主目录下建一个workspace文件夹,然后在这个文件夹下建立项目test1

    项目的绝对路径是/home/zhaoxu/workspace/test1

    #新建一个test项目

    cd /home/zhaoxu/worksapce

    django-admin.py startporject test1

    #新建app ,名为hello

    cd test1

    python manage.py startapp hello

    将app加入到项目的settings中

    sudo vi  /home/zhaoxu/test1/test1/settings.py

    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'learn',
    )
    定义视图函数
    sudo vi /home/zhaoxu/test1/hello/views.py
    添加
    from django.http import HttpResponse

    def home_view(request):
            return HttpResponse('Hello World')

    修改url.py

    sudo vi /home/zhaoxu/test1/test1/url.py

    from hello import views as hello_views
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^$',hello_views.home_view),
    ]
    。至此django简单配置就完成了。如果想要检验自己配置的是否正确,可以先用django自身的web服务器试试。

    cd /home/zhaoxu/workspace/test1

    python manage.py runserver #打开django自带的web服务器

    在浏览器中输入127.0.0.1:8000,如果页面跳转出现Hello World,说明配置是成功的。关闭这个服务器的方法是Ctrl + C

    第四步 安装apache2

    如果机器上装安装apache2.4,我不是采用源码安装的。

    sudo apt-get install apache2

    安装完成后浏览器输入127.0.0.1,弹出网页it works!,安装成功,这是成功的关键一步。如果apache2出现点问题,想要卸载完再装,方法如下:

    sudo apt-get --purge remove apache2,切记如果提示有一些文件没有删除,一定要手动删除(sudo rm -rf 文件路径)

    sduo apt-get autoremove ,这一步如果出错,可以用以下的方法:

    1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名
    2.$ sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
    3.$ sudo apt-get update, apt-get -f install //不用解释了吧
    4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
    5.$ sudo rm -rf /var/lib/dpkg/info //把自己新建的info文件夹删掉
    6.$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //把以前的info文件夹重新改回名字

    然后在whereis apache2,把剩下的apache2文件手动删除。

    第五步 配置apache2,目前只用到apache2的虚拟主机功能

    我的虚拟主机名为:www.yourdomain.com

    在/etc/apache2/site-available目录下新建一个虚拟主机配置文件,我命名为sitename.conf

    sudo vi /etc/apache2/site-available/sitename.conf

    <VirtualHost *:80>
        ServerName www.yourdomain.com #虚拟主机的域名,可以在浏览器中输入。
        ServerAlias otherdomain.com
      
        Alias /media/ /home/zhaoxu/workspace/test1/media/#存储媒体文件的路径
        Alias /static/  /home/zhaoxu/workspace/test1/static/#存储静态文件的路径
      
        <Directory  /home/zhaoxu/workspace/test1/media>
            Require all granted
        </Directory>
      
        <Directory /home/zhaoxu/workspace/test1/static>
            Require all granted
        </Directory>
      
        WSGIScriptAlias /  /home/zhaoxu/workspace/test1/test1/wsgi.py  #非常重要的一步,将apache2与django项目相结合
        <Directory  /home/zhaoxu/workspace/test1/test1>
        <Files wsgi.py>
            Require all granted
        </Files>
        </Directory>
    </VirtualHost>
    然后修改wsgi.py
    sudo vi /home/zhaoxu/workspace/test1/test1/wsgi.py
    from os.path import join,dirname,abspath
    PROJECT_DIR = dirname(dirname(abspath(__file__)))
    import sys
    sys.path.insert(0,PROJECT_DIR)
    修改settings.py
    sudo vi /home/zhaoxu/workspace/test1/test1/settings.py
    添加
    DEBUG = False
    ALLOWED_HOSTS = ['127.0.0.1',www.yourdomain.com']
    接着设置目录和文件的权限
    cd /home/zhaoxu/workspace
    sudo chmod -R 644 test1
    sudo find test1 -type d -exec chmod 755  {} ;
     
    最后,重启apache2和激活网站
    /etc/init.d/apache2 restart
    sudo a2ensite sitename 或 sudo a2ensite sitename.conf
    在浏览器中输入www.yourdomain.com,即可出现Hello World页面,也就是我们在django中test1项目的网页。
    要注意的是www.yourdomain.com要在hosts文件中解析,sudo vi /etc/hosts
    127.0.0.1  www.yourdomain.com
    要想检查是否正确,可用ping命令进行测试。ping www.yourdomain.com。能ping通说明配置正确。
     配置的方向是VirtualHost->wsgi.py->settings.py->urls.py->views.py
    以上就是简单的配置过程,搭建一个良好的平台是开发网站很重要的一步。平台搭建好以后就可以从网上学习django开发的教程。另外,以上还不是特别的详细,关于静态文件和媒体文件的settings没有写。推荐http://www.ziqiangxuetang.com/django/django-deploy.html。写的很详细,但是稍微有点瑕疵,大家可以结合我写的和教程中的一块看。
     
     
     

    不同的项目可能使用了不同的Django版本,兼任性是大问题,微笑

    如果不幸要去接手不同版本的项目,比较惨烈!

    如果想重装一个Django版本,需要先卸载后安装。

    首先找到django安装路径

    python import sys; sys.path = sys.path[1:]; import django; print(django.__path__)

    得到 django 安装目录 ['/Library/Python/2.7/site-packages/django'] 
    删除 django 目录即可 
    之后可以重新安装

    如果你使用 Python egg 来安装 Django, 直接删除 Django ``.egg`` 文件, 

    1. 并且删除 ``easy-install.pth``中的 egg 引用就可以了.  
    2.   
    3. 这个文件应当可以在 ``site-packages`` 目录中被找到... 
  • 相关阅读:
    用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr
    Backbone源码分析-Backbone架构+流程图
    为什么我的SQL server 在附加数据库后,数据库总是变成了只读?
    js window.open()实现打印,如何在关闭打印窗口时刷新父窗口
    .NET获取不到js写的cookie解决方法
    网站安全狗”响应内容保护“网页错误返回页面优化功能介绍
    快钱支付与Sql Server的乐观锁和悲观锁
    RequiredFieldValidator 根据group组来触发验证
    DropDownList中显示无限级树形结构
    大量多风格多功能后台管理模板
  • 原文地址:https://www.cnblogs.com/zhaoxu123/p/5754270.html
Copyright © 2020-2023  润新知