Windows+Apache环境下配置django框架 超详细

服务器Windows+Apache环境下配置python的django框架

1. 配置python

1. 安装python(服务器)

前往python官网下载
在这里插入图片描述

选择自己想要安装的版本
然后拉到最底下的files,点击下载
在这里插入图片描述

2.安装与程序相关的第三库(本地 —— 服务器)

在本地文件运行代码,生成需求库,去服务器安装

pip freeze > requirements.txt  // 命令生成需求库
pip install -r requirements.txt  // 安装第三方库
2.1 pip配置
  1. 一次性使用
    可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple
    例如:
pip install django-simpleui -i https://pypi.tuna.tsinghua.edu.cn/simple
  1. 永久修改

Linux & MacOS
在linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url 为国内镜像地址,内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

Windows

在windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,内容如下

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

3.克隆静态资源(本地)

python manage.py collectstatic  // 克隆静态资源

2. django配置

1.debug修改

debug 由True改为False

在这里插入图片描述

2. 跨域配置

安装第三方库

pip install django-cors-headers
INSTALLED_APPS = [
    'simpleui',  # admin后台的优化插件
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders',  # 重点
    'apps.gain',
    'apps.user',
    'apps.display',
    'apps.business',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',  # 添加cors,在第三行,位置不能改
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',  # 取消django自带的csrf
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# 在django的setting.py的MIDDLEWARE底下添加一下代码
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
    ''
)
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)
CORS_ALLOW_HEADERS = (
    'XMLHttpRequest',
    'X_FILENAME',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    'Pragma',
)

3. 配置数据库(MySQL)

我这里选用MySQL,大家可以自行选择数据库

3.1 下载安装MySQL

前往MySQL下载地址
选择对应版本下载
在这里插入图片描述
下载好后解压到D盘根目录(解压到哪个盘自己选择)需注意目录要英文的,不能有中文
在这里插入图片描述
然后在该目录下新建my.ini文件

[mysqld]
# 设置3306端口
port=3306

# 自定义设置mysql的安装目录,即解压mysql压缩包的目录
basedir=D:\mysql\mysql-8.0.20-winx64

# 自定义设置mysql数据库的数据存放目录
datadir=D:\mysql\mysql-8.0.20-winx64\mysqlData

# 允许最大连接数
max_connections=200

# 允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10

# 服务端使用的字符集默认为UTF8
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[client]
# 设置mysql客户端连接服务端时默认使用的端口和默认字符集
port=3306
default-character-set=utf8

以管理员身份打开cmd,进入D:\mysql\mysql-8.0.20-winx64\bin,输入下面命令,回车,进行初始化

mysqld --initialize-insecure --user=mysql // 初始化
mysqld install // 安装MySQL
mysqladmin -u root -p password // 修改密码
net start mysql // 启动MySQL
mysql -u root -p // 进入MySQL

3.2 安装MySQL管理工具SQLyog

我这里提供相应的软件,有需要的自行提取
链接:https://pan.baidu.com/s/1EJthxX1iMdv2oLodVOaLbA
提取码:1119

4. 安装mod_wsgi

4.1 下载mod_wsgi

进入mod_wsgi下载地址下载相应版本mod_wsgi Python的插件。
ap24vc14指apache版本,比如apache24, cp39指python3.9,win_adm64指操作系统为64位。(建议选择最新版本)
在这里插入图片描述

4.2 安装mod_wsgi

将下载的whl文件复制到python路径下的script文件夹下
打开cmd,输入代码

pip3 install "mod_wsgi-4.7.1-cp39-cp39-win_amd64.whl"

若显示Successful installed mod_wsgi-4.7.1再输入代码

mod_wsgi-express module-config

出现以下三行提示,这三行一定要复制下来,后面配置最重要的就是它了:

LoadFile "d:/python/python39.dll"
LoadModule wsgi_module "d:/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
WSGIPythonHome "d:/python"

至此,mod_wsgi安装成功。

5.安装配置Apache

5.1 下载Apache

进入下载地址,选择最新版下载
在这里插入图片描述
下载后得到一个压缩文件,直接解压缩,文件夹里的Apache24文件夹就是Apache服务器文件,不需要安装,直接将Apache24文件夹移动到你想放的位置。

5.2 创建Apache服务

打开cmd命令行(管理员),cd进入D:\Apache24\bin文件夹(此处根据自己实际Apache24文件夹所在位置为准),输入代码

httpd.exe -k install -n "apache2.4"  # apache2.4是所创建服务器名称,可更改。

出现successfully installed说明服务创建成功
若失败则是未安装相应的vc15的c++
我这里提供相应的下载软件,有需要的自行提取
链接:https://pan.baidu.com/s/14N9perC5CLxL8Mmn6CG5Aw
提取码:1120

创建成功后,进入D:\Apache24\bin,运行 ApacheMonitor.exe 启动服务。
打开浏览器,在地址栏输入 http://127.0.0.1/ 有页面表示成功

5.3 配置Apache

打开D:\Apache24\conf里的httpd.conf文件,在最底下添加上面下载mod_wsgi成功后的三行提示,并添加WSGIPythonPath E:/www/test # 设置工程路径

LoadFile "d:/python/python39.dll"
LoadModule wsgi_module "d:/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
WSGIPythonHome "d:/python"
WSGIPythonPath E:/www/test

# 开启gzip(压缩页面,提高反应速度)
取消mod_headers、mod_deflate的#
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
# 告诉 apache 对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE
# 压缩等级 9
DeflateCompressionLevel 9
#设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary

并 ctrl+f 寻找 httpd-vhosts,将它的#去掉
在这里插入图片描述
然后打开D:\Apache24\conf\extra的httpd-vhosts.conf文件,添加以下的代码

<VirtualHost *:80>
	DocumentRoot "E:/www/test" 
	# 网站名称
	ServerName test.com
	# 设置工程中的wsgi路径
	WSGIScriptAlias / E:/www/test/test/wsgi.py
	# 设置wsgi路径
	<Directory E:/www/test/test>
    <Files wsgi.py>
        Require all granted
    </Files>
	</Directory>
	# 设置静态文件路径
	Alias /static E:/www/test/test/static
	<Directory E:/www/test/test/static>  
	    AllowOverride None  
	    Options None  
	    Require all granted  
	</Directory> 
</VirtualHost>

打开C:\Windows\System32\drivers\etc里的hosts文件,添加127.0.0.1 test.com
最后重启Apache,打开自己的网站名称就可以了

6. 服务器配置

apache 运行超过2个django项目(Python版本在3.8及以上)

如果多个 Django 站点运行在同一 mod_wsgi 进程,它们会共用最先启动的站点配置。能通过以下修改改变行为:
编辑wsgi.py:
把
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")
修改为
os.environ["DJANGO_SETTINGS_MODULE"] = "{{ project_name }}.settings"
重启apache即可

7.快速安装MySQL和apache(推荐)

7.1 安装PHP study 下载地址

下载界面

点击下载,该软件会自动安装apache和MySQL

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值