阿里云Contos7用nginx+uwsgin部署自己的django项目

通过Xshell5(其他远程连接工具也可)连接自己的服务器

1.安装python3(这里我安装的是python3.6.5)

查看是否安装了python3
python3 -V (如果安装了会显示其版本号且跳过安装python,如没有则报错)
(每一个服务器都会有一个自带的python2.7)

安装python(通过源代码构建安装)
1.安装gcc和依赖库
  yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

2.下载python源代码
  wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

3.解压缩
  xz -d Python-3.6.5.tar.xz
  解归档
  tar -xvf Python-3.7.0.tar

4.执行配置生成构建文件
  cd Python-3.6.5  # 切换到刚刚解压缩后的python目录下
  ./configure --prefix=/usr/local/python36 --enable-optimizations # 这一步想当于把安装的python配置文件都设置放到/usr/local/python36目录下
 (执行完成这一步后会生成一个名叫Makefile的文件)

5.构建和安装
  make && make install # 表示执行多个命令(如果make执行不成功就不再执行make install)
 (这一步大约等待20多分钟直到执行成功)

6.创建软连接(快捷方式、符号链接)
  ln -s /usr/local/python36/bin/python36 /usr/bin/python3
  ln -s /usr/local/python36/bin/pip3 /usr/bin/pip3
 (因为第四步我们设置了python安装的路径为/usr/local/python36/)

7.查看是否安装成功
  python3 -V 或 python3 --version
 (python3.6不需要配置环境变量)

2.安装mysql(这里我安装的是mysql5.7.24)

因为centos7中默认已经有了一个数据库MariaDB,所以如果直接安装mysql可能会发生一些错误,所以在安装mysql时先卸载MariaDB
(如果不想安装Mysql也可以直接使用MariaDB,他的功能和mysql的功能差不多)

删除MariaDB
rpm -qa|grep mariadb  # 查看MariaDB
rpm -e --nodeps 文件名 # MariaDB

安装mysql
1.下载安装包
  wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm # 直接去官网下载
  或
  yum -y install mysql57-community-release-el7-10.noarch.rpm

2.安装mysql服务
  yum -y install mysql-community-server

3.启动mysql
  systemctl start  mysqld.service

  systemctl restart mysqld.service  # 重启服务
  systemctl stop mysqld.service # 停止服务
  systemctl status mysqld.service # 查看mysql运行状态
  systemctl enable mysqld # 设置开机自启

3.测试安装的mysql

1.登陆mysql
  mysql -u root -p  # 通过root用户登陆
 (第一次启动mysql,会有一个临时密码,初始密码存在/var/log/mysqld.log文件中,可通过查看log文件来查看
  grep "password" /var/log/mysqld.log
  )
  通过初始密码即可登陆mysql

2.更改密码:
  SET PASSWORD = PASSWORD('密码');
  注意:设置新密码时应设置比较复杂的密码否则会提示你密码太简单不符合密码等级,但如果坚持要改则可改变密码等级
  set global validate_password_policy=0;  # 把密码等级改为0
  set global validate_password_length=4; # 改变密码的最小长度
  SET PASSWORD = PASSWORD('密码'); # 则可设置简单密码

3.配置远程登陆
  Mysql默认root用户智能本地登陆,如果想要远程连接则
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '4008' WITH GRANT OPTION; # 给服务器都赋予所有的用户对数据库的所有操作权限
 (这里因为方便测试所以这样做,一般情况下因根据具体情况赋值)
  -- .*.的意思是所有库的所有表;To后面跟的是用户名;@后面跟的是ip地址,%代表所有ip地址,identified by后面的是密码。
  刷新权限
  flush privileges;

4.添加3306端口
  exit # 退出mysql
  systemctl status firewalld # 先查看防火墙状态
  systemctl start firewalld  #  打开防火墙
  firewall-cmd --zone=public --add-port=3306/tcp --permanent; # 添加3306端口
  (如果没有打开防火墙执行则会报错防火前没有运行)
  firewall-cmd --reload  # 重启防火墙
  
