工作中Django上线必须是每个人都要掌握的
1.首先需要一个可以连接你服务器的软件这里需要两个:一个是传文件的(FileZilla),另外一个是和服务器连接,给服务器安装环境用(Xshell)和(putty)都可以
实现第一步拉取文件
1.首先连接FileZilla,连接后会出现下图样式(这里我使用的服务器是阿里云的,系统是Ubuntu)。这里说明一下,连接好后你进入var目录下,此时里面的文件里可能没有一个叫www的文件,这时你可以先创建一个。创建完成后你把你的项目包放到www文件下。
2.你拉取的项目里不包含你做项目时的数据库,所以你在这里也可以顺便数据库也打包拉进去。反正刚开始我也不会拉,所以这里我也演示一下,嘿嘿!顺便把Xshell的连接也说了。
这里的用户名是你在虚拟机(阿里云服务器用户名默认root,IP用的服务器给你的公有IP)设置的,密码是你自己设置的密码。
成功后是这样的
进入你的mysql数据库执行
mysqldump -uroot -p blog(这里是你的数据库名,blog是我的)> blog(这个名字你可以随便起).sql
然后把你的数据库导出的包放到下图所示位置
开始第二步,配置环境
1.更新软件列表(不更新可能装不上东西)
apt update
2.安装常用软件
apt install nginx apt install mysql-server #安装过程会弹出一个输入密码的框,这是你进入数据库的密码 apt install git apt install vim
3.安装虚拟开发环境pyenv
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
这个虚拟环境装完后在最后会出来三句话,每个人的路径都不同
然后输入命令进入 .bashrc 进去后把刚复制的三句话放置到文件最后,wq保存退出后执行命令让它生效,此时就可以生效
vim .bashrc
source .bashrc
接着命令
cd .pyenv #进入这个文件 mkdir cache #创建cache文件 cd cache/ #进入此目录
这时需要安装python
#在安装python之前,我们必须要安装python所需要的依赖包,这个必须要安装,安装会失败的: sudo apt-get install libc6-dev gcc sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm #安装python包,版本可自选,这里我用3.6.6 wget -c http://mirrors.sohu.com/python/3.6.6/Python-3.6.6.tar.xz -P ~/.pyenv/cache/ #做安装 pyenv install 3.6.6 -v #更新pyenv数据库 pyenv rehash #列出所安装的python版本 pyenv versions #切换python版本 pyenv global 3.6.6 #6.验证版本 python
成功后进入你的项目里创建虚拟开发环境(如果你想切出虚拟环境,可执行pyenv deactivate env3.6.6)
cd /var/www cd blog #进入你自己项目 接着创建一个自己的虚拟环境。用法如下:pyenv virtualenv python版本号 虚拟环境名 pyenv virtualenv 3.6.6 env3.6.6 #注意版本号必须是已经安装的,否则会报错 切换到你创建的虚拟环境 pyenv activate env3.6.6 pip freeze #利用pip安装,但是版本需要升级,按照提示升级
继续,利用pip进行安装,安装你需要的安装包Django,pymysql,pillow,django-tinymce(这个是富文本)
pip install django==1.11.16 pip install pymysql pip install pillow ..... pip freeze #再次查看你安装的包和版本号
最后在安装一个
pip install uwsgi
vim uwsgiconf.ini
进去后把下方的配置文件放到里面
[uwsgi] # 外部访问地址,可以指定多种协议,现在用http便于调试,之后用socket # socket = 0.0.0.0:8000 # uwsgi的监听端口 # 指向项目根目录 chdir = /var/www/blog # wsgi.py所在位置 wsgi-file = blog(项目目录)/wsgi.py module = blog(你的项目).wsgi # 虚拟开发环境位置(一定要改成你自己的虚拟环境目录) virtualenv = /root/python/.pyenv/versions/env3.6.6 #plugins = python master = true # 处理器数 processes = 1 # 线程数 threads = 2
最后再配置一下nginx。最后的blog是自己创建的一个文件名
vim /etc/nginx/sites-available/blog
进去后把配置也写下,配置如下,转换网址在这里http://www.cnkuai.cn/zhuanma.asp?act=save
server { listen 80; server_name www.bly.我爱你; #这里写自己的域名,如果后面访问不出效果,只出一个(欢迎来到nginx界面)。那可能与你的域名有关(反正我的域名是中文后缀,没解析出来),所以这时你可以把你中文域名放置到网上转换一下,再放到这里就可以了。 location / { # 转发端口必须和uwsgiconf.ini中socket端口一致 uwsgi_pass 127.0.0.1:8000; include uwsgi_params; uwsgi_param UWSGI_SCRIPT blog.wsgi; # 项目的根目录 uwsgi_param UWSGI_CHDIR /var/www/blog; } # 静态资源所在位置 location /static { alias /var/www/blog/static/; } }
配置完成后,进入刚刚的位置配置一个软连接(切记下面的blog,是一个软件界名字,中间有个空格)
cd /etc/nginx/ cd sites-enabled/ ln -s ../sites-available/blog blog ll #查看结果里没有报红颜色,就成功
service nginx restart
最后再到你的项目目录下启动uwsgi
cd /var/www/blog/ ps -aux | grep uwsgi #查看uwsgi是否起来,如果起来了,把他禁掉 uwsgi uwsgiconf.ini
如果是和下面的一样,那你就成功了。
如果提示您的端口被占用
netstat -anp
kill -9 PID(这里是进程)
然后,访问你的域名。