阿里云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.*)$', serve, {"document_root": settings.STATICFILES_DIRS[0]})
     url(r'^media/(?P.*)$', 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


你可能感兴趣的:(阿里云Contos7用nginx+uwsgin部署自己的django项目)