一、运行环境
1、操作系统:centos7.4
2、MySQL版本:mariadb==5.5.56
3、redis版本:redis==3.2.8
4、django版本:django==1.11.6
5、python版本:python==3.4
6、channels版本:django_channels==1.1.8(实时消息推送)
7、服务器:Apache==2.4.6
8、djangorestframework==3.8.2;djangorestframework-jwt==1.11.0(用于token验证)
二、配置环境
1、在一个服务器上部署多个项目,那么每个项目应该有自己独立的运行环境,那么我们可以通过virtualenv来创建每个项目所需的虚拟环境,执行命令:mkvirtualenv myproject_one;
2、将之前项目中的依赖包安装在我们的虚拟环境中,执行命令:pip install -r requierments.txt;
3、 在该虚拟环境下安装适合该python版本的mod_wsgi,执行命令:pip install mod_wsgi;
4、执行命令:
cp /opt/.virtualenvs/myproject_one/lib/python3.4/site_packages/mod_wsgi/server/mod_wsgi-py34.cpython-34m.so /usr/lib64/httpd/modules/mod_wsgi-py34.so;
5、执行命令:vim /etc/httpd/conf.modules.d/10-wsgi.conf,在文件中添加内容:LoadModule wsgi_module modules/mod_wsgi-py34.so;
6、将项目文件myproject放置到服务器:/var/www/html文件夹下;
7、执行命令:chown apache -R /var/www/html/myproject;
8、在/etc/httpd/conf.d 目录下创建myproject.conf文件;在文件中加入如下数据,myproject就是我的项目名称:
## ServerName www.yourdomain.com# ServerAlias otherdomain.com WSGIDaemonProcess EPOMMSWeb python-home=/root/.virtualenvs/myproject_one/ python-path=/var/www/html/EPOMMSWeb:/root/.virtualenvs/myproject_one/lib/python3.4/site-packages WSGIProcessGroup EPOMMSWeb Alias /static/ /var/www/html/EPOMMSWeb/static/ WSGIScriptAlias / /var/www/html/EPOMMSWeb/EPOMMSWeb/wsgi.py Require all granted
9、开启9000端口,执行命令:firewall-cmd --zone=public --add-port=9000/tcp --permanent
10、重启防火墙:systemctl restart firewalld.service
11、编辑:vi /etc/httpd/conf/httpd.conf ,加入代码listen:9000 #监听9000端口
12、重启apache服务:systemctl restart httpd
在完成上面的步骤后,那么就可以通过浏览器来访问我们的网站了:测试访问我们的服务:192.168.0.139:9000/admin/;此时就能访问到我们的admin界面了;
13、给每个项目单独配置数据库用户及相关权限:
insert into mysql.user(Host,User,Password) values("%","wms",password("wms"));
grant all privileges on wms.* to wms identified by 'wms';
flush privileges;
三、遇见的问题:
1、admin后台部分css无法加载,解决办法是将django文件夹下的admin的静态文件复制到项目的static文件夹下,执行如下命令即可解决;
执行命令:cp /opt/.virtualenvs/myproject_one/lib/python3.4/site-packages/django/contrib/admin/static/admin /var/www/html/myproject/static/
2、之前的channels的功能完全失效;