注意事项:
ubuntu服务器默认是python2(此版本不要删除,不然会出问题), 如果你的项目是python3,服务器也安装python3, Django版本最好也统一,不然可能会出问题。
下载python3:
sudo apt-get install python3.6
下载完毕后, 删除引用python文件,从新引用python3
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.4 /usr/bin/python
查看是否成功 python -V
1、安装Python包管理器
Pip是Python语言的包管理器,它可以帮助我们安装、修改、卸载Python包。要安装pip非常简单,执行命令:
# sudo apt-get install python-pip
2、安装Django
要从头创建项目,需要先安装Django软件包。执行命令:
# sudo pip install Django
要想指定Django的安装版本,比如1.5.5版,可以这样:
# sudo pip install Django==1.5.5
当然,你仍然可以使用Ubuntu的包管理器apt-get来安装Django,但这可能安装的不是最新稳定版的Django。
3、安装Apache2
使用apt-get命令完成Apache2的安装。
# sudo apt-get install apache2
4、安装mod_wsgi模块
仍然可以使用apt-get命令安装mod_wsgi模块。
# sudo apt-get install libapache2-mod-wsgi
要注意,如果使用的是Python3,那么命令应该是这样的:
# sudo apt-get install libapache2-mod-wsgi-py3
5、创建WSGI脚本
空文件init.py会告诉Python,把此目录当成是包来对待。override.py会导入所有的设置,并覆盖任何用于生产状态的设置。
比如生产状态的数据库设置和Debug设置可能会与开发状态有所不同,要在源码中区别开来,需要这样修改setting.py文件:
DEBUG = True
ALLOWED_HOSTS = ['www.mydomain.com', 'mydomain.com'] 或 ALLOWED_HOSTS = ["*"]
假如工程名是blog,ServerName可以是ip地址或者域名,如果是域名的话还需要修改Django工程下的seeting.py文件,将其ALLOWED_HOSTS=[]改为ALLOWED_HOSTS=['www.yourdomain.com'],多个域名可以通过逗号隔开。端口好要改的话需要 在/etc/apache2/ports.conf中添加你对应的端口号。
<VirtualHost *:80>
ServerName www.yourdomain.com
ServerAlias otherdomain.com
ServerAdmin wang@163.com
Alias /media/ /var/www/blog/media/
Alias /static/ /var/www/blog/static/
<Directory /var/www/blog/media>
Require all granted
</Directory>
<Directory /var/www/blog/static>
Require all granted
</Directory>
WSGIScriptAlias / /var/www/blog/blog/wsgi.py
# WSGIDaemonProcess ziqiangxuetang.com python-path=/home/tu/blog:/home/tu/.virtualenvs/blog/lib/python2.7/site-packages
# WSGIProcessGroup ziqiangxuetang.com
<Directory /var/www/blog/blog>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
2.修改wsgi.py文件
import os
from os.path import join,dirname,abspath
PROJECT_DIR = dirname(dirname(abspath(__file__)))
import sys
sys.path.insert(0,PROJECT_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "examsys.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
3.设置mysql字符集
如果用到mysql数据库需要设置字符集,请参看:http://blog.csdn.net/bigboysunshine/article/details/60961845
4.如果上面设置的端口是80则请参看:http://blog.csdn.net/bigboysunshine/article/details/62418300
5.激活网站
sudo a2ensite sitename.conf
sudo service apache2 restart
6.进入工程目录执行
sudo python3 manage.py collectstatic
然后访问 一下应该就ok了。
最后注意点:更新项目后, 需要执行
sudo service apache2 reload
后才会刷新,不然访问的还是缓存的urls。