Django上线部署

  1. 修改配置
  2. 安装nginx
  3. 安装mysql
  4. 安装虚拟环境
  5. 安装uwsgi
  6. 安装vnc
  7. 配置静态文件
  8. Django上线部署流程

1、修改配置

# prod.py
DEBUG=True			# 改成 True
ALLOWED_HOSTS = ['*']			# 改成*或者服务器ip地址

# wsgi.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'autotest.settings.prod')			# 改成prod

# manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'autotest.settings.prod')			# 改成prod

2、安装nginx

nginx download url:http://nginx.org/en/download.html
1. 去网页下载相应版本安装
> wget http://nginx.org/download/nginx-1.20.2.tar.gz
> tar -zxvf nginx-1.20.2.tar.gz
> cd nginx-1.20.2/
> ./configure --prefix=/usr/local/nginx
> make && sudo make install
> sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
> cd ..
> rm -rf nginx-1.20.2*
> sudo nginx

2. 常用指令
启动:nginx
停止:nginx -s stop
重启:nginx -s reload

3. 配置文件
安装路径下的:conf/nginx.conf
worker_processes  1;				
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
	
	# 没增加一个监测对象就添加一个server {}
    server {											
        listen       8000;			# 监听端口
        server_name  localhost;			# 域名
        charset utf-8;			# 编码
        location / {
	    include uwsgi_params;			# 配置uwsgi信息
	    uwsgi_pass 127.0.0.1:8808;			# 地址
            uwsgi_param UWSGI_SCRIPT test.wsgi;			# wsgi位置
            uwsgi_param UWSGI_CHDIR  /home/wukn/test;			# 项目路径
        }
		location /static {			# 配置静态文件
			alias /home/wukn/test/static;			# 静态文件位置
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
		}

}

3、安装mysql

ubuntu 20.04
1. 安装server
sudo apt-get update
sudo apt-get install mysql-server

2. 设置密码及安全配置
sudo mysql_secure_installation
配置项,如下所示
	New password: (输入密码)
	Re-enter new password: (重复输入)
	Remove anonymous users? (Press y|Y for Yes, any other key for No) : N (选择N,不删除匿名用户)
	Disallow root login remotely? (Press y|Y for Yes, any other key for No) : N (选择N,允许root远程连接)
	Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N (选择N,不删除test数据库)
	Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y (选择Y,修改权限立即生效)

3. 检测服务
systemctl status mysql.service

4. 配置允许远程访问
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf #找到 bind-address 修改值为 0.0.0.0(如果需要远程访问)
sudo /etc/init.d/mysql restart #重启mysql

5. 设置权限与密码
sudo mysql				# 登入mysql
mysql>use mysql;		# 切换数据库

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; 	# 使用mysql_native_password修改加密规则
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER; 		# 更新一下用户的密码
mysql> UPDATE user SET host = '%' WHERE user = 'root'; 		# 允许远程访问

mysql> CREATE DATABASE auto;				# 创建数据库
mysql> CREATE USER 'www' @'%' IDENTIFIED WITH mysql_native_password BY 'www123?';		# 创建用户
mysql> GRANT ALL PRIVILEGES ON autoneo.* TO 'www'@'%' WITH GRANT OPTION;				# 授权用户指定数据库
mysql>flush privileges;  	#刷新cache中配置 刷新权限
mysql>quit;			# 退出

4、安装虚拟环境

1. 安装包
pip3 install virtualenv
pip3 install virtualenvwrapper

2. 创建软链接
sudo ln -s ~/.local/bin/virtualenv /usr/bin/virtualenv
sudo cp ~/.local/bin/virtualenvwrapper.sh /usr/local/bin/virtualenvwrapper.sh

3. 配置文件
在~/.bash_profile最下面添加下面两行代码
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

4. 更新配置
source ~/.bash_profile

5. 常用指令
创建虚拟环境:mkvirtualenv name		# name:虚拟环境名称
	-p python2.7 		# 指定python版本
查看已有的虚拟环境:workon
切换虚拟环境:workon name			# name:虚拟环境名称
退出虚拟环境:deactivate
删除虚拟环境:rmvirtualenv name		# name:虚拟环境名称

5、安装uwsgi

pip3 install uwsgi

创建配置文件:xxx.xml
<uwsgi>
        <socket>127.0.0.1:8808</socket>			# 地址
        <chdir>/home/wukn/test</chdir>			# 项目路径
        <module>test.wsgi</module>				# wsgi位置
        <processes>4</processes>				# 进程数
        <daemonize>uwsgi.log</daemonize>		# 日志

</uwsgi>

启动uwsgi:uwsgi -x xxx.xml
杀死进程:sudo pkill -f uwsgi
查看进程:ps -ef | grep uwsgi

6、安装vnc

# ubuntu20.04
1. 安装
sudo apt remove vnc4server			# 删除之前的
sudo apt update			# 更新源
sudo apt install xserver-xorg-core			# 安装
sudo apt install tigervnc-standalone-server tigervnc-xorg-extension tigervnc-viewer -y			# 安装

2. 设置密码
vncpasswd			# 设置密码,按提示操作

3. 创建启动文件
vi ~/.vnc/xstartup			# 打开文件添加以下内容后保存退出
#!/bin/sh
# Start Gnome 3 Desktop 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

4. 加权
sudo chmod 777 ~/.vnc/xstartup

5. 启动
vncserver :1 -localhost no -geometry 1680x1050 -alwaysshared 		# 冒号后面的表示端口最后一位,1表示5901,2表示5902...

6. 其他命令
pgrep Xtigervnc			# 获得进程id
ss -tulpn | egrep -i 'vnc|590'		# 查看进程
vncserver -kill :1 			# 杀死进程

7、配置静态文件

1. 在项目根目录创建static文件夹
mkdir static

2. 收集静态文件
python3 manage.py collectstatic

3. 在配置文件内配置以下信息
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_PATH, "static")

8、Django上线部署流程

1. 下载代码
git clone xxx

2. 安装虚拟环境
见#4

3. 安装mysql
见#3

4. 安装python包
pip install -r requirement.txt

5. 配置静态文件
见#7

6. 试运行,检测错误,修复错误
见#1

7. 安装uwsgi(虚拟环境和host都装)
见#5

8. 安装nginx
见#2

9. 启动uwsgi或nginx

你可能感兴趣的:(Django,django)