window server 2012+apache+django
一、apache下载安装
https://www.apachelounge.com/download/VC10/
***注意***
本人用的是window server 2012 64位版本云服务器,但安装的是32位的apache和python(因使用第三方服务必须是32)
一定要根据所使用的python来下载对应的apache,否则将来配置django后无法启动,提示无法加载python36.dll库(无法加载LoadFile "c:/python/python36.dll",这个后面再说),记住根据要使用的python来选择对应的apache即可。
Syntax error on line 533 of D:/python web/Apache24/Apache24/conf/httpd.conf: Cannot load c:/users/wurk/appdata/local/programs/python/python36-32/python36.dll into server:%1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32\xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3
下载后解压到自己的目录
二、下载对应的Visual C++ 2010 SP1 Redistributable Package依赖包,apache下载页面中也有加重的文字说明
这里本人选择的都是win32的,然后双击安装完成依赖库安装。
三、python和django的安装,这里不多说明自行查询
四、下载安装wsgi的apache标准接口模块,同样要注意python版本和位数的匹配
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
安装
pip install mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win32.whl
虚拟环境:pipenv install mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win32.whl
四、apache配置修改conf/httpd.conf(这里重点配置,五是另外的基本配置,但都是操作httpd.conf文件)
#添加mod_wsgi.so模块
#下面的三行信息是在你的python环境下执行mod_wsgi-express module-config 命令后得到。注意:如果你是在虚拟环境那就必须切换到虚拟环境下执行该命令
LoadFile "c:/python/python36.dll"
LoadModule wsgi_module "c:/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd"
WSGIPythonHome "c:/python"
#指定项目的wsgi.py配置文件路径,这个py文件是在你的Django项目中
WSGIScriptAlias / C:/www/klinePro/klinePro/wsgi.py
#指定项目目录,即你的Django项目路径
WSGIPythonPath C:/www/klinePro
<Directory C:/www/klinePro>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
#项目静态文件地址, Django项目中静态文件的路径
Alias /static C:/www/klinePro/static
<Directory C:/www/klinePro/static>
AllowOverride None
Options None
Require all granted
</Directory>
五、apache的基本配置项
#执行程序根目录,解压包的bin目录所在路径
ServerRoot "C:/wamp/Apache24"
#监听端口,默认是80,有时冲突可更换为其它
Listen 8080
#KeepAlive 在HTTP 1.0中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTTP请求
KeepAlive On
#MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了
MaxKeepAliveRequests 10
#KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接
KeepAliveTimeout 15
#ServerAdmin设置Apache服务器管理员的email地址
ServerAdmin admin@163.com
#ServerName设置Apache服务器的主机名,要保证你的域名解析到了服务器IP
ServerName 我自己的网站域名.com
六、django的一些基本配置说明
以上都配置好后,django中的配置要让外网可以访问
DEBUG = False
ALLOWED_HOSTS = ['*'] #此处的 '*' 代表允许所有地址访问
#静态文件的地址要配置,它与第四步中的apache配置是有关系的
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
七、apache日常使用额外说明
解压apache目录后,最好在系统环境变量中配置一下执行文件路径,方便在命令行使用
httpd -k install -n “服务名” (不加参数,默认Apache2.4)
运行apache:net start apache
停止apache:net stop apache
删除apache:sc delete apache