如何部署Django并实现运行

nginx+uwsgi+Django安装

1.介绍

linux版本Centos7.5
uwsgi-2.0.20
Django-3.2.9
python3.9.0
nginx-1.16.0

2.安装nginx

安装nginx的连接可以参考这个:https://blog.csdn.net/weixin_44217786/article/details/121608813

3.安装uwsgi

下载官网:https://uwsgi-docs.readthedocs.io/en/latest/Download.html
注意这里面就选择最近发布的稳定版本。之前的版本可能会出现问题,这里懂得都懂。不懂的前面有一个坑等着你呢!

如何部署Django并实现运行
然后直接安装:
python3 setup.py install

注意!注意!一定要注意!如果你使用了虚拟环境,那么你必须使用虚拟环境的Python解释器安装uWSGI!!!
安装uWSGI可以参考:https://www.runoob.com/python3/python-uwsgi.html
安装完后尝试一下运行 uwsgi

如何部署Django并实现运行
出现这个说明离成功不远了。
如果出现:
[uwsgi: command not found]

需要建立一个软连接

ln -s /usr/local/python3.7.0/bin/uwsgi /usr/bin/uwsgi
/usr/local/python3.7.0/bin/uwsgi  ---这个是安装python的路径,根据自己的实际目录来创

建这时候进入目录,自己创建一个foobar.py的一个文件

如何部署Django并实现运行
添加下面几行代码就可以了
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

然后直接启动:

uwsgi --http :9090 --wsgi-file foobar.py

如何部署Django并实现运行

这时候使用ip+端口访问打印出Hello World则uwsgi安装成功。

如何部署Django并实现运行

4.安装Django

首先安装python这里使用的是python3.9.0的版本,
安装连接可以参考:https://blog.csdn.net/weixin_44217786/article/details/121614825
下载源码包: https://www.djangoproject.com/download/

tar xzvf Django-3.2.9.tar.gz
cd Django-3.2.9
python setup.py install

然后使用python查看django是否安装成功

如何部署Django并实现运行

到这一步是不是很激动,准备好部署我们的Django项目了,然后我们开始创建一个项目

Django-admin startproject apptest

然后呢?报错了如下:

DjangoTraceback (most recent call last):
      File "/usr/local/python3/lib/python3.9/site-packages/django/bin/django-admin.py", line 2, in <module>
        from django.core import management
    ImportError: No module named django.core

这时候回想明明我已经安装了Django,用python也能查看为什么会报错呢?这里的问题可能只会有刚学习部署的才会出现吧!我就是刚接触配置的。然后推断一下那肯定是找不到我们安装django的命令,那就给他加上一个软连接吧。

ln -s /usr/local/python3/bin/django-admin /usr/local/bin/django-admin
ln -s /usr/local/python3/bin/django-admin.py /usr/local/bin/django-admin.py

提示一下,特别注意软连接的添加,不然后面遇到的问题会很多。然后继续使用Django创建app,这里又出现问题了。真的是一波未过一波又来。当时是崩溃的。

python manage.py startapp apptest

报错了????

Django-django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17)

说明我们的版本太低升级一下就可以了。

下载源码:wget https://www.sqlite.org/2021/sqlite-autoconf-3370000.tar.gz

    Tar -zxvf  sqlite-autoconf-3290000.tar.gz
    ./configure --prefix=/usr/local
    Make && make install

    mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
    ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3

    vim ~/.bashrc
    export LD_LIBRARY_PATH="/usr/local/lib"
    source ~/.bashrc

查看版本是否更换成最新安装的版本。

如何部署Django并实现运行
 python manage.py runserver 0.0.0.0:8000

如何部署Django并实现运行
然后又出现了这个问题确实挺无语了,然后继续解决吧!!
可以参考这个连接去处理:https://www.jianshu.com/p/e81d59ccb80d

这里有一个问题,不知有人遇到没有,虽然会出现这个错误,但是并不影响项目的部署。然后这个地方我直接是忽略了,没有处理这个问题。

5.配置nginx和上传项目包

配置nginx

http {

    server {
        listen       80;

        listen [::]:80;
        server_name
        location / {
            include   uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
        }
}

这里我们用uwsgi启动的是8000端口,我们将他映射在80端口上访问
这里注意一下里面的标点符号是分号结尾,然后配置完一下最好使用
./nginx -t 测试一下配置文件是否有问题

[root@VM-0-17-centos sbin]
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

出现这个成功的标识,就可以放心的启动nginx了。
接下来上传项目包到你定义的文件夹下,然后进去项目根目录创建一个 .ini的启动文件

[uwsgi]
chdir=/root/django-project/apptest
module=apptest.wsgi:application
socket=127.0.0.1:8000
master=true
daemonize = /root/django-project/apptest/run.log
disable-logging = true

然后保存启动

uwsgi uwsgi.ini

然后访问ip和自己设定的路径

如何部署Django并实现运行
到这就算成功了。

6.总结:

1.安装Python的时候要注意更换掉系统自带的Python版本。
2.django的安装一定要创建软连接,不然无法使用django-admin
3.最重要的是就版本之间的问题,遇到了只能算自己倒霉了。

Original: https://blog.csdn.net/weixin_44217786/article/details/121651158
Author: weixin_44217786
Title: 如何部署Django并实现运行

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/734949/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球