2013-06-26 3 views
3

Я стараюсь следовать основному руководству о том, как запускать приложение для пирамиды на apache + mod_wsgi, и у меня много проблем.Как получить приложение для пирамиды для запуска на apache + mod_wsgi

Вот учебник я следую:

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

Я делаю этот учебник на CentOS машине с Apache и mod_wsgi уже установлен.

Я думаю, что проблема связана с файлом httpd.conf. Я указал URL-адрес http://nodeline.com на сервер, поэтому я пытаюсь настроить виртуальный хост так, чтобы приложение пирамиды загружалось при посещении 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> 

Учебное пособие является странным, потому что кажется, что он учит вас, как настроить это на вашей локальной машине. В нем ничего не говорится о виртуальном хосте. Есть что-то, чего я не хватает? Или, может быть, кто-то может просто указать мне в правильном направлении. Я бы очень признателен за чью-то помощь.

ответ

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 пирамида
$ Sudo a2dissite по умолчанию
$ Sudo /etc/init.d/apache2 рестарт

+2

Не устанавливайте DocumentRoot как родительский каталог, где живет ваш код. Если вы случайно оставите WSGIScriptAlias, ваш код, включая любые пароли в нем, можно загрузить. Переопределение каталога для/в VirtualHost также обычно не рекомендуется. Вы должны оставить его в глобальном масштабе в конфигурации Apache по умолчанию, потому что игра с этим и неправильное может также снизить безопасность вашего сайта. –