安装好python环境,安装nginx,安装uwsgi,安装SSH
修改django项目中的配置文件settings
DEBUG = False
ALLOWED_HOSTS = ["*"]
如果有静态文件static路径也需要配置一下。将项目通过filezilla传到Ubuntu上
这个时候如果还需要修改文件的话,需要在filezilla上修改
filezilla中编辑——设置——文件编辑,选择打开方式,进行编辑
在项目里新建一个uwsgi.ini文件
[uwsgi] # Django-related settings socket = 127.0.0.1:9001 # 项目绝对路径 chdir = /home/project/LoginDemo # Django的wsgi文件相对路径 wsgi-file = LoginDemo/wsgi.py # process-related settings # master master = True # 最大进程数 processes = 4 # 线程数 threads = 2 #设置此参数,有一个主进程 master=True #守护进程的方式运行,log日志存在此log文件里 deamonize=/var/log/uwsgi/djangoProject.log #主进程id写入文件里 pidfile= /var/log/nginx/uwsgi.pid # ... with appropriate permissions - may be needed # chmod-socket = 664 #退出时,清理环境 vacuum = True reload-mercy = 10 max-requests = 5000 limit-as = 512 buffer-size = 30000
进入etc/nginx/conf.d文件夹下创建django_nginx.conf文件
server { listen 8000; server_name 127.0.0.1 access_log /var/log/nginx/logindemo_access.log; error_log /var/log/nginx/logindemo_error.log; charset utf-8; client_max_body_size 75M; root /home/project/LoginDemo location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9001; uwsgi_read_timeout 2; } location /static/ { expires 30d; autoindex on; add_header Cache-Control private; alias /home/project/LoginDemo/static/; } }
如果权限不够的话,在Xshell中使用sudo chmod 777 /文件路径 改变权限
sudo chmod 600 ××× (只有所有者有读和写的权限) sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限) sudo chmod 700 ××× (只有所有者有读和写以及执行的权限) sudo chmod 666 ××× (每个人都有读和写的权限) sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
之后重启Nginx
进入uwsgi.ini的上一级文件,也就是项目
命令uwsgi -- ini uwsgi.ini 运行django项目
通过浏览器访问,正常则表示部署正确
----------------问题-------------------
1,uwsgi遇到ImportError: No module named django.core.wsgi问题
通过在wsgi.py里面打印sys.path发现是因为path里面并没有包含该安装的site-packages的路径,因此在wsgi.py添加如下语句
sys.path.append('/usr/lib/python2.7/site-packages')
sys.path.append('/usr/lib64/python2.7/site-packages')
netstat -ap | grep 8080 查看8080端口是谁在使用
kill -9 pid号 强制关闭占用端口的程序