Django+uwsgi+nginx 项目部署

软件版本详细介绍,纯净操作系统:Centos7.3 Python版本:python3.7.1 Django版本:django2.1.5

第一步:更新系统软件包

yum update -y

第二步:安装软件管理包和可能使用的依赖。

yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

小伙伴们到达这一步之后先创建一个快照,因为在后面安装完python3以后pip3不会跟着安装,所有我们这里创建一个快照,防患于未然。

第三步:下载Pyhton3到/root/目录

cd root
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

解压:

tar -zxvf Python-3.7.1.tgz

进入Python-3.7.1路径

cd Python-3.7.1

编译安装到指定路径

./configure --prefix=/usr/local/python3

安装python3

make
make install

安装完成之后,给pip3和python3建立软链接,添加变量,方便在终端中直接使用

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

查看python3和pip3的安装情况
在这里插入图片描述
出现图片中指定的版本号说明安装成功,如果pip3没有成功安装,就回滚上面创建的快照。

升级pip3到最新版本

pip3 install --upgrade pip

第四步:安装virtualenv 虚拟环境

pip3 install virtualenv

建立软连接

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

成功后在更目录下创建两个文件,env是虚拟环境,work是项目文件。

mkdir -p /data/env
mkdir -p /data/work

第五步:切换到/data/env/下,创建指定版本的虚拟环境。

virtualenv --python=/usr/bin/python3 pyweb

启动虚拟环境

cd /data/env/pyweb/bin/
source activate

在这里插入图片描述
出现图片中的pyweb说明虚拟环境生效。

第六步:在虚拟环境里安装Django和uwsgi

pip3 install django==2.1.5   (指定版本安装)
pip3 install uwsgi

给uwsgi建立软连接

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

到这里我们再创建一个快照,以防止安装数据库的时候出现问题。

第七步:安装Mysql数据库

进入/root/目录,然后下载MySQL Yum库提供了RPM包

cd root
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

安装

rpm -ivh mysql80-community-release-el7-1.noarch.rpm

选择要安装的版本
在YUM库中,存储了多个版本的MySQL,现在最新版的MySQL版本为8.0的,我们更新YUM库之后,默认安装的是最新版本的MySQL,其它版本的存储库是禁用的。我们可以通过下面的命令来查看,到底支持哪几他版本的MySQL,并查看状态。

yum repolist all | grep mysql

在这里插入图片描述
我可以看到现在支持这几个版本的MySQL安装,并且MySQL8.0是属于启用状态,如果我们想要安装8.0版本的MySQL就不需要更改任何配置,直接安装即可。现在我们要安装的是5.7版本的,所以我们需要修改一下配置文件。
修改mysql配置文件

vim /etc/yum.repos.d/mysql-community.repo

在这里插入图片描述
找到要安装的MySQL版本配置信息,并编辑启用的选项。enabled=0为禁用对应版本的YUM库,enabled=1为启用,默认8.0的配置为enabled=1,安装5.7的话,我们就把8.0的enabled=1修改为enabled=0,然后把5.7的enabled=0修改为enabled=1。

修改完成之后,我们通过下面的命令来验证状态:

yum repolist enabled | grep mysql

在这里插入图片描述
出现图中的信息表示安装成功。

安装mysql

sudo yum install mysql-community-server

安装成功后,启动mysql

sudo service mysqld start

查看启动状态:

sudo service mysqld status

在这里插入图片描述
上图为启动成功。

设置mysql密码。
MySQL在启动的时候,就已经自动进行了初始化。下面我们可以通过这个命令来查看超级用户的密码,这个存放在MySQL日志里:

sudo grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述
登录MySQL:

mysql -u root -p

然后输入上图红圈中的密码。

更改密码,切记密码一定要包含大小写特殊符号和数字。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin/2020^';

Mysql这块的最后我们用Navicat把项目的数据库与CentOS7中的数据库同步一下就OK了。

第八步:上传项目到服务器,并修改项目的settings。

环境依赖包导出到requirements.txt文件
在这里插入图片描述
这样项目的根目录下会多出一个requirements.txt文件。

打开Xftp上传项目
在这里插入图片描述
左侧为你已经写好的项目,注意右侧的目录,把左侧写好的项目直接拖进右侧的目录中。
修改settings文件中的ALLOWED_HOSTS和DEBUG。
在这里插入图片描述
然后使用Xshell,注意还是在虚拟环境下,进入到项目根目录,安装requirements.txt里的依赖包。

pip3 install -r requirements.txt

安装完毕之后,我们试运行一下项目。

python3 manage.py runserver

在这里插入图片描述
如果没有报错我们安装uwsgi和nginx。

第九步:配置一下uwsgi。

我网站项目路径是 /data/work/Spirit-fourm-master/,在项目根目录下创建
Spirit-fourm-master.xml文件,注意,uwsgi配置文件的名字必须是项目名,输入如下内容:

<uwsgi>    
   <socket>127.0.0.1:8001</socket> <!-- 内部端口,自定义 --> 
   <chdir>/data/wwwroot/Spirit-fourm-master/</chdir> <!-- 项目路径 -->            
   <module>Spirit-fourm-master.wsgi</module>  <!-- mysite为wsgi.py所在目录名--> 
   <processes>4</processes> <!-- 进程数 -->     
   <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>

注意:chdir为我们的项目路径,module中就不用写绝对路径了。

第十步:安装nginx

进入root目录,下载nginx

cd /root/
wget http://nginx.org/download/nginx-1.13.7.tar.gz

下载完成后,解压

tar -zxvf nginx-1.13.7.tar.gz

进入解压后的nginx-1.13.7文件夹,依次执行以下命令:

cd nginx-1.13.7
./configure
make
make install

进入nginx配置文件路径

vim /usr/local/nginx/conf/nginx.conf

把原来的配置文件删除,输入下面的内容

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  www.hellanasa.com; #改为自己的域名,没域名修改为127.0.0.1:80
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8001;  #端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT Spirit-fourm.wsgi;  #wsgi.py所在的目录名+.wsgi
           uwsgi_param UWSGI_CHDIR /data/work/Spirit-fourm/; #项目路径
           
        }
        location /static/ {
        alias /data/work/Spirit-fourm/static/; #静态资源路径
        }
    }
}

配置完成以后我们检查一下是否有错,依次输入以下命令

cd /usr/local/nginx/sbin/
./nginx

终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。

第十一步:让uwsgi生效和启动nginx。

让uwsgi文件生效

cd /data/work/Spirit-fourm/
uwsgi -x Spirit-fourm.xml

没有报错就去启动nginx

cd /usr/local/nginx/sbin/
./nginx -s reload

没有报错的话就可以访问你的网站了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值