Apache2.4+django4.0+python3.8+Windows11后端接口部署指南

6 篇文章 4 订阅

目录

前言

二、配置基础apache

三、安装配置mod_wsgi库

三、配置django环境到apache

四、给apache配置python环境

五、重启apach


前言

参考各种关于apache服务器部署django的博客,发现很多博客都写的很片面,而且很多都有错误,照着配置根本部署不了,经过各种调试后最终被搞定,所以写下该博客,希望能帮助到需要的人。


一、Apache的安装

进入 Apache官网下载页面下载windows版本的Apache ,这里就会出现第一个坑,apache的编译VS版本必须和python的编译VS版本一致,我们可以在命令行调用python端口

 我们可以看到一个数字MSC V.1928,这个就是我当前版本python对应的vs版本,带入下面代码表

Visual C++ version	_MSC_VER
Visual C++ 4.x	1000
Visual C++ 5	1100
Visual C++ 6	1200
Visual C++ .NET	1300
Visual C++ .NET 2003	1310
Visual C++ 2005 (8.0)	1400
Visual C++ 2008 (9.0)	1500
Visual C++ 2010 (10.0)	1600
Visual C++ 2012 (11.0)	1700
Visual C++ 2013 (12.0)	1800
Visual C++ 2015 (14.0)	1900
Visual C++ 2017 (15.0)	1910
Visual C++ 2017 (15.3)	1911
Visual C++ 2017 (15.5)	1912
Visual C++ 2017 (15.6)	1913
Visual C++ 2017 (15.7)	1914
Visual C++ 2017 (15.8)	1915
Visual C++ 2017 (15.9)	1916
Visual C++ 2019 RTW (16.0)	1920
Visual C++ 2019 (16.1)	1921
Visual C++ 2019 (16.2)	1922
Visual C++ 2019 (16.3)	1923
Visual C++ 2019 (16.4)	1924
Visual C++ 2019 (16.5)	1925
Visual C++ 2019 (16.6)	1926
Visual C++ 2019 (16.7)	1927
Visual C++ 2019 (16.8)	1928

可以发现1928对应的vs16,那么我们必须要下载vs16的apche


 同时也需要注意你的python版本是32位还是64位,并下载对应的版本。

下载完成后,解压到你要部署服务器的文件夹。你要部署服务器的电脑磁盘下建立一个英文目录,注意千万别用中文目录。

 最好是放在和django文件同级目录

二、配置基础apache

配置该文件是最核心的,打开conf文件夹内的httpd.conf文件,对以下几个地方配置:

1、32行配置apache主目录,前面两个端口号是apache本地运行需要的端口,如何和本地端口有冲突,注意修改。

 2、67行监听端口号配置,注意选择的端口就是你后端的运行端口

 3、服务配置256行,配置服务,这里面的地址就是后端服务的发布地址

4、 配置完成后,将Apache下的bin目录添加到系统环境变量

 5、安装apache,在cmd命令行输入httpd -k install

 如图所示,即代表服务器安装成功

6、启动服务器

打开bin目录下的ApacheMonitor.exe

 

 点击start则启动服务,服务器启动成功后,可以按在浏览器中输入的ip地址进行访问apache主页

 如果到这一步都没问题书面apache已经安装完毕,我们需要进入django进行配置

三、安装配置mod_wsgi库

该库会让django的wsgi和apache进行联通,所以该库的版本尤为重要,需要对应apache和python版本,在http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi网站下载mod_wsgi.whl文件

 4.7.1版本后默认支持apacheV16和V17两个版本,所以我们只需要关系python版本一致性,cp后面就代表python版本,还需要注意64位和32位的对应关系。

下载完成后将该whl文件解压至python环境的Scripts目录下

如果是虚拟环境,则需要先进入虚拟环境,带venv则代表进入虚拟环境。 

 cd进入Scripts并pip安装该库

 出现successful则说明安装成功

输入mod_wsgi-express module-config

 记录下这三行配置,下一步使用

三、配置django环境到apache

将mod_wsgi下载后的config信息,复制粘贴到apache中的httpd.conf文件,

 并加入WSGIApplicationGroup %{GLOBAL}

LoadFile "C:/Users/Administrator/AppData/Local/Programs/Python/Python38/python38.dll"
LoadModule wsgi_module "g:/django1/venv/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
WSGIPythonHome "g:/django1/venv"

WSGIApplicationGroup %{GLOBAL}

然后输入

#设置django工程中的wsgi路径
WSGIScriptAlias / G:/django1/django1/wsgi.py
 
#设置django工程路径
WSGIPythonPath G:/django1
 
#设置wsgi的文件夹路径
<Directory F:/django1/django1>
   <Files wsgi.py>
       Require all granted
    </Files>
</Directory>
 
#设置静态文件路径
Alias /static G:/django1/static
<Directory G:/django1/static>  
   AllowOverride None  
   Options None  
   Require all granted  
</Directory>
#设置媒体文件
Alias /media G:/django1/media
<Directory G:/django1/media>
    AllowOverride None  
    Options None  
    Require all granted
</Directory>

 然后在Apache24\conf\extra路径中的httpd-vhosts.conf设置django网络端口,这里的8080就是前面的监听端口,其他路径都是django路径

<VirtualHost *:8080 >
    ServerAdmin admin@example.com
	WSGIScriptAlias / G:/django1/django1/wsgi.py
    DocumentRoot G:/django1/django1
    <Directory "G:/django1">
        Require all granted
    </Directory>
