使用ubuntu 16.04 server 作为django网站的服务器,数据库采用mysql,以下记录配置过程。django的基本工程在本机调试好,上传至server /var/www/html目录中
准备环境:
ubuntu16.04 server
python 3.5.2
步骤如下:
1. 安装apache2
sudo apt-get install apache2
安装完成确认一下服务器是否正常
2. 安装MYSQL
由于Django运行需要数据库的支持,自带的sqlite性能较差,因此我们需要安装MySQL数据库
sudo apt-get install mysql-server
安装mysql数据库及连接客户端,安装过程中,记录好数据库的root密码
安装完成后,运行mysql -uroot -pxxxxxx 进入mysql xxxxxx是数据库密码
运行show databases; 能查看到当前安装的数据库,则证明数据安装正常
创建djangoDB数据库,并建立用户django_user
create database djangoDB; #注意末尾有分号
create user django_user@'%' identified by '123456';
授权读写djangoDB数据库
grant all on djangoDB.* to django_user@'%';
3. 安装virtualenv 虚拟环境
django网站发布基于虚拟python环境
apt install virtualenv
3.1 创建虚拟环境venv
进入/var/www/html/目录,在此目录下建立虚拟环境
virtualenv venv --no-site-packages --python=python3
ubuntu16.04默认没有python2,必须要指定版本--python=python3,否则报错
激活虚拟环境
source venv/bin/activate
使用安装django
pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com django==2.0.8
4. 建立好django工程并上传至/var/www/html目录下
5. 修改settings文件,将数据库更改为mysql数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangoDB',
'USER': 'django_user',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
6. 同步数据库文件
6.1 安装mysqlclient
pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com mysqlclient
如果出现以下错误 Command "python setup.py egg_info" failed,则运行
apt install build-essential
pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com libmysqlclient-dev
(如果安装这个也出现错误,请update一下系统)
执行
python manage.py migrate
7. 创建apache配置文件
7.1 在 /etc/apache2/sites-available/ 目录下,建立新文件mysite.conf,内容如下
其中python-home 指向虚拟环境的目录 python-path指向网站目录
安装apache2的wsgi扩展
sudo apt-get install libapache2-mod-wsgi-py3
配置apache2启动加载wsgi模块
修改/etc/apache2/apache2.conf ,在最后增加一行
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
重启apache2
sudo service apache2 restart
a2dissite 000-default.conf 停止当前网站
a2ensite mysite.conf 启用新的网站
在/etc/apache2/sites-enabled目录下确认新站已激活
在浏览器中输入http://IP地址/polls访问服务器
如果出现外部访问被禁止的情况,就修改一下 mysite/settings.py文件,将
ALLOW_HOSTS= [] 改为ALLOW_HOSTS= ['*']
至此,Django项目顺利在Apache中运行。