您的位置:首页 > 运维架构 > Apache

Django之Windows系统网站部署(Apache+mod_wsgi+VC14)

2017-08-03 00:00 417 查看
##安装Apache环境

进入Apache的官方网站:http://httpd.apache.org 进入Apache2.4的下载页面: https://www.apachehaus.com/cgi-bin/download.plx

根据你的系统下载相应的版本,但是要知道版本需要VC编译支持,下载的时候看清楚需要安装的VC版本,本例程,选用的是:Apache 2.4.27 x64 VC14版本。









点击右方小图标进项下载。下载完成后将其中的Apache24进行解压,解压位置不要使用中文名,本例子放在了C:\Apache24中,

cd到当前文件夹下的bin中运行命令如下:

cd C:\Apache24\bin

httpd -k install

结果会出现

ServerRoot must be a valid directory

的错误,这是因为conf文件中httpd.conf的配置路径有问题:

Define SRVROOT "/Apache24"  #这是默认的

ServerRoot "${SRVROOT}"

# 需要修改为:

Define SRVROOT "C:\Apache24"  #修改到此解压目录下

ServerRoot "${SRVROOT}"

再次运行:

httpd -k install

The "Apache2.4" is successfuly installed .

Testing httpd.conf

Error: reported here must be corrected before the service can be started.

此时Apache安装完成,启动Apache

cd C:\Apache24\bin

net start Apache2.4

Apache2.4 服务正在启动...

Apache2.4 服务启动成功。

在浏览器中打开http://localhost/ 即看到Apache官网代表启动成功

常见问题有:

端口设置有冲突,Apache默认使用的端口是80端口,如果不行可以尝试使用其他端口,只需要在httpd.conf中修改Listen选项

#Listen 12.34.56.78:80

Listen 80 # 修改为其他选项Listen 8089 打开 http://localhost:8089  即可

netstat -aon|findstr "49157" # 用来查看端口的应用情况

tasklist|findstr "2720",#查看是哪个进程或者程序占用了2720端口 记下PID在进程里进行关闭即可

taskkill /f /t /im Tencentdl.exe #结束Tencentdl.exe进程

##安装VC14

https://www.microsoft.com/en-us/download/details.aspx?id=48145 下载相应的VC,双击安装即可。如需卸载可用安装包进行卸载。

##配置mod_wsgi文件

mod_wsgi是windows平台,apache2下的插件,用于连接python,如果和Apache不匹配的话容易出现各种各样的问题。这一点很让人头疼。

根据此例子安装的Apache2.4(尽量使用此版本,2.2的话安装mod_wsgi极容易出现问题)

下载地址: 链接: https://pan.baidu.com/s/1eR7JijK 密码: ubpz 将文件中的so文件提取出来,还是根据不同系统选用不同的so文件,这里选择Apache24 V9 x64 py2.7版本的so文件mod_wsgi-py27-VC9.so。将此文件复制到C:\Apache\moduels\下

django项目中的wsgi.py文件在项目保持项目创建时候的样子,如果不存在在项目的setting.py同级文件夹中创建wsgi.py文件如下:

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myweb.settings")

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()

在setting.py文件中设置

ALLOWED_HOSTS=["*"]

###对httpd.conf文件修改

#添加mod_wsgi.so 模块

LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so

#指定Django项目的wsgi.py配置文件路径 我的是:

WSGIScriptAlias / C:\website\website\wsgi.py

#指定项目路径

WSGIPythonPath C:\website

<Directory C:\website\website>

<Files wsgi.py>

Require all granted

</Files>

</Directory>

#修改documentroot至Django项目路径

DocumentRoot "${SRVROOT}/htdocs"# 默认设置

<Directory "${SRVROOT}/htdocs"># 默认设置

#修改为:

DocumentRoot "C:\website"

<Directory "C:\website">

关闭Django的Debug:在Django项目的setting.py文件中修改:

#设置Debug

Debug=False

这时候Django的静态文件无法使用需要Apache配置,还是修改httpd.conf

#添加下面语句

Alias /static/ C:\website\static\

<Directory C:\website\static\>

Require all granted

</Directory>

重启Apache

在C:\Apache24\bin\中运行apache-monitor.exe,点击restar即可



在浏览器中输入http://localhost:8089/ 进行查看

##Enjoy it
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息