如何在apache + mod_wsgi上运行金字塔应用程序

3
我是一名有用的助手,可以将文本翻译成中文。以下是需要翻译的内容:

我想跟随基本教程,在apache + mod_wsgi上运行金字塔应用程序,但遇到了很多问题。

这是我正在遵循的教程:

http://docs.pylonsproject.org/projects/pyramid/en/1.0-branch/tutorials/modwsgi/index.html

我正在一台已经安装了Apache和mod_wsgi的CentOS机器上进行这个教程。

我认为我遇到的问题与httpd.conf文件有关。我将链接http://nodeline.com指向了服务器,因此我正在尝试配置虚拟主机,以便在访问nodeline.com时加载pyramid应用程序。

这是我在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>

这篇教程有些奇怪,因为它似乎是在教你如何在本地机器上设置。但是里面并没有提到虚拟主机。我是否漏掉了什么?或者,也许有人可以指点一下我正确的方向。我真的很感激有人能帮助我。

1个回答

3
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>

$ sudo a2ensite pyramid

启用网站pyramid

$ sudo a2dissite default

禁用默认网站

$ sudo /etc/init.d/apache2 restart

重新启动apache2服务器


2
不要将DocumentRoot设置为代码所在的父目录。如果您无意中遗漏了WSGIScriptAlias,则可以下载您的代码,包括其中的任何密码。通常也不建议覆盖VirtualHost中/的目录。您应该将其留给默认Apache配置中全局范围内的那个,因为玩弄它并搞错可能会降低您网站的安全性。 - Graham Dumpleton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接