mod_wsgi가 설치된 Apache2가 실행 중입니다. 나는 mod_wsgi가 실제로 this에 따라 작동하는지 확인했다.Apache + mod_wsgi에서 피라미드를 실행하려고했지만 실패했습니다
피라미드를 실행하려고 할 때 문제가 발생합니다. 나는 내부 서버 오류를 얻을 내 아파치 오류 로그는 예외가 포함되어 여기
AssertionError: The EvalException middleware is not usable in a multi-process environment
내 가상 호스트의 :
여기
<VirtualHost *:80>
ServerName pyramidtest.dev
DocumentRoot /srv/pyramidtest.dev/www/
AssignUserID pyramidtest nogroup
WSGIScriptAlias//srv/pyramidtest.dev/pyramid/load.wsgi
</VirtualHost>
이야 내 load.wsgi
:
import site
site.addsitedir('/opt/pyramid/lib/python2.7/site-packages')
from pyramid.paster import get_app
application = get_app('/srv/pyramidtest.dev/pyramid/test/development.ini', 'main')
mod_wsgi에이 /opt/python2.7
를 사용하여 컴파일 파이썬 인터프리터로서 그러나 나는 가상의 밑에 피라미드를 달리고있다 /opt/pyramid
- 이것은 내가를 가지고있는 이유 다. 내 load.wsgi에 0. 이 필요한 경우
apache2 -V
:
Server version: Apache/2.2.9 (Debian)
Server built: Dec 30 2010 11:50:24
Server's Module Magic Number: 20051115:15
Server loaded: APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture: 32-bit
Server MPM: ITK
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/experimental/itk"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"
내가 무슨 말이냐 ...?
환호성에 대한 환호. 나는 당신의 충고에 따라'WSGIDaemonProcess'와'WSGIProcessGroup' 지시어를 내 VHost에 넣었습니다.예외는 이제 사라졌지 만이 오류가 발생합니다 :'(13) 권한 거부 : mod_wsgi (pid = 17417) : WSGI 데몬 프로세스 'pyramidtest.dev'에 연결할 수 없습니다/var/run/apache2/wsgi.17384.0.1.sock 'multiple attempts.y' – dave
@jim : 그 내용은 [wiki] (http://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of_UNIX_Sockets)에서 다룹니다.) 통신에 사용 된 UNIX 소켓 파일에는 기본 디렉토리가 잠겨 있기 때문에 올바른 권한이 없습니다. 당신은'WSGISocketPrefix' 지시어를 사용하여 올바른 권한을 가진 디렉토리를 지정할 수 있습니다. 위키에서 좋은 소켓 경로에 대한 제안을 읽어보십시오. ("run/wsgi"은 종종 잘 작동합니다.) – Cameron
'/ var/log/wsgi /'디렉토리를 설정했고 모두 읽을 수 있습니다. 그런 다음 WSGISocketPrefix를'httpd.conf'에 추가 했으므로 (가상 호스트에서는 허용되지 않음) 여전히 실패하고 있습니다. 나는 [여기] (http://code.google.com/p/modwsgi/wiki/ConfigurationIssues)에서 지침을 얻었습니다. – dave