在Centos里部署Django,为了使服务器可以部署更多的项目而不冲突,最好使用虚拟环境。
python2 如何安装虚拟环境,在下不清楚,见谅,是时候切换到python3了,骚年。
首选安装python3,我安装的是最新的python3.6版本,命令:
yum install python36 python36-devel
安装完成之后,我习惯在用户home目录下建立虚拟环境,比如创建用户:django
#useradd django
#passwd Django
创建完用户之后就切换到指定用户下面:su - django
在 visudo里,把django加上sudo权限(不细说了)。
创建虚拟环境:
sudo python3.6 -m venv .venv
后面的.venv 是你创建的虚拟环境名称,如果你有多个项目要部署,那最好起一个有意义的名字。
到.venv目录下看看:
image.png
ok,建立好了。我们激活虚拟环境:
source ~/.venv/bin/activate
剩下的事就是安装项目依赖的库了
pip3 install django==2.0.1
pip3 install mysql-connector
pip3 install pillow
pip3 install mysql-connector-python
pip3 install uwsgi
依赖的库都安装好以后,可以在项目目录下执行:python3.6 manage.py runserver
如果可以正常运行,那么说明项目没问题了,可以继续下一步。
下一步,用uwsgi跑项目。
上面已经安装了uwsgi,只需创建一个配置文件即可,我放到/etc/uwsgi.ini
编辑uwsgi.ini
[uwsgi]
socket = 127.0.0.1:9002
chdir=/data/myproject
wsgi-file=/data/myproject/wsgi.py#项目文件自带的uwsgi.py
virtualenv = /root/.venv#虚拟环境目录
processes=4#进程数
threads=4#线程数
stats = 127.0.0.1:9008 #状态
daemonize = /data/log/httpServer.log#日志,改成自己喜欢的目录
pidfile = /tmp/uwsgi.pid#pid
vacuum = true
log-maxsize = 50000000
运行uwsgi:
找到虚拟环境目录bin下面的uwsgi,执行他:
/root/.venv/bin/uwsgi /etc/uwsgi.ini#后面跟上配置文件
查看日志,daemonize = /data/log/httpServer.log#日志,改成自己喜欢的目录,没有报错就ok了。
同时看看9002端口起来了没有,命令:
netstat -an |grep 9002
起来了,日志不报错就OK了。这时候您用浏览器访问9002端口就可以打开网站了。
安装Nginx
yum install nginx
讲究的人可以自己下载源码编译安装。
安装完成之后,找到nginx配置文件,/etc/nginx/nginx.conf
修改它:
这里只贴出server部分,其余部分属于优化,不影响功能。
server {
listen 80;#监听80端口
server_name s2.test.com;#监听的域名
access_log /data/log/access.log;#日志
error_log /data/log/error.log;#日志
charset utf-8;
client_max_body_size 75M;
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:9002;
}
location /static {
root /data/myproject;#对应项目静态目录/data/myproject/static
}
location /media {
root /data/myproject;#同上media目录
}
}
nginx -t 测试配置文件是否有错误。
准确无误后,启动nginx
#nginx
访问域名试试吧~,不明白请留言。
网友评论