由于任务需要,在公司服务器部署的nginx+django服务要在阿里云上也部署一份,防止因公司断网儿服务无法访问;阿里云是ubuntu14.04+apache2.4的环境,需要安装需要的环境加以部署。

       ubuntu14.04 默认python 2.7 ,现需要环境为python 3.5,需要安装python3.5

  1. sudo add-apt-repository ppa:fkrull/deadsnakes  
  2. sudo apt-get update 
  3. sudo apt-get install python3.5

      更改python3默认为3.5,因为服务器自带python2.7和python3.4

      sudo ln -s /usr/bin/python3.5 /usr/bin/python3

   安装pip(我是用源码安装,将源码放在一个文件中,安装后删除)

        wget https://bootstrap.pypa.io/get-pip.py

        sudo python3 get-pip.py

    安装virtualenv环境(创建一套“隔离”的Python运行环境,只需要一个目录,不用的话直接删掉,方便快捷)

   pip3 install virtualenv

   mkdir myproject(在目录下创建一个文件夹)

   cd /myproject

 创建独立的python运行环境

  virtualenv --no-site-packages venv

  source venv/bin/activate (运行该环境)

 安装django

       pip install django

     安装apache mod-wsgi 扩展

  sudo apt-get install libapache2-mod-wsgi-py3

   配置apache虚拟目录

  vim /etc/apache2/site-available/site.conf

  <VirtualHost *:80>

  ServerName chinaipv6.org
  ServerAlias www.chinaipv6.org
  ServerAdmin ipv6@localhost


  WSGIScriptAlias / /var/www/chinaipv6/v6monitor/v6monitor/wsgi.py
  WSGIDaemonProcess chinaipv6 lang=en_US.UTF-8 python-home=/var/local/project python-path=/var/www/chinaipv6/v6monitor    # lang=en_US.UTF-8   解决'ascii' codec decode byte)xe5 in position的错误(编码错误)python-home 指向python虚拟环境 python-path 指向django项目目录
  WSGIProcessGroup chinaipv6    #(可以不写)

  Alias /static /var/www/chinaipv6/static    #(静态文件位置)

  <Directory /var/www/chinaipv6/v6monitor/v6monitor>
  <Files wsgi.py>
  Require all granted
  </Files>
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/chinaipv6.error.log
  CustomLog ${APACHE_LOG_DIR}/chinaipv6.access.log combined
  </VirtualHost>

     apache载入虚拟目录配置文件

  a2ensite site.conf

       service apache2 restart

    将django项目放入对应 的web目录下,浏览器访问

   错误解决 :

   1. 

   mod_wsgi 模块版本要和运行环境的python保持一致或者高于运行环境的python,之前我的操作 sudo apt-get install libapache2-mod-wsgi-py3,是在没有安装python3.5的时候,py3的默认版本是python3.4,可以删除模块重新下载,或者使用python3.4的虚拟环境

   2.  没有静态文件,网站打开很乱,没有布局,多半是静态文件没有生效。

  1. 确保你的配置文件中的路径是正确的

  2. 确保你的settings.py中的文件设置正确

  3. 收集静态文件  python manage.py collectstatic

 

posted on 2017-09-08 11:42  宇过天勤  阅读(257)  评论(1编辑  收藏  举报