当前位置 主页 > 服务器问题 > Linux/apache问题 >

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

    栏目:Linux/apache问题 时间:2018-10-31 14:14

    服务器是windows系统,安装的是Apache,这里就为给大家介绍如何让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处理出的结果返回,这样用户就看到了正确的页面。

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

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

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