一、软件准备
1.1 Python的下载与安装
见博客
链接: Python下载安装
1.2 Pycharm的下载与安装
见博客
链接: pycharm安装
1.3 Mysql的下载与安装
见博客
链接: MySQL安装
1.4 Navicat的下载与安装
可参考软件安装管家。
解释说明:Pycharm是Python的集成编译环境,Navicat是用于管理Mysql的。上述这些软件用于基于Mysql数据库下,基于Django框架下的网站开发。如果你想让你的网站能够在局域网下运行起来,并让处于该局域网下的其他人也能够访问,首先要确保在终端输入python manage.py runserver,在本地127.0.0.1下能够运行,接下来就是通过Apache将你所设计的网站部署在局域网下。
二、Apache部署
2.1 mod_wsgi下载与安装
2.1.1 下载mod_wsgi
这里一定要记住的是下载与你python版本匹配的下载mod_wsgi。
链接: Apache下载地址
2.1.2 注意一定要把下载的whl文件复制到你为你项目创建的虚拟环境下,这里可能因为每个人使用的环境不同而不同,有的是python环境,而有的是conda环境,无论如何,都要放在你为你项目创建的虚拟环境下的script文件夹下,方便下一步在虚拟环境下安装这个包。
2.1.3 win+R,输入cmd,打开终端,cd进whl所在的路径,输入指令
pip3 install "mod_wsgi-4.7.1-cp36-cp36-win_amd64.whl"
2.1.4 显示Successful installed mod_wsgi-4.7.1,之后继续输入指令,会出现三行代码,一定要记录下这三行代码,便于后面Apache里文件的更改。
mod_wsgi-express module-config
我这里的三行代码是(每个人根据自己的文件路径会有不同)
LoadFile "D:/Anaconda/envs/wangyekaifapytorch/python36.dll"
LoadModule wsgi_module "D:/Anaconda/envs/wangyekaifapytorch/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "D:/Anaconda/envs/wangyekaifapytorch"
2.1.5 mod_wsgi安装成功。
2.2 Apache下载与安装
2.2.1下载Apache
链接: Apache下载地址
选择最新的版本进行下载。
2.2.2 我们对下载下来的压缩包进行解压
解压之后,打开之后的样子
2.2.3 win+R,输入cmd,打开终端,cd进所Apache24文件夹下的bin在的路径,输入指令
httpd.exe -k install -n "apache2.4"
出现successfully installed说明服务创建成功。
2.2.4 对Apache进行部署
按顺序打开文件夹,找到httpd.conf进行更改
注意这里一共有三大类需要进行更改。
第一类,Apache的安装路径
第二类,所要部署的IP地址以及端口号
这里需要强调两点
第一点ip地址的查看方式。
win+R,输入cmd,打开终端,输入以下指令
ipconfig
第二点,端口号不能冲突
第三类,设置工程路径以及虚拟环境的路径。
这里特别要注意的是:
第一点:如果项目路径或者是虚拟环境里面有例如空格和.这样无效的字符,你可以通过添加引号,如果添加引号仍然无法启动Apache,那建议还是把路径或者文件的名字改一改吧,不要有这样不合法或者无效的字符。
第二点:如何查询httpd.conf的更改是否正确
win+R,输入cmd,打开终端,cd进所Apache24文件夹下的bin在的路径,输入指令httpd-t
如果报syntax OK,那么就是httpd.conf的更改正确。不正确会给报哪一行不正确,根据索引进行更改即可。
2.2.5 最后我们来启动Apache
我们按照顺序来打开exe软件:
点击start,如果有绿色小太阳,那么就有80%的概率部署成功了。
如果部署不成功,那么会报错failed,我们就要去检查httpd.conf了,另外一种方法就是打开错误日志,查看错误。错误日志所在位置是
可以打开该文件进行查看错误的根源。
2.2.6 其他需要注意的问题
第一个,有时候静态文件加载不出来,那我们需要复制一份静态文件,并在终端里面输入指令
python manage.py collectstatic
第二个,有绿色的小太阳,但是在利用Ip加端口访问网站的时候,一直转圈,那么我们需要在之前的httpd.conf加上这一行代码。
WSGIApplicationGroup %{GLOBAL}
第三个,如果仅仅只能自己访问,那么可能是防火墙的问题,关闭防火墙即可。