Python 如何让金字塔应用程序在apache+;mod_wsgi

Python 如何让金字塔应用程序在apache+;mod_wsgi,python,apache,mod-wsgi,pyramid,Python,Apache,Mod Wsgi,Pyramid,我正试图学习如何在apache+mod_wsgi上运行金字塔应用程序的基本教程,但遇到了很多麻烦 以下是我的教程: 我在centos机器上做这个教程,已经安装了apache和mod_wsgi 我认为我遇到的问题是httpd.conf文件。我将url指向服务器,因此我尝试配置虚拟主机,以便在您访问nodeline.com时加载金字塔应用程序 这是我的httpd.conf文件中的内容 <VirtualHost *:80> ServerName nodeline.com

我正试图学习如何在apache+mod_wsgi上运行金字塔应用程序的基本教程,但遇到了很多麻烦

以下是我的教程:

我在centos机器上做这个教程,已经安装了apache和mod_wsgi

我认为我遇到的问题是httpd.conf文件。我将url指向服务器,因此我尝试配置虚拟主机,以便在您访问nodeline.com时加载金字塔应用程序

这是我的httpd.conf文件中的内容

<VirtualHost *:80>
        ServerName nodeline.com

        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        WSGIDaemonProcess pyramid user=main group=main processes=1 \
           threads=4 \
           python-path=/home/main/modwsgi/env/lib/python2.6/site-packages
        WSGIScriptAlias /myapp /home/main/modwsgi/env/pyramid.wsgi

        <Directory /home/main/modwsgi/env>
          WSGIProcessGroup pyramid
          Order allow,deny
          Allow from all
        </Directory>
</VirtualHost>

ServerName nodeline.com
WSGIApplicationGroup%{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess金字塔用户=主组=主进程=1\
线程数=4\
python路径=/home/main/modwsgi/env/lib/python2.6/site-packages
WSGIScriptAlias/myapp/home/main/modwsgi/env/pyramid.wsgi
WSGIProcessGroup金字塔
命令允许,拒绝
通融
这个教程很奇怪,因为它似乎在教你如何在本地机器上设置它。它没有提到任何关于虚拟主机的内容。我有什么遗漏吗?或者,也许有人能给我指出正确的方向。我真的很感激有人的帮助

WSGIScriptAlias /myapp /home/main/modwsgi/env/pyramid.wsgi
应该是

WSGIScriptAlias / /home/main/modwsgi/env/pyramid.wsgi
试试这个:

<VirtualHost *:80>
        ServerName nodeline.com
        DocumentRoot /home/main/modwsgi/env
        <Directory />
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride None
        </Directory>

        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        WSGIDaemonProcess pyramid user=main group=main processes=1 \
           threads=4 \
           python-path=/home/main/modwsgi/env/lib/python2.6/site-packages
        WSGIScriptAlias / /home/main/modwsgi/env/pyramid.wsgi

        <Directory /home/main/modwsgi/env>
          WSGIProcessGroup pyramid
          Order allow,deny
          Allow from all
        </Directory>
</VirtualHost>

ServerName nodeline.com
DocumentRoot/home/main/modwsgi/env
选项索引如下SYMLINKS包括ExecCGI
不允许超限
WSGIApplicationGroup%{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess金字塔用户=主组=主进程=1\
线程数=4\
python路径=/home/main/modwsgi/env/lib/python2.6/site-packages
WSGIScriptAlias//home/main/modwsgi/env/pyramid.wsgi
WSGIProcessGroup金字塔
命令允许,拒绝
通融
$sudoa2ensite金字塔
$sudo默认值
$sudo/etc/init.d/apache2 restart

不要将DocumentRoot设置为代码所在位置的父目录。如果您无意中遗漏了WSGIScriptAlias,则可以下载您的代码,包括其中的任何密码。在VirtualHost中重写/的目录通常也是不明智的。您应该让默认Apache配置中的全局范围的配置来决定,因为处理这个问题并出错也会降低站点的安全性。