win7+django1.11.4+python3.6.1部署到apache2.4.27服务器实现局域网访问
来源:互联网 发布:阿根廷04男篮名单 数据 编辑:程序博客网 时间:2024/05/20 13:36
由于导师的项目需要,本人需要做一个管理型的WEB应用,并将其布置到生产环境上,今天刚刚在个人电脑上部署了apache,连接同一个路由器的电脑均可实现局域网访问。本着分享的原则,写一写我的搭建过程。
服务器的搭建牵扯到python、mod_wsgi、apache。所以,在搭建之前,请明确你使用的版本是什么,版本不对有极大概率搭建失败。如下为我使用的各版本:
django1.11.4、python3.6.1 apche2.4.27、mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64、windows7(64位)
首先,假设你的django项目都已经写好了。数据、静态文件等都已经可以在django调试服务器中运行了。
这里先说明一下我的项目地址和apche地址:
apache: E:\Download\httpd-2.4.27-Win64-VC15\Apache24
项目地址:D:\newsite
1、apche2.4下载:
apache下载有源码和二进制文件,源码需要自行编译,大神可以尝试一下,小白们就选择二进制文件下载吧.apche官网:官网下载地址这是官网的下载地址,仔细看一下官网是不提供文件的,官网提供了用于windows的其他站点,经博主测试,有些站点无法下载,在这种情况下我们换个站点就行。博主所用下载地址:apche2.4 for windows(由于我们使用的是Python 所以无需关心VC版本)下载之后解压,如下图所示:
打开conf/httpd.conf 不建议用记事本打开 最好是带有搜索功能的如webstrom notepad++等打开。conf为configuration的缩写,即配置文件。
……ServerRoot "E:\Download\httpd-2.4.27-Win64-VC15\Apache24"……Listen 127.0.0.1:8089 #修改端口号……ServerName www.example.com:8089 ……DocumentRoot "E:\Download\httpd-2.4.27-Win64-VC15\Apache24\htdocs" #对应apche文件夹下的htdocs文件夹,以下同<Directory "E:\Download\httpd-2.4.27-Win64-VC15\Apache24\htdocs">……ScriptAlias /cgi-bin/ ""E:\Download\httpd-2.4.27-Win64-VC15\Apache24\cgi-bin\"……<Directory "E:\Download\httpd-2.4.27-Win64-VC15\Apache24\cgi-bin"> AllowOverride None Options None Require all granted</Directory>这里主要就是修改路径和端口,主要的目的是测试apche是否能够正常运行,如果你在启动apache的httpd.exe程序时一闪就没了,请检查这些配置。
启动bin/httpd.exe程序
通过浏览器访问127.0.0.1:8089
当网页出现 It works 则说明可以正常运行,若出现闪退则检查以上配置是否正常。
2、安装mod_wsgi
下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
选择相对应的版本。这里简单说一下 CP即CPython CP36对应Python3.6 CP34对应python3.4 其他类推 这里都是ap24的所以无需纠结,根据你的系统来选择时win32还是 win64版本。
下载完成之后我们得到一个whl文件,不像其他的教程中所说,解压之后得到的是两个文件夹而非.so文件。这里我们需要将下载下来的whl文件复制到你的Python目录下的script文件夹里。然后在script文件夹的空白处按住shift右键打开命令窗口输入如下:
pip install "mod_wsgi-4.5.15+ap24vc14-cp36-cp36m-win_amd64.whl"
进行安装,安装成功后继续:
mod_wsgi-express module-config
输出如下三行结果:
复制这三行结果(图片来源于其他教程)
3、配置apche和django
打开httpd.conf,在文档的最后部分添加如下代码(记得对应你的项目地址和apache地址)
#添加mod_wsgi.so模块LoadFile "d:/anaconda3_4.4.0/python36.dll"LoadModule wsgi_module "d:/anaconda3_4.4.0/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"WSGIPythonHome "d:/anaconda3_4.4.0"#指定项目的wsgi.py配置文件路径WSGIScriptAlias / d:/newsite/newsite/wsgi.py#指定项目目录WSGIPythonPath d:/newsite<Directory d:/newsite/newsite><Files wsgi.py> Require all granted</Files></Directory>#项目静态文件地址Alias /static D:/newsite/static<Directory D:/newsite/static> AllowOverride None Options None Require all granted</Directory>#项目media地址Alias /media D:/newsite/media<Directory D:/newsite/media> AllowOverride None Options None Require all granted</Directory>
然后设置Django的settings.py文件:
DEBUG = False TEMPLATE_DEBUG = False ALLOWED_HOSTS = ['*']重新启动apche的bin/httpd.exe程序,访问127.0.0.1:8089,返回的是you don't have permission to access......
当遇到这种问题的时候 在你的httpd.conf文件中搜索 denied(所有的denied都注释掉或者改为 granted)
将require all denied注释掉, 并加上 require allgranted 这里解释一下这两行代码的意思。require all denied即拒绝所有访问。这样任何人包括你自己都无法访问你的项目。require all granted 即接受所有访问。 你可以自行设置允许接受的访问地址。PS:All from all应该是老版本的apache了吧。新版本不知道有没有这一条语句。
然后再次重新启动httpd.exe,访问127.0.0.1:8089,即可显示你的django项目。如果还不行,打开apache目录下的logs/access、errors查看系统记录,它会指出httpd.conf中配置出现错误的代码行数,仔细看看再自行搜索一下解决方法即可。
4、设置局域网访问
经过以上步骤可以在本机上进行访问了,其他电脑依然无法访问我们的服务器,那么需要进行设置。
首先打开cmd命令窗口 输入ipconfig 得到你的局域网/本机ip地址,
然后再次打开httpd.conf文件,将之前设置过的Listen、servername改成:
Listen 你的IP地址:80......ServerName 你的IP地址:80Listen 你的IP地址:80......ServerName 你的IP地址:80即可,重新启动httpd.exe文件
会弹出防火墙选择窗口,选择允许访问网络即可。这样同一局域网下的其他电脑就可以访问你的网站了。如果不行,关闭防火墙或者查看文章结尾。
参考博客:
yingmutongxue的博客: 点击打开链接
MR.XYZ的博客:点击打开链接
- win7+django1.11.4+python3.6.1部署到apache2.4.27服务器实现局域网访问
- fedora20 下 django1.6+python3.3 部署到 wsgi 和apache2.4
- Django1.10+Apache2.4+mod_wsgi+python3.5部署
- windows64位下用apache2.4.29部署django1.11.7项目并使在局域网内可访问(mod_wsgi.so可下载)--超详细
- python3.6.1 django1.11.4 初探
- Django1.7+Apache2.4部署
- ubuntu python3.5 django1.8.5 apache2.4 wsgi mysql部署django项目
- Centos7+django1.11+apache2.4+mod_wsgi4.5+python3.6项目部署
- centos7+apache2.4+python3.6+django1.11
- win7系统访问局域网中的wamp服务器
- mac apache 服务器部署资源局域网访问
- ubuntu环境下python3-django部署到 apache2
- WIN, Apache2.2+Django1.6(Python2.7.5)+mod_wsgi 实现网站部署
- Centos7+apache+passenger+rails4.1.6部署的服务器实现局域网内部访问
- linux 部署Django + apache2 + python3
- apache2部署访问yaaw
- Python3.3.0+apache2.4.4+django1.5.4+mod_wsgi3.4安装
- CentOS7+Python3.4+Django1.6.5+Apache2.4+mod_wsgi4.2.7
- 字节对齐和位域
- POI创建及解析Excel
- Unable to connect to database server:specified database is invalid 错误修复方法
- Json格式
- 课程学习周记 第八周
- win7+django1.11.4+python3.6.1部署到apache2.4.27服务器实现局域网访问
- 【Machine Learning】笔记:Semi-supervised learning
- Unity2d组件 Sprite Renderer
- android Binder与AIDL
- 理解和使用systrace
- 高精度加法
- CSU 1810 Reverse (组合计数)
- 二级MySQL数据库程序设计考试大纲(2015年版)
- PAT1006. 换个格式输出整数 (15)