当前位置:首页 >> 服务器

Apache同时支持PHP和Python的配置方法

最近开始学着用Python+Tornado+MongoDB写网站,兴起写了一个博客,觉得很有意思所以想挂在服务器上发布出去找大家一起玩。这个时候就遇到了问题。

服务器是windows系统,安装的是Apache,所以需要配置Apache,使Apache同时支持PHP和Python。

废话少说,提供有效方案一个,照做即可:

1. 修改 httpd.conf 文件

将下列几个Module前的注释符 # 去掉

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

2. 配置 httpd-vhosts.conf 文件

<VirtualHost *:80>
ServerName http://b06.suosikeji.com   #这是你要解析的网站地址
ServerAdmin me@chengkang.pw
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
proxypass / http://127.0.0.1:8002/   #这里是你的python站点的地址
proxypassreverse / http://127.0.0.1:8002/  #同上
</VirtualHost>

3. 重启 Apache

以上就是我的成功案例。

网上还查到一个方法是通过nginx配置反向代理,我试了一个多小时然后放弃了。之前没接触过nginx,所以出了问题也不知道该怎么解决。其中让我气得要吐血的一个问题是:

nginx文件夹始终为“只读”,怎么改也改不了……导致nginx.exe无法运行……
要是哪位朋友有解决方案,望不吝赐教。

关于反向代理的初步认识:

以我的网站为例,博客运行在服务器本地8002端口,即 http://127.0.0.1:8002。我要解析的域名为 http://b06.suosikeji.com。

由于服务器环境为Apache,所以外面无法直接访问服务器上未在Apache中配置的某个端口,所以需要进行反向代理的配置。

配置好反向代理之后,当用户访问 http://b06.suosikeji.com/add 页面时,服务器Apache收到请求,将其转换为 http://127.0.0.1:8002/add 交给Python处理,并将Python处理出的结果返回,这样用户就看到了正确的页面。

(今天下午乱查资料后的简单理解,望对“反向代理”有正确深入理解的朋友指教。)

自学最痛苦的是碰到困难查资料很难直接查到有用的资料,废话看了一大堆却没有一个明确的解决方案。我个人确实属于那种不认真学习的,喜欢拿过什么来最好能直接就用。所以最近我在总结一些自学过程中的经验,将以解决方案(+学习反思)的形式整理成文,慢慢分享出来。

希望我的总结能够给其他自学者一些实际的帮助。