</VirtualHost>

四、给apache配置python环境

很多同学忘记这apache启动不了就是因为启用了虚拟环境,让apache找不到python路径,所以需要在系统环境变量中配置pythonhome和pythonpath

 注意,这里的路径为mod_wsgi-express module-config后的loadfile的python主路径

五、重启apache

 点击重启完成配置,在Apache24\logs路径中的可以查看各种日志,如果发现报错,查看对应日志修改错误即可。

重新请求地址,django后端部署成功 

注意django正式上线时,需要把debug换成FALSE。

DEBUG = False
ALLOWED_HOSTS = ['*']

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是基于 Ubuntu 20.04 操作系统的 nginx+uwsgi+docker+django4.0+python3.9+mysql8.0 部署步骤: 1. 首先安装必要的软件和依赖: ``` sudo apt-get update sudo apt-get install -y git python3-pip python3-dev python3-venv build-essential libssl-dev libffi-dev nginx docker.io docker-compose mysql-server ``` 2. 创建并激活 Python 虚拟环境: ``` python3 -m venv myprojectenv source myprojectenv/bin/activate ``` 3. 安装 Django 和 uWSGI: ``` pip install django==4.0 uwsgi ``` 4. 创建 Django 项目: ``` django-admin startproject myproject cd myproject ``` 5. 配置 Django 数据库设置: 打开 `myproject/settings.py` 文件,在 `DATABASES` 中添加以下内容: ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'myprojectdb', 'USER': 'myprojectuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '3306', } } ``` 6. 创建 MySQL 数据库和用户: 登录 MySQL: ``` sudo mysql ``` 创建数据库: ``` CREATE DATABASE myprojectdb CHARACTER SET UTF8; ``` 创建用户: ``` CREATE USER 'myprojectuser'@'localhost' IDENTIFIED BY 'mypassword'; ``` 授权用户访问数据库: ``` GRANT ALL PRIVILEGES ON myprojectdb.* TO 'myprojectuser'@'localhost'; ``` 刷新权限: ``` FLUSH PRIVILEGES; ``` 退出 MySQL: ``` exit ``` 7. 测试 Django 项目是否能够正常运行: ``` python manage.py runserver ``` 在浏览器中访问 `http://localhost:8000`,如果能够正常显示 Django 的欢迎页面,说明 Django 项目已经成功搭建。 8. 配置 uWSGI: 创建 `myproject/uwsgi.ini` 文件,添加以下内容: ``` [uwsgi] socket = :8001 chdir = /path/to/myproject module = myproject.wsgi:application master = true pidfile = /tmp/myproject-master.pid processes = 4 threads = 2 vacuum = true max-requests = 1000 harakiri = 60 ``` 9. 启动 uWSGI: ``` uwsgi --ini myproject/uwsgi.ini ``` 10. 配置 nginx: 创建 `/etc/nginx/sites-available/myproject` 文件,添加以下内容: ``` server { listen 80; server_name myproject.com; access_log /var/log/nginx/myproject.access.log; error_log /var/log/nginx/myproject.error.log; client_max_body_size 20M; location /static/ { alias /path/to/myproject/static/; } location /media/ { alias /path/to/myproject/media/; } location / { uwsgi_pass 127.0.0.1:8001; include /etc/nginx/uwsgi_params; } } ``` 11. 创建软链接: ``` sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/ ``` 12. 测试 nginx 配置是否正确: ``` sudo nginx -t ``` 如果没有错误,重启 nginx: ``` sudo systemctl restart nginx ``` 13. 创建 Dockerfile: 在 Django 项目根目录下创建 `Dockerfile` 文件,添加以下内容: ``` FROM python:3.9 RUN apt-get update \ && apt-get install -y nginx \ && rm -rf /var/lib/apt/lists/* RUN pip install uwsgi COPY ./requirements.txt /app/requirements.txt RUN pip install -r /app/requirements.txt COPY . /app WORKDIR /app RUN python manage.py collectstatic --noinput COPY ./myproject-nginx.conf /etc/nginx/sites-available/myproject RUN ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/ RUN rm /etc/nginx/sites-enabled/default EXPOSE 80 CMD service nginx start && uwsgi --ini /app/uwsgi.ini ``` 14. 创建 docker-compose.yml 文件: 在 Django 项目根目录下创建 `docker-compose.yml` 文件,添加以下内容: ``` version: '3' services: web: build: . ports: - "80:80" depends_on: - db volumes: - ./static:/app/static - ./media:/app/media environment: - DB_HOST=db - DB_NAME=myprojectdb - DB_USER=myprojectuser - DB_PASSWORD=mypassword db: image: mysql:8.0 volumes: - db_data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=rootpassword - MYSQL_DATABASE=myprojectdb - MYSQL_USER=myprojectuser - MYSQL_PASSWORD=mypassword volumes: db_data: ``` 15. 构建和运行 Docker 容器: ``` sudo docker-compose up --build ``` 16. 测试 Django 项目是否能够正常运行: 在浏览器中访问 `http://localhost`,如果能够正常显示 Django 的欢迎页面,说明 Django 项目已经成功部署到 Docker 容器中。 至此,nginx+uwsgi+docker+django4.0+python3.9+mysql8.0 部署完成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的悟空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值