完成后即可远程连接数据库

4.安装虚拟环境virtualenv

1.安装virtualenv
  yum install python-virtualenv
  在这里注意可能yum安装的virtualenv为virtualenv.15,则创建虚拟环境时就会与python3.6.5不兼容,所以应安装更高版本的

  virtualenv --version # 查看自己安装的virtualenv版本
  若安装的为virtualenv.15.0.0,则卸载重新安装新版本

  pip remove virtualenv # 卸载virtualenv 
  # 下载源代码安装包,这里我下载的是virtualenv-16.0.0.tar.gz
  wget https://files.pythonhosted.org/packages/33/bc/fa0b5347139cd9564f0d44ebd2b147ac97c36b2403943dbee8a25fd74012/virtualenv-16.0.0.tar.gz
  # 解归档
  tar zxvf virtualenv-16.0.0.tar.gz 
  # 切换到已解归档的文件夹
  cd virtualenv-16.0.0
  # 查看是否安装成功
  virtualenv --version 
  或
  python setup.py  install  # 这条命令需要切换到目录才能执行

5.创建虚拟环境

1.创建虚拟环境之前我们先创建几个文件夹
  # 切换到home目录
  cd /home
  # 创建目录
  mkdir src env conf logs
  文件夹:
  src放置需要部署的项目代码
  env放置项目需要的虚拟环境
  conf放置nginx和uwsgi的一些配置文件
  logs放置记录项目运行的日志文件

2.创建虚拟环境
  # 切换到刚刚创建的文件夹env下面
  cd /home/env
  # 创建虚拟环境
  virtualenv --no-site-packages -p /usr/local/python36/bin/python3 freshenv
  (这里我创建的虚拟环境叫freshenv,可更改,/usr/local/python36/bin/python3为自己python3的安装目录)
  # 切换到创建的虚拟环境文件夹下面的bin目录
  cd freshenv/bin
  # 激活虚拟环境
  source activate
3.安装项目所需要的包
  # 创建编辑一个文件并写入需要安装的包
  vim re_install.txt
  这里我需要安装的包有这些,注意:根据自己项目的情况安装相应的包
  # 安装
  pip3 install -r re_install.txt # 系统就可根据文件里面的包名和版本号进行安装
 (若包名错误会报错)

  若上一步不能安装成功则老老实实的一个一个安装
  pip3 install pymysql
  ...

6.部署

  Django项目中,若部署在服务器上面后别人通过浏览器访问时若出现错误则会相应的出项错误提示页面,这种是对访问者不应该出现的。
  在工程目录下settings文件中有一个DEBUG=True参数,修改为DEBUG=False,但修改了这个参数后会导致页面的js、css等资源文件加载不出来。
  原因:
  Django框架仅在开发模式下提供静态文件服务。当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供静态文件服务了。所以需要修改一下一些配置文件。
1.a.修改settings.py配置文件中的DEBUG=False模式,修改ALLOEWD_HOST=['*']

2.修改工程目录下的urls.py
  from django.views.static import serve
  urlpatterns = [
     url(r'^static/(?P<path>.*)$', serve, {"document_root": settings.STATICFILES_DIRS[0]})
     url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}),
  ]
 (因为这里我是根据我的项目更改,所以上面的1,2两步现在可不做,根据自己项目的情况更改)

3.通过Xftp上传自己的项目到服务器/home/src目录下

4.测试启动项目
  /home/env/freshenv/bin/python3 /home/src/fresh_shop manage.py runserver 0.0.0.0:80
  /home/env/freshenv/bin/python3:为创建的虚拟环境中的python3
  /home/src/fresh_shop:为我的项目,这里我的项目名为fresh_shop
  启动成功后即可在浏览器输入自己的ip地址或域名访问项目。注意:访问时地址后面跟的项目路由

7.通过nginx+uwsgi部署django


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容