万变不离关键 :
conf 要想成功,关键 在于
---// home:指明 了 myapp(某运行的app,可以是test_wsgi.py ,可以是hello.py ...) 的位置
--// python-home: 就是python引导文件(lib/bin)的位置,注意结尾没有 “/”
下面 用我接触过的3个例子进行 解释说明
头2个例子可以对比着看 ,分析比较 这个3个条件的不同满足形式
第3个例子除了 可以和头2个例子对比之外,还有对这3个条件的进阶理解 ,可以深度体会(恰好也是来自flask最新的0.12版的官方的例子)
例子01, 点评 第一个 --我自己的子试验01的例子!
这个conf 为什么可以通过 --3个条件== myapp位置,python(虚拟)引导位置,mod_Load
1-a)在WSGIDaemonProcess ,的[option] home =/var/www/html ,指明了test_wsgi的物理位置 ,带“/”
1-b) WSGIScriptAlias /test_wsgi /var/www/html/test_wsgi.py
这个2 ) 其实 是 和1)里的home= 作用一样的,所以 只留一个,其实也会成功通过
2) 另外 一个必要前提 是在主配置文件里面 ,已经有
WSGIPyhonHome == /var/www/firstapp/venv 没有“/” 结尾
这个也代表 ,已经告知 apache2 ,pyton的引导的位置了, 所以2个必要前提都通过 。
3)已经 通过a2enmod,把mod_wsgi.so 给load module上去了
例子02, 点评 第2个 -- flask by example 的conf + 思诚之道Billy.J.Hee的技术博客 的mod_设置的 例子
flask by example 的conf 如下 --里面的WSGIScriptAlias 帮助满足了条件01 =myapp位置
思诚之道Billy.J.Hee的技术博客 的mod_设置 --帮助设置 python的位置==前提条件案02(详见羡慕的2 /configure)和03mod_load (详见下面的4. load.mod)
例子03 :来自flask最新的0.12版的官方的例子
http://flask.pocoo.org/docs/0.12/deploying/mod_wsgi/
下面的图片,先显示和说明的第3个条件 mod_load在后台已经是 ok的了 ,并且谈论*.wsgi 的内容如下:
下面的第2个图片,显示:第1个条件 myapp的位置 ,(WSGIScriptAlias) 已经是ok的了
下面的第3张图片: 满足了第2个前提条件==python的位置(这里还进一步延伸 ,用了虚拟环境的情况下 ,地址怎么写===特别注意 ,虚拟环境的地址 如果用 activate_this的形式,注意一定是 用在* .wsgi 或wsgi.py 的文件上,千万不要用错,即用在*.conf的文件上!!!)
至此:这个来自flask 官方文档的例子03,也用它的形式满足 了3个前提条件,所以可以调通 通过!
另外 这里的拓展 和延伸应用是--如果 希望避免 如下的几类problems ,,可以考虑在×.conf文件 中增加
WSGIRestrictStdou Off (O uppercase)
WSGIScriptReloading On (实战中的价值就是--你要是一边开发一边上传,就On==conf/wagi不改,但py 或my app反复更新;但是如果你是全开发好了,一次性只上传一次conf/wsgi/py or myapp ,就Off)