ubuntu 搭建django开发环境(nginx+mysql+gunicorn)

6 篇文章 0 订阅

更新源

apt update
apt upgrade

安装django

pip3 install django
cd /home
django-admin.py startproject django_project  # 创建名为django_project的项目
chown -R www-data:www-data django_project/django_project  # 修改文件夹权限
mkdir wwwlogs  # 创建log文件夹

安装gunicorn

pip3 install gunicorn
设置网站gunicorn配置文件
vim /home/django_project/gunicorn.py
import multiprocessing

bind = "127.0.0.1:8000"   # 绑定的ip与端口
errorlog = '/home/wwwlogs/gunicorn.error.log' # 发生错误时log的路径
accesslog = '/home/wwwlogs/gunicorn.access.log' # 正常时的log路径
loglevel = 'warning'   # 日志等级
chdir = '/home/django_project'  # gunicorn要切换到的目的工作目录
timeout = 30      # 超时
workers = multiprocessing.cpu_count() * 2 + 1    # 进程数
threads = 2  # 指定每个进程开启的线程数

安装supervisor

pip3 install supervisor
echo_supervisord_conf > /etc/supervisord.conf
修改supervisord.conf文件
vim /etc/supervisord.conf

修改最下方include部分,将我们之后的网站的supervisor配置文件添加进去

[include]
files = /home/django_project/supervisor.conf
设置网站supervisor配置文件
vim /home/django_project/supervisor.conf
[program:django-project]
directory = /home/django_project  ; 你的程序目录
command = gunicorn -c gunicorn.py django_project.wsgi ; 你的程序执行命令
autostart = true  ; 在 supervisord 启动的时候也自动启动
autorestart = true  ; 程序异常退出后自动重启
user = root  ; 启动该程序的用户
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile = /home/wwwlogs/supervisor.log  ; 日志地址,默认 50MB
reload = True  # 只要项目代码有所修改,会自动重启
基本命令
  • supervisord,初始启动 Supervisord,启动、管理配置中设置的进程。
  • supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx 为 [program:beepkg] 里配置的值,这个示例就是 beepkg。
  • supervisorctl start programxxx,启动某个进程
  • supervisorctl restart programxxx,重启某个进程
  • supervisorctl stop groupworker: ,重启所有属于名为 groupworker 这个分组的进程(start,restart 同理)
  • supervisorctl stop all,停止全部进程,注:start、restart、stop 都不会载入最新的配置文件。
  • supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
  • supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。

安装nginx

apt install nginx
设置网站nginx配置文件
cd /home/django_project
vim django.conf  # 创建配置文件
server 
{
    listen  80;
    server_name 192.168.0.113;
    root  /home/django_project;
    location ~* ^.+.(webp|jpg|jpeg|gif|css|png|js|ico)$ 
    {
        access_log        off;
        expires           30d;
    }
    location / 
    {
        proxy_pass http://127.0.0.1:8000;
    }
    access_log  /home/wwwlogs/django_access.log;
    error_log  /home/wwwlogs/django_error.log;
}
vim /etc/nginx/nginx.conf  # 修改nginx配置文件,加入django.conf

在 include /etc/nginx/conf.d/*.conf; 下面添加一行

include /home/django_project/django.conf;

nginx -t  # 检查配置是否有错误
service nginx restart  # 重启使配置生效

安装mysql

apt install mysql-server
apt install mysql-client
apt install libmysqlclient-dev
pip3 install pymysql
设置mysql远程连接(可选)
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;   # 这里数据库root用户的密码为root
exit
service mysql restart

修改django默认配置

修改语言和时区
cd /home/django_project/django_project
vim settings.py

修改成这样

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

修改默认数据库类型为mysql

修改 settings 中的 DATABASES,将

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

改为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            "init_command": "SET sql_mode='STRICT_TRANS_TABLES'", }
    }
}

需要先在mysql里面创建名为django_db的数据库,这里我的mysql用户名和密码都是root

python3 的话还需要进行如下修改

vim __init__.py  # 修改settings.py同目录下的__init__.py文件
import pymysql

pymysql.install_as_MySQLdb()

修改完默认数据库后,创建数据库表

python3 manage.py migrate
修改allowed_hosts
ALLOWED_HOSTS = ['*', ]

创建一个管理员账号
python3 manage.py createsuperuser

运行django

supervisorctl reload

浏览器访问 192.168.0.113

这边搭建在局域网的一台ubuntu虚拟机上,局域网ip为192.168.0.113

搭建成功


创建一个新的app

cd /home/django_project
python3 manage.py startapp django_app

在 settings 文件中的 INSTALLED_APPS 里注册这个 app

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值