服务器Windows+Apache环境下配置python的django框架
1. 配置python
1. 安装python(服务器)
前往python官网下载
选择自己想要安装的版本
然后拉到最底下的files,点击下载
2.安装与程序相关的第三库(本地 —— 服务器)
在本地文件运行代码,生成需求库,去服务器安装
pip freeze > requirements.txt // 命令生成需求库
pip install -r requirements.txt // 安装第三方库
2.1 pip配置
- 一次性使用
可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple
例如:
pip install django-simpleui -i https://pypi.tuna.tsinghua.edu.cn/simple
- 永久修改
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