CentOS7下部署Django项目详细操作步骤[CentOS+Django+Nginx+uwsgi]

软件版本:Centos7 | Python3.6 | Django2.2
操作:在root用户操作完成;
最后更新时间:2021-02-03

1. 更新系统软件包

执行命令:

yum update -y

yum update -y

2. 安装软件包和可能使用的依赖

2.1 执行命令:
yum -y groupinstall "Development tools"

clipboard_6

2.2 执行命令:
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel postgresql-devel

clipboard_8

输入:y

clipboard_7

3. 安装Anaconda

3.1 把Anaconda文件下载到服务器tmp目录下
wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
3.2 安装

运行命令

bash Anaconda3-2019.03-Linux-x86_64.sh 

clipboard_4

一直回车

clipboard_2

输入yes,然后再回车

clipboard_3

这样就安装完了。

另外:
For changes to task effect, close and re-open your current shell.
必须关掉窗口,重新打开一次,Anaconda才能生效!

4. 创建Python3.6环境

执行命令:

conda create --name python36 python=3.6

clipboard_9

键入:y

clipboard_5

这个时候,我们就创建好了!

运行下面这个命令就可以进入环境了:

conda activate xinfang_003

进入环境之后,安装uwsgi

4.1. 运行命令:
pip install uwsgi
4.2 给uwsgi建立软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

5. 安装 数据库

参照:
CentOS7 下安装 Mysql
CentOS7 下安装 PostgreSQL

6. 上传项目文件

6.1 上传之前的准备工作
  • 收集静态文件
    虚拟环境下继续运行 python manage.py collectstatic 命令收集静态文件到 static 目录下。

  • 准备第三方依赖
    项目还会依赖一些第三方 Python 库,为了方便在服务器上一次性安装,我们将全部依赖写入一个叫 requirements.txt 的文本文件中。激活本地的虚拟环境(如果你使用了虚拟环境的话),并进入项目的根目录,运行 pip freeze > requirements.txt 命令。

6.2 上传项目代码

根目录下建立一个www文件夹,主要用于存放网站文件的*(个人习惯,其它人可根据自己的实际情况处理)*

执行命令:

mkdir -p /www
cd /www

然后把项目文件上传到这个www文件夹中。

7. Django正常运行之后 ,就开始配置uwsgi

7.1 执行命令,切换到上传的项目文件夹下
cd /www/mywebsite
7.2 d 项目根目录下创建 mysite.xml 文件

执行命令:

vim mysite.xml

输入以下内容:

<uwsgi> 
    <socket>127.0.0.1:8997</socket><!-- 内部端口,自定义 --> 
    <chdir>/www/mysite/</chdir><!-- 项目路径 --> 
    <module>mysite.wsgi</module> 
    <processes>4</processes> <!-- 进程数 --> 
    <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
7.3 按Esc键,输入 :wq 保存退出

8. 安装nginx和配置nginx.conf文件

8.1 执行命令:
cd /home  # 进入home目录
8.2 执行命令:

下载NGINX压缩包:

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

如果报错:bash: wget: command not found那么运行:yum install wget

8.3 解压NGINX,执行命令:
tar -zxvf nginx-1.13.7.tar.gz
8.4 依次执行以下命令:

8.4.1. 执行命令

cd nginx-1.13.7  # 进入nginx-1.13.7文件夹

8.4.2. 执行命令:

./configure
> 如果报错,参考 <u>nginx 安装报错:./configure: error: the HTTP rewrite module requires the PCRE library.</u>

8.4.3. 执行命令:

make

8.4.4. 执行命令:

make install

注意: nginx一般默认安装好的路径为/usr/local/nginx

8.5 配置NGINX
  1. 执行命令:
vi /usr/local/nginx/conf/nginx.conf  # 打开nginx.conf文件
  1. 在server里编辑以下内容:
http {
    ...省略...
    # gzip on;
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;
        charset utf-8;

        #access_log  logs/host.access.log  main;

        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8997;
            uwsgi_param UWSGI_SCRIPT xinfang.wsgi;
            uwsgi_param UWSGI_CHDIR /www/003_xinfang_pro;
        }

        location /static/ {
            alias /www/003_xinfang_pro/static/; #静态文件目录
        }

        #error_page  404              /404.html
        ...省略...
    }
}
8.6 进入 /usr/local/nginx/sbin/ 目录

执行命令:

cd /usr/local/nginx/sbin/
./nginx -t

clipboard_10

如果成功了,执行命令:

./nginx

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

clipboard_1

9. 访问项目的页面

  1. 执行命令:
cd /www/mysite  # 进入Django项目目录
  1. 执行命令:
uwsgi -x mysite.xml

如果报错uwsgi: invalid option -- 'x'

  • 原因:centos下,在没有安装libxml2时,pip安装的uwsgi无法支持xml格式的配置文件。

  • 解决:

    1. 下载 libxml2yum install libxml*
    2. 卸载 uwsgipip uninstall uwsgi
    3. 删除pip缓存编译文件:rm -rf ~/.cache/pip
    4. 重装 uwsgipip install uwsgi
  1. 如果没有报错,则继续执行命令:
cd /usr/local/nginx/sbin/  # 进入目录
./nginx -s reload  # 重启nginx
  1. 然后在浏览器里输入IP就OK了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值