当我们用python的Flask写好了网页之后,不做代理就会有以下的问题、惨呀惨呀惨呀惨呀!!!
1、用cmd界面运行或者是程序运行有时会出现卡死的情况、而运行flask的程序的界面又不能关闭,否则会导致网站无法访问的情况。
2、当你运行程序的界面被不小心关掉或是重启机器后,没运行程序,也会导致网站无法访问的情况。
3、亦或者是你的网站被人不小心发现了,然后对方通过网页开发者工具查看网页的Headers中的Server,就可以知道你是用什么写的,进而可能会发生一些很惨的事!!!!难受呀
4、Python中的Flask也提示这是开发服务器。不要在生产部署中使用它。
对于以上情况,我们真的感觉很难受,不过我们可以使用代理的情况来完成。
接下来我们需要准备一些小帮手
目录
1、Apache的下载链接:
以前的版本可以在这里面找找:Apache Additional downloads
Apache Haus Downloads下载的时候有版本要求:可以参考一下这篇文章
在Apache的下载里面就选择v16就好,因为上一个版本一般都比新版本稳定下载好后就已经完成了一个帮手了
2、Apache的安装
安装就简单了,先把压缩包解压到你想要存储的地方
然后用管理员进入cmd界面
可以参考下面这篇文档
1、命令运行
如果出现服务启动不了,可以在cmd命令行里面进入到文件的\Apache24\bin目录下运行以下命令
httpd -k start:不会有任何提示
httpd -k start -n apache:会提示详细的错误信息,其中的"apache"修改为你的Apache服务名,可以到计算机服务里找
httpd -k restart -n apachet:重启
net start apache:利用Windows托管服务命令
2、窗口视图运行,基于服务可以启动
在Apache的bin目录下点击红框中的程序打开
直接点"Start"启动即可
开启后访问成功就算成功了http://localhosthttp://localhost
为了节省资源,关闭Apache服务器的时候,请先点击“Stop”关闭apache服务。该服务也可以在windows系统服务中关闭(建议设置成手动)
这个时候Apache就算成功了
3、mod_wsgi的下载链接:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgihttps://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi下载相应mod_wsgi需要注意版本的匹配
例如:ap24是apache版本,cp37指python3.7,win_adm64指操作系统为64位
随着之后的mod_wsgi网站的更新,只有python的版本以及操作系统的位
下载好后就又已经完成了一个帮手了
以上两步都下载成功后,就进行下一步操作了
4、mod_wsgi的安装
下载好mod_wsgi后,把mod_wsgi文件放在python的Scripts目录里面
然后在cmd进入到python的Scripts目录下面安装mod_wsgi插件:
pip install mod_wsgi-4.9.1-cp310-cp310-win_amd64.whl (这个文件名一定要写全)
安装成功后就是上面这个样子
安装成功后在执行:
mod_wsgi-express module-config
获得mod的一些位置参数
然后把这些参数放在Apache\conf目录下面的httpd.conf
WSGIPythonpath "添加网站的文件路径",也可以不添加,影响不大
添加好后,在flask写网页的根目录下创建一个py文件
名字随意,内容如下 front为你主目录的文件名,然后读取app类,可以在重新命名一下
这一步完成后就是最后一步了:
<VirtualHost *:80> #端口号
WSGIScriptAlias / D:\Desktop\py\wzb\5.py #链接的主程序
<Directory D:\Desktop\py\wzb> #网站的路径
Require all granted
</Directory>
</VirtualHost>
可以参考以下官网的文档:
以上都完成了,那就可以启动Apacher了,如果首页内容不变的话,就可以shift+f5强制刷新试试
5.Apache服务无法启动
在我做完以上4步之后,发现,Apache的httpd.conf配置文件中如果加上了画框中的参数,那么Apache的服务则无法启动,则网站也无法加载,但是直接运行APache/bin目录下的httpd.exe则可以运行网站。
但如果在cmd管理员界面运行'httpd -k start',可能不会报错,但网站还是无法运行,这时候可以去Apache24\logs的目录下查看error.log,这是报错日志,如果你也是以下一样的错误,那么就可以参考一下,我的解决办法:
错误如下
解决办法:
这时候你可以去系统的环境变量中添加名为PYTHONHOME的变量,变量值则是你的python的目录
添加完成后,就可以在试试启动服务了。这时候error.log中的日志应该就是如下图一样了