Wampserver Apache 部署 Django 并绑定域名

写在前面的话

写本篇文章的目的是为了记录填坑及操作过程;
如果你也遇到此类问题,不妨按照下面的方法试试吧,操作不对的地方请指正。

环境:

  • Windows:Win 10
  • Python:3.6 x64
  • Apache:2.4 x64
  • Django:2.1.4
  • virtualenv 16.7.7

注意:这里我遇到一个坑,32位的python无法和64位的apache搭配运行

1. 安装 virtualenv 虚拟环境

为什么不用 python 自带的虚拟环境呢,因为各种毛病,总之就是 apache 起不来,很麻烦,安装这个虚拟环境轻松搞定

  1. Linux/MacOS 下安装 (virtualenvwrapper 使得 virtualenv 变得更好用,所以我们一起安装了):
(sudo) pip install virtualenv virtualenvwrapper

修改~/.bash_profile或其它环境变量相关文件(如 .bashrc 或用 ZSH 之后的 .zshrc),添加以下语句

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh

修改后使之立即生效(也可以重启终端使之生效):

source ~/.bash_profile
  1. Windows 下安装:
pip install virtualenv virtualenvwrapper-win

【可选】Windows下默认虚拟环境是放在用户名下面的Envs中的,与桌面,我的文档,下载等文件夹在一块的。
更改方法:计算机,属性,高级系统设置,环境变量,变量名:WORKON_HOME,变量值:D:\Envs,确定后请到D盘添加Envs文件夹。注:添加环境变量后需要重启Dos窗口,否则不生效

2. 使用刚刚安装好的虚拟环境管理器创建一个环

我这里将它命名为 my_web

mkvirtualenv my_web

等创建完成后打开编辑器指定虚拟环境即可。

3. 安装Django:

pip install Django==2.1.4

4. 安装 mod_wsgi:

mod_wsgi 模块下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

请选择对应的版本,如:

mod_wsgi‑4.5.24+ap24vc14‑cp36‑cp36m‑win_amd64.whl
此处的cp36中的36即为Python的版本(3.6),win_amd64则为64位的

下载完后进入虚拟环境并切换到下载保存的路径运行安装命令:

pip install mod_wsgi‑4.5.24+ap24vc14‑cp36‑cp36m‑win_amd64.whl

注:此处的 mod_wsgi-4.5.24+ap24vc10-cp34-cp34m-win_amd64.whl 为下载好的文件名称

安装过程中如果提示 mod_wsgi-4.5.24+ap24vc10-cp34-cp34m-win_amd64.whl is not a supported wheel on this platform. 则说明下载的文件与你的 python 不对应,请重新选择对应的版本进行安装。

一切顺利的话进入虚拟环境目录并执行:

mod_wsgi-express module-config

执行上述命令后在Dos窗口会有三行代码出现,如:

LoadFile "d:/python/36/python36.dll"
LoadModule wsgi_module "d:/envs/my_web/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "d:/envs/my_web"

5. 配置 Apache

# 添加 mod_wsgi.so 模块
LoadFile "d:/python/36/python36.dll"
LoadModule wsgi_module "d:/envs/my_web/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "d:/envs/my_web"

# 指定项目路径
WSGIPythonPath "d:/python/app/my_django"

将上面内容复制到 Apache 的 httpd.conf 文件末尾处。

6. 配置站点参考代码:

<VirtualHost *:80>
	ServerName domain.cn
	ServerAlias localhost
	
	# 指定项目的wsgi.py配置文件路径    
	WSGIScriptAlias / "d:/python/app/my_django/my_django/wsgi.py"

	<Directory "d:/python/app/my_django/my_django">  
		<Files wsgi.py>
			Require all granted  
		</Files>  
	</Directory>  
	  
	Alias /static "d:/python/app/my_django/static"
	<Directory "d:/python/app/my_django/static">   
		Require all granted
	</Directory>
</VirtualHost>
  1. 将上面的代码修改成你的路径和域名后复制到 httpd-vhosts.conf 中。

  2. 打开 django 项目 setting 配置:

# 关闭DEBUG模式
DEBUG = False

# 允许访问的ip 也可以用'*'代表不受限制
ALLOWED_HOSTS = ['*']
  1. 重启Apache,在浏览器中输入你配置的域名即可。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值