ubuntu20 python3.8部署django

一、导入python库

pip freeze > requirement.txt

阿里云的ubuntu如果在导入python库的过程中有问题的话,输入下面的代码

sudo apt update

sudo apt install libsdl-pango-dev

apt install libpq-dev

域名设置下,方便接下来的调试。

二、安装nginx和uwsgi

apt-get install nginx
pip install uwsgi

安装完成后,此时访问域名会显示

django项目目录下新建文件 uwsgi.ini文件

[uwsgi]
# Django-related settings
socket = 127.0.0.1:8099
chdir           = /home/mysite  
module          = mysite.wsgi
master          = true
processes       = 4
vacuum          = true

再新建uwsgi_params文件

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;

uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;

uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

再新建mysite_nginx.conf文件

# mysite_nginx.conf

# 上游组件nginx需要连接到
upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
    server 127.0.0.1:8099; # 对于web端口套接字(我们将首先使用它)
}

# 服务器的配置
server {
    # 您的网站将在哪个港口提供服务
    listen      80;
    # 它将服务的域名
    server_name XXXX.com; #替换计算机的IP地址或FQDN
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    location /media  {
        alias /home/mysite/media;  # your Django project's media files - amend as required
    }

    location /static {
        alias /home/mysite/static; # your Django project's static files - amend as required
    }

    # 最后,将所有非媒体请求发送到Django服务器。
    location / {
        uwsgi_pass  django;
        include     /home/mysite/uwsgi_params; # 您安装的uwsgi_params文件
    }
}

以下是启动命令

#uwsgi命令

uwsgi --ini uwsgi.ini
pkill -f uwsgi
killall -s INT uwsgi  #如果上面无法关闭的话,用这条代码
nohup uwsgi --ini uwsgi.ini &  #如果关闭ssl连接导致500错误则用这条命令后台启动
#nginx命令
nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx
sudo service nginx restart  #如果上面的重启有错误,用这条命令
nginx -s stop   #强制停止Nginx服务
nginx -s quit   #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
然后进行链接
sudo ln -s /home/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/
启动这两个文件后就可以正常访问。

参考:使用uWSGI和nginx来设置Django和你的web服务器 — uWSGI 2.0 文档

三、安装mysql数据库

sudo apt update sudo apt install mysql-server

#初始化数据库:

sudo mysql_secure_installation

进入mysql中运行下面代码(root禁止无密码登录,而且设置密码为新密码)

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '<new_password>';

service mysqld restart  #重启mysql服务命令


将原来的sqlite3数据导出至data.json

python manage.py dumpdata > data.json

#如果提示出错,那是由于window系统版本太高,需要更改语言选项

#导入data.json

python manage.py loaddata data.json

#如果提示出错
#UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
#那么需要先将data.json用记事本打开,另存为的时候选择编码utf-8,然后重新导入就可以了


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值