1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Django上线部署 2(nginx+uwsgi上线生鲜购物商城)

Django上线部署 2(nginx+uwsgi上线生鲜购物商城)

时间:2024-06-14 23:22:24

相关推荐

Django上线部署 2(nginx+uwsgi上线生鲜购物商城)

文章目录

写在前面1、准备工作1.1、连接服务器1.2、安装虚拟环境1.3、安装mysql1.4、安装reids1.5、上传项目 2、nginx配置静态资源3、uwsgi对接动态资源3.1、测试uwsgi3.2、在虚拟环境使用uwsgi 4、在服务器创建数据库4.1、导出windows里的数据库4.2、在windows远端连接Linux的数据库

写在前面

nginx安装:/linux/nginx-install-setup.html

nginx教程:/a__int__/article/details/105343245

1、准备工作

1.1、连接服务器

这里我的服务器是centos系统、连接工具xshell 5

xsell连接服务器

(centos下载工具是yum、乌班图下载工具是apt)乌班图例:

更新源

安装python开发包

centos安装python3:/cosiray/p/9946401.html

1.2、安装虚拟环境

安装python虚拟环境

pip3 install virtualenvwrapper

在/root/yh/ 下创建虚拟环境

mkdir .virtualenvs

找到激活虚拟环境的文件

find / -name virtualenvwrapper.sh

复制该路径,进入/root/ 目录下,配置环境变量

vim .bashrc

# Python VirtualEnvexport WORKON_HOME=/root/.virtualenvssource /usr/local/bin/virtualenvwrapper.shexport VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

激活环境变量:source .bashrc

这里如果提示这样的错误

可能是python安装路径不对,你可以:whereis python3,然后改成对应的目录

这里输入pip和pip3如果显示找不到了就重装一下

sudo yum -y install python-pip

pip install --upgrade pip

如果依然报错,有可能是虚拟环境版本不匹配,可以卸载了再重装

pip uninstall virtualenv

pip install virtualenv

创建虚拟环境django:mkvirtualenv django

指定python3:

1.3、安装mysql

安装mysql: yum install mysql-server

试试登录mysql:

1.4、安装reids

在root下。新建文件夹: mkdir software

进入该文件夹,并下载reids:wget http://download.redis.io/releases/redis-5.0.8.tar.gz

redis官网:https://redis.io/

解压并安装:

安装tcl:yum install tcl

测试:make test

如果提示缺少tcl错误,可重新make再make test

进入 utils文件夹

执行./install_sever.sh(中间出现的配置全部回车默认)

如果出现这个错误

这时应该手写redis-server的路径

进入src目录,测试redis

1.5、上传项目

进入我们写的项目,导出项目所有依赖:pip freeze > n.txt

打包

在服务器上安装上传工具

yum -y install lrzsz

这里我上传到/root/目录下:rz(上传文件指令)

上传完成后解压:这里我解压到/root/yh/django目录下

unzip FreshFoodStore.zip -d /root/yh/django

2、nginx配置静态资源

在/root/yh目录下新建my.conf文件

user root;worker_processes 1;error_log /root/yh/logs/error.log warn;pid /root/yh/logs/nginx.pid;events {worker_connections 1024;}http {include /usr/local/nginx/conf/mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 88;server_name localhost;root /root/yh/django;location /templates {alias /root/yh/django/templates;}}}

在yh目录下新建文件夹logs

在logs文件夹下新建文件error.log、nginx.pid

测试my.conf配置文件是否可用(在nginx安装目录下测试)

cd /usr/local/nginx/sbinsudo ./nginx -t -c /root/yh/my.conf

测试成功运行配置文件

sudo ./nginx -c /root/yh/my.conf

如果之前已经运过,可以重载

./nginx -s reload -c ~/yh/my.conf

查看是否成功运行:ps -ef|grep nginx

返回windows访问

这里如果访问失败可能是防火墙端口88未开放,参考:/a__int__/article/details/105343245

3、uwsgi对接动态资源

3.1、测试uwsgi

安装:pip3 install uwsgi

在下新建文件,内容如下:vim uwsgi.ini

[uwsgi]# nginx连接时# socket=0.0.0.0:888# 作为web服务器连接时http=0.0.0.0:888# 项目目录chdir=/root/yh/django# wsgi目录(相对路径)wsgi-file=django/wsgi.py# 进程processes=4# 每个进程里的线程threads=10# 是否开启多线程模式enable-threads=True# 是否开启接口master=True# 进程id存储文件pidfile=uwsgi.pid# 日志daemonize=uwsgi.log

查看防火墙的8888端口是否打开:firewall-cmd --list-port

开启8888端口:firewall-cmd --zone=public --add-port=8888/tcp --permanent

重启防火墙:firewall-cmd --reload

启动uwsgi.ini:uwsgi --ini /root/yh/uwsgi.ini

查看状态: ps -ef|grep uwsgi

3.2、在虚拟环境使用uwsgi

接下来在/root/目录下进入虚拟环境:workon django

安装项目所需依赖:pip install -r /root/n.txt(这里我依赖文件单独上传到root文件夹里了)

在虚拟环境安装一个uwsgi:pip install uwsgi

更改ini文件:

启动:uwsgi --ini /root/yh/uwsgi.ini

更改my.conf

测试my.conf

cd /usr/local/nginx/sbinsudo ./nginx -t -c /root/yh/my.conf

4、在服务器创建数据库

登录mysql,新建数据库

mysql -uroot -p

这一步出现错误参考:/Homewm/article/details/81628116

新建数据库:create database FreshFoodStore charset=utf8;

数据库名称须和项目setting里面保持一致

进入项目目录下: cd ~/yh/django

注意这一直在虚拟环境下

进入FreshFoodStore/ 修改settings.py

关闭debug

数据库名、用户名、密码,和服务器MySQL保持一致

迁移:python manage.py migrate

你可能会遇到这个错误提示:django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

修改方法:/yjh_SE007/article/details/105226617

你还可能遇到这个错误提示:"Can’t connect to MySQL server on ‘localhost’

这个错误可能是可能是端口改了,或者其他原因

4.1、导出windows里的数据库

windows:

4.2、在windows远端连接Linux的数据库

windows:

下载连接工具:/soft/204494.html

复制数据

运行

运行之前注意核对表名

重启uwsgi:

uwsgi --stop uwsgi.pid

uwsgi --ini /root/yh/uwsgi.ini

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。